《Code: The Hidden Language of Computer Hardware and Software》在豆瓣與亞馬遜上的評分與贊譽都極高。封面上赫然表明:永不褪色的計算機科學經典著作。
為了讓贊譽與批評取得平衡,讀后想表達的觀點如下:
《Code》是一本解釋計算機工作原理的通俗讀物,非教材,非科技專著,是科普著作。因為是科普,以前不曾是、以后也不會是“大學計算機組成原理的替代品”,更不要拿它來與CSAPP并列對比。因為它是科普,所以,用它來佐證“大學的教材思路全錯”是不正確的判斷,即使大學的教材思路確實全部都是錯的。
《Code》講解了若干計算機入門理論,這些理論內容并不充分,遠不足以包含計算機專業大一新生的《計算機科學導論》課的知識點。換句話說,即使你把《Code》讀懂讀透,《計算機科學導論》考試還是不及格,就更別提《數字邏輯電路》或者《計算機組成原理》了。作者為了保持該書的通俗性、可讀性,在若干知識點上做了許多無效的努力,包括:第19章微處理器,第22章操作系統,第24章程序設計語言,第25章圖形。對于這些重要的知識點,該書的講述既不充分也不清晰。
《Code》同時也花了大量的篇幅講解了許多非計算機理論知識,包括:摩斯碼、盲文、手電筒的結構、電流電壓安培瓦特......當然,還有算盤。這些內容以大概率不會出現在大學課堂。值得注意的是,這些內容在《Code》這本書占據了大量篇幅(第1章到第9章),也是作者的通俗表達可以高度發揮作用的章節。因為要保持通俗性、可讀性,該書到第9章才講到二進制。之前講了什么?第1章講兩個小朋友希望開展“夜談會”的故事、第2章講摩斯碼、第3章講盲文、第4章講手電筒(電池電線電流)、第5章燈泡加電線、第6章講電報、第7章講十進制......用全書1/5的篇幅講解這些內容,確實很通俗,以下這幅圖(第10章第一頁)多少可以說明其通俗的程度:
可惜的是,我看不出這種通俗能對專業學生有任何的裨益,更納悶的是,這樣的書要怎么樣才能如某些讀者聲稱的那樣“讀出高潮”?這兩句非常不客觀,讀者可以忽略。
最后,也許還可以苛責《Code》有一個重大的缺陷:沒有任何一本參考文獻。也就是說,這是一本自包含的書,而且從這本書出發,你的求知欲沒辦法延伸開來。你看了這書,依然不知道計算機組成原理、操作系統、程序設計應該怎么學,應該看什么書,這些知識點的重點難點是什么......當然,這與其定位有關,它是一本科普書,非專業書。
我給計算機專業讀者的建議是,任何時候都不要閱讀這本書。要入門,隨便找一本教材,比如:CSI ,或者CSO。要找樂子,可以看其他科普,不就此獻丑,擺手!
--
20180502晨,陰有雨