More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  ZZ in IT |张振 ...ProfileFriendsBlogMore Tools Explore the Spaces community

Blog

3/10/2008

一个程序员的自我修养

 

y1pnKXy3WWrMUHBOrw1tIVDvlyZeaX3yzAcy_iv9n5CoGbmz8bPKa2btP6H4VmYdRtL

 

[图]尹天仇同学在他的低潮/瓶颈期钻研一个演员的自我修养

 

[前言]

坏消息是,CPI一个劲地疯涨,好消息是,房价不怎么涨了-- 对于80后程序员们来说,似乎都不是什么好消息。70代的前辈们已经不需要注意刚性的房价需求,金融市场的收益是他们的关注要点所在:所以我在msn上跟他们献谄的路数都是, hi, how's your investment in the stock market ? 直接点么就是, 今天, 你深绿否?

LOOP article IN My blog
TOUCH article.mentioned"zz 是数学系毕业的"
ENDLOOP

所以呢,等到所有同学硕士都毕业了,工作了,放眼望去,唯剩zz和当年的partner--吴祖榕还在IT业混着 -- 其他都在那些投行,券商,基金公司等等处处莺莺燕燕高就。于是就有了今天下午我和他在msn上感叹眼界不足,错进此行的唏嘘了。

我经常拜读业界大牛的blog http://www.joelonsoftware.com/, 他的广告词是,Not loving your job? Visit the Joel on Software Job Board: Great software jobs, great people.
我也经常和我那北京的偶像, WM, 对我这种所谓新人作心理调适。WM 是我游历京畿时候认识的IT传奇之一:
1, 一次加入中国人民解放军通信部队,服务我天朝数十年
2, 两次加入西门子公司
3, 三次加入摩托罗拉公司
借以这么多年的IT沉浮,WM劝说我,做人要踏实本分,还年轻呢。

深感自己还需要提高自己的内涵 -- 结合自己的教训和道听途说,斗胆在这里和大家探讨一下程序员的自我修养。

[/前言]

懒惰的程序员/勤快的程序员

Steve McConnell  说,优秀的程序员都应该是有点儿懒惰的。懒惰的意思呢,就是不要那么地蛮干。很多人喜欢加班的主,没有考虑到他加班是否是因为他的勤快?

很多时候,那些不错的程序员接到活都是先想想,选择最合理和最优化的方法去解决问题。心急如我者,当年往往是拿到就上手,做到一半回头改,还美其名,迭代!即使是我们的日常工作,很多无聊的工作都可以用脚本自动化了。可惜的是,总有勤快的程序员去手动处理。有的时候,懒点反而使效率提高 -- 虽然当年我的一个同事转手给我的.bat文件长达500多行。

我之前认识一个程序员,为了下班能够准时点,拿到第3方公司的框架的时候,竟然自己花时间做了一个mini SDK, 自动生成一些代码。虽然代码笨拙,但是确实给他留足了泡mm的时间。
在做手机的时候,测试部门忙得不亦乐乎,所谓的性能测试在那里卡秒表。每次版本发布,都是人肉手动测试。开发平台提供了console界面,却没有人提出自动化测试,哪怕是一部分的自动化测试。

不过真正的懒惰的同事也见过:懒到不愿意写文档,懒到不愿意写注释,懒到不愿意用枚举代替magic number, 懒到不愿意想有意义的函数名称......这种懒,就不是一个懒人,而是一个懒虫,一个不能写代码的懒虫。

结论:工作数年,没有见过谁真正主动去重构代码的...从这个意义上说,勤快的程序员还是缺的紧阿。

天才系/蠢才系

我想说,程序员是要1点天赋的。我抱着参考书爬出来的二分查找法还写错,kixi在半小时内搞定实际代码,而且是扩充版,并且的确没有错误-- 因为我测试了。这就比较让我郁闷了。
高纳德先生一人单枪匹马写出Tex, 灭掉一个行业。说明人和人之间差异仅仅是狗和猎狗之间的差异是不对的, 明明是夏利和A8的差异嘛。好在我比kixi帅,不然还真的没有在这行混下去的勇气了。

但是,我觉得在目前国内的行业里,蠢材也有用武之地嘛。80%的代码是需要蠢材来写的。100%的代码是需要蠢材读懂得。写得精巧非凡的库的牛人们,世界上只要一小辍就够了。人肉编译器存活率也不要太高。世界多了10个爱因斯坦还不早就有了超核武器,早玩完了嘛。

你可以不是高手,但是你丫一定要懂得什么样才是高手。你写不来代码,但是至少学会如何辨别代码的坏味道。

能扯淡的程序员才是好程序员

我绝对不是因为我经常扯淡而加上这一条的。扯淡是一种态度,也是一种性格的体现。没有什么比沟通在现代软件开发中更重要。除了你自己玩些代码。那些用来做生意的代码,都是需要深入的沟通协作来完成的。我发现我所认为的不错的同事,都是在扯淡上相当见长的。那些没毕业,就显山露水的,比如pongba, xuyou, 都是扯淡的好手。能够在自己喜欢的议题上扯,也扩大了自己的讨论范围。扯淡扯出来的问题,往往在扯淡过程中就解决了。

结论:常常扯淡的团队,往往是个好团队。 

别再抱怨你的学校

我遇到的很多niubility的人来自于不是那些zhuangbility的学校,反到显得我们所谓出身名门的shability。下略不表。

状元360之IT民工

我一直想,状元360什么时候能够有程序员的节目,但是我们不能够,因为到现在都没有如何衡量一个程序员优秀与否的标准。其实那些程序设计大赛,都应该是为了大学生设立的。学院派的事情该由学院派解决。实际项目里很多东西都是靠一些简单,正规,稳定的东西化解了困难 -- 就如同AK47所具备的特质一样。

从这个角度来说,程序工人属于脑力劳动者,不能轻易地去量化他的水平 -- 其实这也就说明了招聘程序员(除了长期实习后留下的)是个很没谱的事情,你没有办法在数小时内考量一个人真正的程序员修养 -- 我所见到的那些招聘也的确如此。

有点理想主义

那么,怎么扯到理想主义呢?没有点理想在现在这个行业都没法坚持拉 -- 因为我们80后大部分是代码农民工 -- 简称 码农。但是,史巨人的例子总是在鞭策我:他妈还是做软件开发(管他开发啥)赚钱阿。套用贾伯斯大叔的名言:Do you want to spend the rest of your life selling sugared water or do you want a chance to change the world?

那么,我,还是很愿意去改变世界的。

--
ZZ -> Z²        
张     振
www.cnzhangzhen.com

Comments (5)
To add a comment, you must sign in with your Windows Live ID (a Microsoft account like Hotmail, Messenger, or MSN). Sign in
Don't have a Windows Live ID? Sign up now
Add a comment

Comment (text only):
Trackbacks

The trackback URL for this entry is:
http://cnzhangzhen.spaces.live.com/blog/cns!C98C87A834D55FA0!1857.trak
Weblogs that reference this entry
  • None