程序员:编程给你现实生活带来了哪些坏习惯
程序员:编程给你现实生活带来了哪些坏习惯 (转) http://www.jobbole.com/entry.php/270
导读:似乎任何职业都会给从业人员带来这样那样的习惯。国外某网站上有位朋友(应该也是程序员)想了解其他程序员在投身堆码事业后有什么样的坏习惯。结果一呼百应,很多程序员纷纷自爆自己的坏习惯和糗人糗事。编程无国界,相信国内堆码界的朋友,也会有同感。
1. 编程已给我带来很多坏习惯,编程也每天在继续给我新增更多的坏习惯。当然有些习惯和编程无关了。下面这些习惯尽管我也很想改掉,但已根深蒂固。
•a. 在天地万物中,去发现多态、继承和模式;
•b. 用十六进制代码中的像素和颜色来解释某东西的大小;
•c. 在日常交谈中用代码相关的抽象术语。
2. 我现在认为256这个数字非常完美。但非程序员不明白这个,有时候让我措手不及。 编者评:1024呢?
3. 我在看纸质书时,我就非常沮丧。为什么我不能用Ctrl + F来找想看的东西呢? 编者评:我在看电视时,一到广告,我也非常沮丧。为什么我不能往后拖呢?
4. Q: Do you want tea OR coffee?
A: Yes
侍者:你喝茶还是咖啡?
客人:是
编者评:如果该服务生是个兼职打工的程序员,那就直接给你上茶和咖啡。因为,不管“上茶”还是“上咖啡”,都是满足“茶||咖啡”条件的。如果能多卖一样,何乐而不为呢?
5. 我Google一切。
编者评:忘了Google的地址怎么办?
6. 几年前,我去一家咖啡店吃午饭,柜台里边的MM问我吃哪种面包。我不假思索地说:“默认的。” 囧,她或许现在还在笑我……
编者评:如果该MM不懂编程,她应该不会发“酵”,只会发蒙。
7. 每天坐在屏幕面前,盯上10个小时,这样真的很难保持健康。如果你经常走神,编程可以帮你养成久坐的生活方式。
编者评:除吃饭、W.C.、开会和回家Sleep外,视线一般不离开屏幕
8. 在现实世界中,我真的很需要Ctrl + Z。 编者评:不仅你想要,我们也想要。除了不仅要这个,每次看到钱包的时候,都会想:“要说我能Ctrl+C和Ctlr+V多好啊!”。另外,某某说他的成功可以Ctrl + C,莫非他和我们同行?
9. 我是从零开始数数的,经常用“1”表示结束,而别人用“1”表示开始。
编者评:这个习惯的养成是一个艰难的过程。多少次的越界,多少次的循环次数错误让俺们深刻体会:万物始于0。
10. 我喜欢“是/不是”类型的问题,我对那种既不是“是”,也不是“不是”的回答非常不爽。
比如:我问:“你不介意我换个台吧?” 别人答:“我正在和我妹妹IM聊天。”对我来说,这就好比:
public bool canFlip( )
{
return “I’m IMing my sister”;
}
返回结果明显是个字符串,而不是布尔值。对别人来说,他们已明确告诉答案了;在我看来,他们的回答是“强制转换错误”。如果我再问那个问题,他们还有同样的回答话,那应该在catch语句块中抛出异常了。
编者评:有编译错误
11. 我教我们家小孩,三主色是:Red、Green和Blue。
12. 侍者:嗨,我叫克里斯蒂,我是你的Server/侍者!(server除表示“侍者”之外,还指“服务器”。)
我:嗨,我叫麦克,我是你的Client/客户端! (真实的故事)
编者评:不知道这个Server/侍者可以承受多少Client/客户的并发请求?
13. 我发现,有时候我明明说的非常精确,但某人(通常是我老婆)并不领会我的精确性,而是理解成类似的东西。这让我抓狂。比如,我在做菜的时候,我并没有说:“从冰箱里拿任何黄的东西,”我是说:“给我黄油。” 但她递给我人造黄油。
编者评:同学,这就是你的不对了!“人造黄油”是“黄油”的子类哦!(Update:从中文字面意思上。)
14. 当我收到如下留言后: (去店里买个面包。如果他们有柴鸡蛋,买10个。) 结果我买了10个面包回家。
编者评:因为店里有柴鸡蛋。严格来说,这是个脑筋急转弯。
function BuyBread()
{
if(hasEgg)
{
int buyNumber=10;
buyBread(buyNumber);
}
}
15. 我想用正则表达式来搜寻现实对象。
编者评:如果能做到,不知你在中文世界能搜到什么?
16. 在平常打字中,句子都是分号结尾;
编者评:幸亏没有编程语言是用问号结尾?否则谁能看懂你的文章?
17. 我在家做任何家务事都非常有条理。比如,在使用任何产品之前,我会仔细阅读附带的说明书,即使是使用非常简单的烤面包机也不例外。
如果我要挂相框,我会Google一下“如何挂相框”,确定我所知道的是正确的(或者在亚马逊上找本悬挂相框相关的书)。
在每做任何一件事之前,我都会准备一切必备的工具。在实际操作之前(这些操作可不能撤销的),我会做大量的测量和试验。但这让我老婆彻底发狂。
编者评:阅读手册绝对是好习惯;动手操作之前做准备工作,也不能算坏习惯。顶多算是类职业病。你老婆不该抓狂的。但你挂相框,还要去Google一下,这个有点让我抓狂。
18. 把一段话称为“字符串”。这让非程序员们非常不解 – 嘛是“字符串”? 编者评:我看到蜘蛛,便说它是爬虫。这让程序员不解 – 嘛是“爬虫”?
19. 我发现我在写信的时候常常在侧边嵌套花括号,我老婆看到后以为我抽风了。收件人也应该差不多这样想。但这已经是习惯了。 编者评:他们也习惯了
20. 缺觉,我现在习惯了。 编者评:大熊猫应该不再是濒危动物了!缺觉有害健康。另外,正在看本文的朋友,不管你是否是程序员,都应该检测一下自己的睡眠是否达标了。如何检测,请参考伯乐在线的《你的睡眠时间和睡眠质量达标了么?》一文。
21. 我喜欢优化每天的事情,尽可能多采用并行处理。比如,在启动电脑后,跑到厨房打开水壶、准备咖啡,然后跑回来输入密码登录系统;在打开火狐时,去倒开水冲咖啡,然后端着咖啡回来浏览新闻;另外,坐在马桶上刷牙,每天也能节省几分钟。
编者评:哥端的不是咖啡,是下巴!
Algorithm-Reverse Linkedlist
Question, Reverse a LinkedList.
input a linkedList<T> reverse and return.
the simpliest way is just use the c# provided functions
/// <summary>
/// Reverse LinkedlistNode
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="linkedList"></param>
/// <returns> LinkedList<T> </returns>
private static LinkedList<T> ReverseLinkedList<T>(LinkedList<T> linkedList)
{
LinkedList<T> newLinkedList=new LinkedList<T>();
LinkedListNode<T> linkedListNode=null ;
if ( (null != linkedList) && (linkedList.Count>0) )
{
linkedListNode = linkedList.First;
}
else
{
return null;
}
do
{
newLinkedList.AddFirst(linkedListNode.Value);
linkedListNode = linkedListNode.Next;
} while (linkedListNode != null);
return newLinkedList;
}
Regression of a string’s permutation
Today I am going to review some of the algorithm. Regression of a example: all string’s permutation(e.g. get all permutation of “abc” it should be abc;bac;acb;bca;cab;cba) Key point: 1. distribute one and then get the rest. 2.need a exit funtion to return. 3.make use of the return data here we go the code of C#
/// <summary>
/// this Regress get all the char arrange from linkedlist
/// </summary>
/// <param name="str"></param>
/// <returns>LinkedList<StringBuilder></returns>
private static LinkedList<StringBuilder> Regress(StringBuilder str)
{
//get the first char
string firstChar = str.ToString().Substring(0, 1);
LinkedList<StringBuilder> stringLinkedList=new LinkedList<StringBuilder>();
if (str.Length == 1)
{
stringLinkedList.AddLast(str);
return stringLinkedList;
}
else
{
//delete the first char
str = str.Remove(0, 1);
//this is the regress key point, insert the first char to different
//position of Regress returned StringBuilder
foreach (StringBuilder _indexString in Regress(str))
{
string storedString;
for(int j=0;j <= _indexString.Length;j++)
{
storedString = _indexString.ToString();
stringLinkedList.AddLast(
new StringBuilder( storedString.Insert(j,firstChar) )
);
}
}
return stringLinkedList;
}
}
iTunes is a really good way to learn iPhone develop
iTunes is a really good way to learn iPhone develop, just download the vedio,you will sync the world
Visual Studio(VS) 2005/2008 .netframe work Training
These days, attending a training of Visual Studio(VS) 2005/2008, the technology is more in detail, that really let me taking more concern about serilize/delegate and other thing that I forgotten.



