《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晨,阴有雨