九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

小评《卓有成效的程序员》—《The Productive Programmer》

这不是写给初学编程的人看的书,他们还是好好的听好亘古不变的教诲,“努力学习语言本身,不要被工具所干扰”;这不是写给一般的程序员看的书,他们迷失在各种各样的新兴语言之中;这也不是给一个对编程这种工作没有热情的人看的,因为工作效率再高,对他们来说,也仅仅是被剥削的更加严重。但是,假如你是和我一样,热爱着编程,即便是被剥削至最后一滴血也绝不罢休的提高着自己的工作效率,能够用键盘完成的绝不用鼠标完成,能够点一次鼠标完成就绝不点第二次,能够敲一个键完成的绝不敲第二个键,能够自动化完成的绝不手动完成的程序员的话,这会是你想要看的书,也会是你喜欢看的书,你会发现,原来你还有志同道合者,原来还有人和你一样,懂得怎么艺术性的操作电脑,懂得怎么让电脑干它该干的事情,而不是让自己去干那些重复性的工作,哪怕老板交代的任务多么枯燥和具有重复性,也能有技术的艺术性的完成,而且,比一般人完成还要快一个数量级。

当我看到书的前言部分,我就知道这是我想要看的书,几乎是一口气读完,书不厚,但是沉淀的都是实打实的技术,不是什么奇技Y巧,都是提高工作效率的有用途径,虽然这样说似乎有枪手的嫌疑了-_-!所以,这里还是补充一句。。。。。出版社是我不喜欢的机 工,奇怪的是为什么那么多好书,特别是O’REILLY的书都被他们弄走版 权了,看看那些无奈的蝌蚪文所谓影印版吧,看看那些经典书籍被印在什么样透明的纸上了。。。。。。对于出版社,个人还是更喜欢人民邮电(真的是有责任性的出版社)和清华,电子工业还说的过去。晕,我这个人就是常常不靠谱,说了这么多题外话,但是总的来说,这本书的印刷质量在机工中应该还算中上,不至于像《Windows核心编程》那么恶心。(指的是印刷质量,书绝对是好书)

书中第一部分的机制给出了很多有意思的法则,也提供了很多在不同平台下的实际有用工具,很多东西会让你很有收获,加速器,宏,虚拟桌面等,的确是是实实在在的有用,第二部分相对第一部分来说更加与语言接近了,由于本人的母语是C++,完全没有学过JAVA,Groovy等语言,相对而言很多语言的示例对我来说就没有那么实用及启发性,但是其思想还是在的,虽然个人感觉要在我们公司这样的项目中实行测试驱动开发(TDD)好像不太可能。

总体而言,书中对于命令行的推崇较合我意,对于编辑器的各种评价,包括对本人最爱的VI的很高的评价,包括对正则表达式的评价及使用都和本人自己在工作中的使用感受非常贴近。有的时候,你不知道一件事情,或者你觉得一件事情比较难学,然后就放弃了,其实,放弃的是一片天空。。。。。。我无数次的享受着VI及正则表达式带给我的便利,但是也许我没有办法将其描述的像作者那样吸引人,:)

另外,这里想说的额外一点就是,正则表达式的使用远远不仅仅是匹配某个数据而已,当你想在一大堆代码中某个特定位置添加某条或某段语句的时候,善用替换的方式,可以节省你大量的时间,这几乎是我解决类似问题的必然途径(作为小程序员,老是会为了减轻总监等的负担而接受这样的枯燥任务),但是,个人感觉,在乏味的工作,都能有艺术性的解决方式。

当然,你按照书中所讲的方式去做,肯定能提高自己的工作效率,但是,首先这是一种思想,起码你要有对提高自己工作效率一种追求,不然,讲的再多也是白费。几乎可以肯定的是,最大的提高工作效率的方式绝对来自你自己工作中的需求,而不是其他人的方式。

我们可以以Larry Wall说的”懒惰、傲慢、缺乏耐性是程序员的三大美德”为准绳,来提高效率。

这看起来似乎不可理喻,但听听解释你就会同意这个说法了。

懒惰:因为好的程序员会致力于减少需要完成的工作量,想尽一切办法减少。

傲慢:容易被荣誉感冲昏头脑,所以会把程序写的尽可能的完美,免得被别人嘲笑。

缺乏耐性:坚决不做重复性的工作,那是计算机应该做的。遇到重复性工作就想尽一切办法来交给计算机做。尽管有时候这可能会花比直接重复一下更长的时间。

我阅读的版本

分类:  书籍小评 
标签:  《The Productive Programmer》  《卓有成效的程序员》 

Posted By 九天雁翎 at 九天雁翎的博客 on 2009年05月19日

前一篇: 多想追求简洁的极致,但是无奈的学习C++中for_each的应用 后一篇: 程序员手中的利器(1)--工欲善其事必先利其器