作为一名曾经的(成绩平平的)计算机专业学生,至今仍清楚地记得当年是如何在浑浑噩噩中,跌跌撞撞、连滚带爬地通过了一门门的专业课考试。虽然通过了,但不代表真的学会了。很多哪怕是专业中基础性的知识,都学得一知半解、似懂非懂,而且考完试就忘却了大半。这主要应归咎于知道自己是笨鸟还不肯先飞。但另一方面,正统教材中科(佶)学(屈)严(聱)谨(牙)的文字表述,跟我处于平均水平上下的大脑不太兼容,恐怕也是一个原因。如果那时候有本像《程序是怎样跑起来的》这样浅显易懂的书作为课外读物,一定会有很大帮助,至少能让我把这些原本糊涂的计算机基础原理搞清楚。当然,现在有也不晚,至少不再继续糊涂下去。
日版书的一大优点就是细致体贴,这本书也不例外。作者像保姆一样在各种细节上为读者安排妥帖,尽可能地消除理解障碍。从CPU、二进制,到程序在操作系统中的编译、加载和运行,甚至人工智能,带领读者对程序的运行原理做了一次快速简洁而又完整的游历。别认为这些概念很基础而不屑一顾,其实不少“资深”的码农都未必真的理解、讲得清楚。(因为据我观察,像我这样稀里糊涂的计算机专业学生不在少数。)
书中关于数据压缩的那一章让我感觉很有趣。过去对此的印象是一种敬而远之的神秘。想到“压缩算法”这几个字,就觉得一定很烦很复杂。而本书让我只用了几分钟时间,就明白了数据压缩的基本原理和算法,不禁感叹:“原来这么简单!”甚至有了尝试写一个压缩软件练练手的冲动。
现在很少有人用汇编语言编程了,对大多数码农来说,编译器将高级语言源代码编译成机器码的过程,就像是巫师的黑魔法一般神秘莫测。本书用短短的几行C语言和汇编语言进行对照,就将这黑魔法的真相揭示在读者面前,让人恍然大悟:原来汇编也不难嘛。
全书细致,但并不啰嗦。全部内容连文字带图只用了薄薄的两百多页就讲完了,在动不动就有几斤重的计算机书籍中,实在是少有的纤细苗条。而且纸质和印刷都属上乘,捧读时赏心悦目。
要说缺点,就是本书成书年代略显久远,书中举例的那些软件(LHA、Borland C++、FreeBSD等)或已成为历史遗迹,或在当前已逐渐边缘化,对于年轻的读者来说可能会感觉陌生。当然,作为一本讲解基本原理的书,这点瑕疵并无大碍,技术发展很快,但基本原理是不变的。
本书作者矢泽久雄的另一本书《计算机是怎样跑起来的》也即将上市,十分期待。希望也能同样让我厘清一些原本糊涂的基本概念。已经糊涂好多年,别再糊涂一辈子了。