看到《有点失望》的经过及其背后意义一总结文才发现已经错过了热闹的讨论阶段,去看看豆瓣上数页的论战,竟觉得有些无聊。那本书没有看过,无法评论,扫了一眼前言和目录,有两个感觉,一是这本书的至少一半内容讲的都是我没有什么经验的地方;二是这本书的标题、前言和目录内容相比有些“浮”,如果我是个读者我不会去买。

大学时代,在看过n多失望的中文版以及中译版的中文专业书后,我自己得出的结论是宁可少看也要看一些已经被论证比较好的原版作品,或者翻译比较好的中文版。(过去的确有相当多的粗制滥造的翻译书籍)也许这几年技术书的创造和翻译有所提高,但我已经很久不关注了。

我常常以为要成为优秀的程序员,并非在于你能看多少牛书,甚至不在于你写过多少代码(参加10个万行级但全是垃圾代码的项目对技能提升可能只是负面的),最重要的一点就是要谦虚和好学。最早看到谦虚的程序员论述是从《Code Complete(代码大全)》上读到的:

在 1972年,Edsger Dijkstra发表一篇论文,名字叫作“谦虚的程序员”。他在此文中主张所有的程序员都应尽力弥补他们很有限制的智力。那些最精通编程序的人往往是那些认为自己的头脑是多么有限的人,他们是谦虚的。而那些最为糟糕的程序员往往是那些拒绝承认自己的能力不适应工作任务的程序员。他们的自我妨碍自己成为优秀程序员,你学到越多的东西来弥补你的大脑,你就越能成为一个好的程序员,你越谦虚,你取得的进步也就越快

这么多年下来我觉得Dijkstra对程序员识人的描述是如此地正确,我至今还没有见过一个狂傲的优秀程序员,我接触过的值得我尊敬的程序员,有一些人非常有个性,但一旦涉及到具体的技术讨论,无不虚怀若谷;我也见过少许“牛哄哄”的程序员,有些一看就是半瓶子醋的,也有一些显得高深莫测的,但这些能用能力和成果证明其的确如同态度那么牛的至今还没有。

这本书的作者自己说其书的定位“目标读者群,是大三到本科毕业三年的这部分人群,差不多20~25年龄段”,这倒才让我觉得需要多说几句。想想自己在大三的时候也正是如饥似渴地阅读学习的时候,我感激那时候我读了诸如《Code Complete》这样的一批书,不仅仅教会我技术,还教会我很多做程序员和做人的道理。从这本书的目录来看,我可以负责任地说,这本书的内容定位其实也颇不适合这个阶段的学习。而作者的这种霸气不谦虚的态度,更是成为优秀程序员的大忌。

关于这本书的技术讨论,Milo指出的部分其中有一半我没有足够经验的我无法评论什么,但是凡是我断定自己在行的部分我都完全支持Milo的看法。对这本书的作者的回复,我觉得最大的问题是态度和治学不严谨的问题,以及有一种御用权威身上常见的那种学霸态度。一本技术论著可能会影响一批读者,其实书出现一些错误我认为是无可厚非的,就如同软件做到0 bug是几乎不可能的一样,但是如何对待这种错误,已经如何改进这些错误的意义更大。