继续我程序员暴走式写作风格。只要一旦思维停顿,想要修饰句词,就无法继续写。恰好昨晚浏览微博,看到说犹太人人均一年阅读64本书(奇怪的数字),而我国人均阅读约为1年一本不到。可怜我国幅员辽阔,人口众多,凡事一平均准糟糕。我所好奇的是,读书人中的平均阅读量,以及程序员的阅读量到底是多少呢?

近年的阅读,技术内外大略各占一半,细读1-2本,粗读20本,购入30本左右。有些书爱不释手、一见如故;有些书是防绝版收藏之;有些书是参考手册,仅供不时之需查阅;有些书是一时兴起,入手即闲置;有些书是遗失,再购,再遗失,再购。有些书承载了我某段时间的成长记忆,歪歪扭扭的字迹陌生而又熟悉;有些书边缘泛黄泛黑,有几个缘故,要么是翻得太多、经年不衰,要么是看书时手不太干净,污浊了书边,通常归根结底还是后者。不像读书时那般认真对待,现在大多书购入后仅为参考,随意翻阅数页,观其概貌,粗略通些大意罢了。从头到尾阅读的书,还真是不多。看的不多,话却不少,虽说是酒后通病,程序员中沾染这个毛病的却也不少,且无需酒精作用。

好比许多国产技术书吧,作者一本正经地引经据典,间或饰以古典诗词,仿佛各个左手程序右手诗书,又仿佛各个先生之风山高水长,不免扭捏做作,丑态毕露。反观那些流传已久、壁立千仞的技术书,反而是朴素无华,于平淡处见不凡。近年来的译作还好,虽然译者喜欢添加一些“译者注”,但还不失本份,有的放矢。

技术书的阅读有几种。一种是把多本书摆一起,针对同一个主题,看不同作者的讲解,如不同语言里闭包的实现;一种是如果某位作者已经就你关注的主题写过文章或者书了,仅看他一人的就足矣,如Douglas Crockford的文章(JavaScript);一种是某作者出品皆为佳作,应尽数收藏,如Brian Kernighan、Richard Stevens等人的书。技术书的风格也分为好几种。砖头书,也就是数百上千页的大部头,例如《C++程序设计语言》、《UNIX环境编程》、《UNIX网络编程》、《深入理解计算机系统》等,书虽巨,却没有什么废话,入门不宜通读,需有所侧重。两三百页的小书,这种书最吃香,便携,可卧读可厕读,好书也不甚枚举,如《SQL反模式》、《编程珠玑》、《C++对象模型》、《TCP/IP高效编程》、《卓有成效的程序员》等等。C语言中最好的要数K&R,其次是《C专家编程》,也就是所谓的鱼书,就算不学C语言,也值得一读,缘故是每章作者都以业界绯闻八卦收尾,异常精彩。《Unix编程艺术》是历史书,而《编码》则是对计算机的来历追本溯源(Charles Petzold著,作者的《Windows程序设计》我认为已过时,而此书则可继续盛行),《C++语言的设计与演化》和《松本行弘的程序世界》是从语言设计者的角度写语言的来历(后一本不完全是),Bjarne很严肃而松本行弘很老实。Ken Thompson不喜欢写作,因此只能看些他的采访(也不多),而Richard Stevens已去世,只把遗憾留下。《计算机网络》的作者AST(Minix作者)的书也比较搞怪,深谙八卦之道。《Python参考手册》很是实用,如果每个细分领域都有类似这样的书,程序员可以幸福很多。O'Reilly出版的书有些良莠不齐,好书虽然不少,但也要有所识别,特别Cookbook系列的快餐书。

写作的要素是朴素、清澈,正如Unix哲学一般。要做到这一点,何其难也。越是站在程序世界巅峰的人,越是谦虚平和。在社区的几篇采访稿中,看到那些真正引领技术潮流的先行者,几乎都无一例外地述说自己仅了解一两个细分的领域。不仅写作,待人接物之本宜应如此。