技術閱讀與寫作小記

berlinix發表於2012-05-03

繼續我程式設計師暴走式寫作風格。只要一旦思維停頓,想要修飾句詞,就無法繼續寫。恰好昨晚瀏覽微博,看到說猶太人人均一年閱讀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哲學一般。要做到這一點,何其難也。越是站在程式世界巔峰的人,越是謙虛平和。在社群的幾篇採訪稿中,看到那些真正引領技術潮流的先行者,幾乎都無一例外地述說自己僅瞭解一兩個細分的領域。不僅寫作,待人接物之本宜應如此。

相關文章