為什麼說K&R是技術寫作的典範

凌傑_owlman發表於2015-01-22

其實,我已經不記得自己是第幾次重讀這本《The C Programming Language》了,但每次讀都不禁感嘆,技術書竟然也可以寫得如此精煉,完美,儼然是一副美麗的畫卷。能從此書進入浪漫而嚴謹的黑客世界不能不說是一種榮幸。因此這本書一直我向初學者們推薦的首選書籍。

但凡寫過技術文章的人都知道,寫這類文章最困難的地方就在於如何在細節嚴謹性與教學引導性之間找到合適的平衡點。如果沒有教學引導性,你就很容易寫出一部字典來,對於初學者來說,如果缺乏輕重緩急和一個循序漸進的過程,很可能就會不得其門而入。而如果缺乏足夠的、可以立刻上機測試的程式碼例項細節,就會讓他們覺得興趣黯然,導致學習過程形同嚼蠟。這就需要作者有豐富的教學經驗以及帶隊經驗。有了前者,我們就能熟悉教學心理,知道先教什麼,後教什麼,之間如何承前啟後,將人一步一步引入到這麼技術的運用中來。而有了實際帶隊經驗我們就會知道新手在具體實踐中會遇到那些情況,並且能準確的預料到學生在執行什麼程式碼時會遇到什麼問題,而在這種情況下往往是一點就通,不用長篇大論,事倍功半。

然而,只懂如何做一個老師是不夠的,計算機語言畢竟是一門科學語言,嚴謹的細節感是必不可少的。這就要求作者自己得是相關領域中的專家,至少得對這門學科的標準,設計原則瞭如指掌。唯有這樣才能言之有物,而不是靠類似++i+i++這樣的東西來譁眾取寵,而又在細節上似是而非的東西來濫竽充數,卻對真正需要濃墨重彩的結構體,標準庫部分語焉不詳,敷衍了事。

同時做到以上兩個方面並不容易,但這本書不但做到了,而且做得堪稱典範。作為C語言和UNIX作業系統的締造者,本書的作者K&R對於C語言的標準及其運用自然有著無可爭辯的權威。而他們從列印Hello World!開始的教學方式幾乎成為了所有程式設計教學的樣板。而即便如此,至今也沒有幾本書能像他們這樣,做到如此的有趣、精煉、嚴謹(這本書的主體部分還不足兩百頁,想想那些比C簡單得多的語言,動不動就是幾百頁大部頭。),令人百看不厭。

相關文章