分类: IT业界
2013-08-09 19:57:48
刚刚一口气读完了《编程的修炼(中英双语)》这本书的第4章试读片段,感觉这本书真的是与众不同。
首先是原版书的出版时间——1976年10月。也许这个时间点对很多人来说并无特殊意义,但是对于一本计算机科学的书籍而言,这绝对可以算作经典之作。要知道,1976年,从硬件角度来说x86系列的CPU尚未诞生,当时所谓的计算机除了科学计算并不能做太多的事情;从软件角度来说编程语言不超过十种,而且如今最为流行的C语言仅仅诞生不超过5年,很多标准尚不完善;而编译器也处于一种探索状态中,目标代码自动生成尚未实现。就是在这样一种条件下,在可以说“编程”这一概念还很朦胧的状态下,作者敢于触碰在当时来看比较前沿的内容,写就了对最近40年的计算机编程发展影响深远且如今来看依然熠熠生辉的经典文字。
接下来要说的是作者本人——Edsger Wybe Dijkstra先生。可以说,在我阅读的国外计算机科学经典著作的作者中,Dijkstra是很特殊的一位。值得一提的是,能够写出不朽的经典著作的计算机科学家都是值得尊敬的,例如《算法导论》的四位作者,例如写有《具体数学》的Donald Ervin Knuth,还有《C++ Primer》的作者Stanley B.Lippman等等。他们中有的醉心学术,对科学一丝不苟;有的在全球顶尖的IT公司身居要职,指引着软件行业的发展方向。不过,Dijkstra是特殊的,特殊在对于普通IT人来说,我们时不时就要和以他的名字命名的算法打交道。Dijkstra算法是图论中的重要算法,今天大到卫星定位、小到车载导航都或多或少存在着该算法的应用。除此以外,Dijkstra是结构化的编程方式的开山祖师,我们今天的编程思想(例如尽量避免使用goto语句)很多都得益于他的深邃见解。
见识到作者的伟大,接下来肯定是迫不及待地想看看他写的书到底怎么样。在此之前先大赞一下此次出版的创新之处。双语教学我经历过,但是双语书籍真的是第一次看。不知道出版方是抱着怎样的一种初衷,但是这种做法很对我的味!当初在阅读《深入理解计算机系统》这本书的时候就真的很想左手中文版、右手英文版对照着看,因为好多内容需要在英语的语境中才能体会究竟是什么意思。这一次梦想得以实现,只不过换成了一页英文、一页中文。当然试读了一章之后感觉中文的翻译还是很棒的!
接下来说说对这本书的感受吧。试读部分是本书的第4章,从语义的角度讲述了编程语言应该遵循的原则。这部分内容应该说比较难懂,最好有编译原理等相关内容的预备知识再去阅读会更易理解些。回看本书的目录,可以发现前面几章都是关于编程语言的基本组织结构这方面内容的,而第7~11章则穿插介绍了算法、软件设计相关内容,从第12章开始则几乎全部是算法与数据结构的内容了。其中后面好多专题相当吸引人,例如数学意味很浓的“将一个数写成两个平方之和”和“大数的最小素因子问题”,还有比较冷僻的计算几何问题“三维空间的凸包问题”,以及Dijkstra的强项“图论”相关经典问题——“有向图的最大强连通分支”等等。可以说,光看目录就能够感受到书籍巨大的信息量。
Edsger Wybe Dijkstra先生被认为是我们这个时代最伟大的计算机科学家(Donald Ervin Knuth也有此荣誉),阅读他的著作给了我们近距离欣赏经典、学习大牛的机会,正如本书的简介中说的那样:本书值得每个关注计算机科学技术的本质,冀求在程序和软件领域有长远发展的计算机工作者、教师和学生阅读。相信读过本书的朋友们会和我有类似的感受。