有一本书,一直等它再版,这一等就是8年,至今没有再版。但这并不妨碍我时常去阅读它,而这一读就是13年。这本书便是《CODE COMPLETE》,中文版名称《代码大全》。
那个年代买书还没有京东、也不去亚马逊。买书的网站是当时三足鼎立的购书网站,当当网、卓越网、互动网,关于互动网可能有很多人已不记得了,互动网(www.china-pub.com)可是 在当时有很多技术书籍选择的首发的购书网站。
这本书,翻烂了一本,送人了一本,目前手里的这本是在2016年买的。算下来一共买了三本,而且是我为数不多的反复翻看的一本书。
它的第一版,是在2006年,记得很清楚,我看到当时一个小伙伴捧着它,借来翻看了几页,从此便爱不释手。当时网上流传着这样一段话,"程序员去一座孤岛,如果只能带一本书,它便是唯一的那本"。
这本书一共885页,从防御式编程到编码风格都有涉及,既教我们如何使用条件语句和如何控制程序的循环这样的基本操作,也教我们什么样的软件是好的,团队里又是如何协同开发等等这样的上层指导原则,甚至还有个人性格对软件工艺的影响。可谓大全。
这本书的中文名称是有"大全"两字,书中的内容似乎也在和这两个字遥相呼应,内容饱满而丰富。但实际上"大全"两字的翻译是一个无伤大雅的翻译"错误",《CODE COMPLETE》实际上是指"编码完成"的意思,是软件开发生命周期上的一个重要里程碑。
根据书中出版人感言的描述记载,2003年的夏天,博文视点刚成立不久,他们寻求这本书的中文出版权,版权的授予过程可谓一波三折,象故事一样描述在了本书的刚开始的部分。一向喜欢读前言和作者自序的我对这段描述记忆深刻。
谁曾想,十几年之后,我也在博文视点出了一本书,而且在最后一章,还把《代码大全》这本书列为了程序员应读的四本书之一。想想也是挺有意思的一件事情。
我们需要阅读各种书籍,有的需要反复读,有的可粗略读。这本书便可以反复读,它经受住时间的变迁。
"每个行业的工程人员都要了解其工作用的工具极其材料的限制。如果是电气工程师,就该知道各种金属的电导率,以及电压表的上百种用法;如果是建筑工程师,就该知道木材、混凝土和钢铁的承载量。"
那么,"假如你是软件工程师,基本的建造材料就是你的聪明才智,主要工具就是你自己"。
我们大家目前都身处一个绝好的软件时代,一个高速发展的时代。我们所经历的技术、产品和各种思维及软件模式日新月异。同时我们每天又都面临各种问题,常常从解决问题的昨天走向更多问题的明天。
世界著名软件大师Chris说过,架构就是取舍,进而架构师就是做出取舍的人。那么在解决问题之外的有限时间内,读书学习也要做出一种取舍。要把精力集中在阅读优秀的书籍上。
写在购此书第一本之后的十三年后的一个夏天的中午。
做一个有技术没脾气,懂得分享,虚心学习的程序员。—某程序员