在程序设计领域,有一部气势恢弘的史诗级作品,计划出版七卷,那美国老头写了很多年也没有写完,这作品影响力非凡,你……知道是哪部吗?
这就是那套无数程序员在书架上珍藏好久,数次翻开又合上,最后一年过去了,才看完100多页的那套书——《计算机程序设计艺术》!
神书讲究的是精神的力量,就算暂时没有读完,只是摆在书架上,也会觉得安心。没错!是信仰!
洋洋数百万言的多卷本《计算机程序设计艺术》始于1960年代。其地位可以与数学史上欧几里得的《几何原本》相比,堪称计算机科学理论与技术的经典巨著。
计算机科学界的大牛们随时随地都能从这套书中得到启发和灵感:
在上大学时,有那么几个月偶连房租都没交,就是为了买他的书。偶读过这些书,从中得到了不少乐趣,比如在第一卷的索引有个关于拖车的笑话就很好玩。偶到现在为止还没能把书上的内容全部搞懂。Knuth对某些地方的研究要比偶深入得多,但偶还是喜欢这些书并把它们当做参考资料。——DouglasCrockford(JavaScript大宗师)
事实上,偶从来没有读完这一套书,没有从头到尾看过。但当偶研究某个具体算法的时候,偶就去看他会怎么说。往往可以得到偶想要的东西,这套书太全面了。——JoshuaBloch(Java集合框架创办人)
有段时间偶拿它当偶的显示器底座,因为它是偶最大部头的成套书之一,而且高度恰好合适。偶感觉这样很舒服,因为它总在那儿陪着偶,而且因为它就在偶面前,所以偶找参考书的时候就更容易去顺手翻翻它。——PeterNorvig(计算机科学家)
就连这套书的首席“教徒”比尔•盖茨曾经都说过:“如果你自以为是一个很好的程序员,请去读读高德纳的《计算机程序设计艺术》,要是你真把它读下来了,毫无疑问你可以给偶递简历了。”
所以,读完TAOCP的人,有给盖茨发简历吗?
就是这样一套神书,如今已经出版了一百多万册了,无数程序员们为之神往。那它究竟出自何人之手呢?作者就是当代最伟大的程序员之一高德纳。
他是当代的算法精神领袖。1974年图灵奖获得者;1979年美国总统卡特亲自向他颁发了全国科学奖章;1995年获得冯·诺伊曼奖和Harvey奖;1996年获得日本INAMORI基金会设立的京都奖,这个奖是专门奖励在高科技领域作出贡献的科学家的。
你听说过用图灵奖奖杯来装水果的吗?高德纳做到了。对于这些奖项,高德纳一直都是以平常心对待,他也从不在意这些。他已经深深投入到了计算机科学的世界。
《计算机程序设计艺术》是高德纳一生中最重要的事业。1992年,为了能完成这部巨著,他退休回家专注写作。他总共收了28个博士,此后没再收过任何人。
他写这套书的目的是“组织和总结所知道的计算机方法的相关知识,并打下坚实的数学、历史基础”。
有趣的是,他并不想让这套书吓到大家而被束之高阁,而是鼓励大家发现书中的错误。
如果你能发现书里的错误,便可以给他发送邮件,如果是被确认的勘误,你将会获得神之支票,金额为$2.56美金。
为啥是$2.56美金呢?因为“256美分刚好是十六进制的一美元”。大神的世界果然让人琢磨不透。
除此之外,他还是个完美主义者。这款处女座的专属排版软件——Tex,你值得拥有。
在修订第七卷的时候,因担心印刷质量影响出版效果,于是在写作期间,他用八年时间开发了这套排版软件。
用他的话说:“偶花了整整15年时间写书,如果都这么难看,偶就再也不写了,偶又怎么能以他们为豪呢?”
目前该软件已经成了学术界必备的软件之一,广泛地应用于数学,物理以及计算机界,能优美地处理复杂的公式。
TEX功能强大,有着有趣的版本号码。从TEX第三版开始,之后的升级是在小数点后加入一个新数位,使之越来越接近圆周率π的值。
Tex目前的版本是3.1415926。这显示了TEX已经十分稳定,任何的升级都十分细微。高德纳曾表示:
“最后一次升级是(在偶过世后)将版本数改为π,那时任何余下的漏洞将被看作程序的功能。”
当然,大家希望这一天永远不要到来。
这样一个伟大的人,他好似大家身边任何一个普通的人。但在对待程序这件事情上,他做到了淋漓尽致,这就是对计算机最伟大的敬意。
有人觉得这套书很难,至少大部分人都觉得这书不简单。对此,高德纳说过:“要是看不懂,你可以考虑一下自己是不是要继续当程序员。”
程序员还是要做的,书也是要读的。其实,阅读此书就好比修炼内功,是一个长期的盖楼过程,急不来的。只有你能了解到最底层的东西,才会更清楚计算机在想些什么。千万不要被前人的经验吓倒,尝试一下总会有新发现。
中文版自出版以来,深受读者喜爱,豆瓣评分都在9.0以上。有人戏称它为“只有促销才敢下手的图书”。这也是程序员间最拿得出手的送礼方式,高逼格,有心意。
从去年开始陆续有读者询问最新版本卷4A的中文版何时出版。经过漫长的等待,这套计算机史上的巨著离它的完整又近了一步。
新版本卷4A讲解的是组合算法。内容主要涉及到布尔函数、按位操作技巧、元组和排列、组合和分划以及所有的树。
之前在微博上,看到一个小伙伴立的Flag,他把读完“计算机程序设计艺术”系列称作自己的“十二五规划”。
偶注意到他的卷4A还是英文版的,不得不佩服这位兄台的勇气。不过,为了加速他完成任务,偶很想告诉他,中文版已经上市啦!
不知道是不是冥冥中,《计算机程序设计艺术卷4A:组合算法(一)》的译者之一,李伯民老师,曾就任于中科院高能物理所任计算机中心主任,今年已经86岁高龄了,比高德纳教授还要大几岁。
他是一位非常自律的人,平日里除了从事高强度的翻译工作以外,他每周都会去爬山。
以八十多岁高龄,他仅在最近两年就已经征服过大海陀、白石山、泰山、崂山、五岳寨、嶂石岩、古北岳(大茂山)、七步沟马武寨等华北地区高峰,让大家年轻人钦佩不已。
李老师曾对大家说过:“希望你们年轻人能够锻炼好身体,才能把工作做好。”
这样的身体素质不仅秒杀大家这些亚健康的年轻人,大家更是为李伯民老师身上的坚毅品格所感动。如此高龄,还从事着繁重的翻译工作,是出于对这部作品发自内心的热爱。
除了这本卷4,卷1李老师也有参与翻译。另外,他还译过《微积分的历程》等书,是一位经验很丰富的译者老师。
(图左:李伯民老师,图右:本书责编,图灵副总傅志红老师)出版这样一部巨作的过程是漫长的,期间要做的工作很多。为了给读者最好的阅读体验,大家的书稿都要经过三审三校,后期出版、选纸、印刷也都倾注了很多心血。这里也要感谢每一位为这本书贡献力量的老师们。还有大家的读者们,感谢你们对这本书的期待,让这一切变为可能。
最后,祝愿高德纳教授、李伯民老师能够健康长寿!为大家带来更多的佳作。
《计算机程序设计艺术卷4A:组合算法》
作者:高德纳
译者:李伯民,贾洪峰
《计算机程序设计艺术》系列被公认为计算机科学领域的权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第4卷A,书中主要介绍了组合算法,内容涉及布尔函数、按位操作技巧、元组和排列、组合和分区以及所有的树等。
内容来源:干货狗图灵教育
更多计算机好书可关注@人民邮电出版社,大家会持续推出优质的计算机知识和图书资源!