作为《编程珠玑》的忠实读者,您了解《编程珠玑(第2版)》和《编程珠玑(续)》到底是什么关系吗?它们可是亲生姐妹哦:-)
Jon Bentley是美国著名的程序员和计算机科学家,他于20世纪70年代前后在很有影响力的《ACM通讯》(Communications of the ACM)上以专栏的形式连续发表了一系列短文,成功地总结和提炼了自己在长期的计算机程序设计实践中积累下来的宝贵经验。这些短文充满了真知灼见,而且文笔生动、可读性强,对于提高职业程序员的专业技能很有帮助,因此该专栏大受读者欢迎,成为当时该学术期刊的王牌栏目之一。可以想象当时的情形,颇似早年金庸先生在《明报》上连载其武侠小说的盛况。
后来在ACM的鼓励下,Jon Bentley经过仔细修订和补充整理,对各篇文章做了精心编排,分别在1986年和1988年结集出版了 Programming Pearls ( 《编程珠玑》 )和 More Programming Pearls ( 《编程珠玑(续)》 )这两本书,二者均成为该领域的名著。
后来, Programming Pearls 经过修订重新出版为 Programming Pearls ( 《编程珠玑(第2版)》 ),在2000年问世,书中的例子都改用C语言书写,并多处提到如何用C++和Java中的类来实现。但是,《编程珠玑(续)》却一直没有再版,其中的例子多以Awk语言写成,但其语法与C相近,容易看懂。
Jon Bentley博览群书,旁征博引,无论是计算机科学的专业名著,如《计算机程序设计艺术》,还是普通的科普名著,如《啊哈!灵机一动》,都在作者笔下信手拈来、娓娓道出,更不用说随处可见的作者自己的真知灼见了。如果说《计算机程序设计艺术》这样的巨著代表了程序员们使用的“坦克和大炮”一类的重型武器,这两本书则在某种程度上类似于鲁迅先生所说的“匕首与投枪”一类的轻型武器,更能满足职业程序员的日常需要。或者说前者是武侠小说中提高内力修为的根本秘籍,后者是点拨临阵招数的速成宝典,二者同样都是克敌制胜的法宝,缺一不可。在无止境地追求精湛技艺这一点上,程序员、数学家和武侠们其实是相通的。
在美国,这两本书不仅被用作大学低年级数据结构与算法课程的教材,还用作高年级算法课程的辅助教材。例如,美国著名大学麻省理工学院的电气工程与计算机科学开放式核心课程算法导论就将这两本书列为推荐读物。
这两本书覆盖了大学算法课程和数据结构课程的大部分内容,但是与普通教材的侧重点又不一样,不强调单纯从数学上进行分析的技巧,而是强调结合实际问题来进行分析、应用和实现的技巧,因此可作为大学计算机专业的算法、数据结构、软件工程等课程的教师参考用书和优秀课外读物。
书中有许多真实的历史案例和许多极好的练习题以及部分练习题的提示与解答,非常适合自学。正如作者所建议的那样,阅读这两本书时,读者需要备有纸和笔,最好还有一台计算机在手边,边读边想、边想边做,这样才能将阅读这两本书的收益最大化。
(本文改编自《编程珠玑(第2版)》寄《编程珠玑(序)》的译者序。)