童程童美少儿编程教育

少儿编程 > 文章资讯 > 少儿编程 > 他用50年写出编程圣经 被奉为程序员鼻祖

他用50年写出编程圣经 被奉为程序员鼻祖

酷玩实验室 2016-07-29

我们的高德纳大师,他年轻时立下志向,决心写出一本能完整介绍计算机领域的书。一写就是40年,如今他已经白发苍苍,却依旧在写同一本书。1968年,他的《计算机程序设计艺术》第一卷终于正式出版。这一套书是编程史上最伟大的书之一,史称“TAOCP”。

摘要

曾经有一位高人,教过我一句至理名言:千万不要跟戒烟成功的男人和减肥成功的女人做朋友。他们什么事都做得出来。这种对自己都下得去狠手,逼自己几年做一件很困难的事的人,是很可怕的。说到这个,有一位堪称典范计算机领域的艺术大师——高德纳

计算机领域的艺术大师——高德纳

我们的高德纳大师,他年轻时立下志向,决心写出一本能完整介绍计算机领域的书。一写就是40年,如今他已经白发苍苍,却依旧在写同一本书。1968年,他的《计算机程序设计艺术》第一卷终于正式出版。这一套书是编程史上最伟大的书之一,史称“TAOCP”。

TAOCP 完整的介绍了计算机领域信息

第一卷的书名叫做《基本算法》,讲述编程时要用到的基本数学知识和不同领域要用到的算法。可是人们买了以后才发现,这本书超难啊!初学者根本看不懂,天才如比尔盖茨,也花了好几个月,攻克了许多难题才读完。看完后的比尔盖茨说:如果你完完整整读完了TAOCP,请立刻给我发一份简历。而高德纳自己,则认为这本书只是启蒙教材:“如果连这一卷都看不懂,就不要考虑当程序员了”。

次年,TAOCP第二卷出版;1973年,第三卷也相继出版。这时TAOCP的销量已经突破百万,这套包罗万象的计算机丛书,受到了图灵奖评委会的关注。按照高德纳的计划,TAOCP一共有7卷,这才出到第3本,都还不到一半,但是图灵奖的评委们,内心激动得不能自已,就想冲到高德纳家里,把奖杯递到他手上。于是,他就获得了图灵奖,那年,他只有36岁,他也成为了图灵奖至今年龄最小的获奖者。

碗状的图领奖杯

图:碗状的图灵奖杯

正常人拿了这种级别的大奖,肯定要激动不已连续失眠,但是我们的高德纳,是个不折不扣的无敌天才,他已经习惯了拿各种奖。这些世俗庸才用来证明自己的东西,他根本不care,还在家里把奖杯当做盛水果的盆。从小拿奖到手软的他,得到的第一个奖是在8岁的时候,当时有家糖果商举办了一场比赛,要求用“ Ziegler’s Giant Bar”里面的字母,写出尽可能多的单词。孩子们大都只能写出几十个单词,这时小高德纳坐上打字机,一口气写出 4500多个单词,然后笑着说:我还能写出更多。

小时候的高德纳

就是这种舍我其谁的表情,在场的所有人都被震慑住了,赶紧把冠军给了他。10岁开始,他一直想当一名音乐家,每天都在练习吹奏各种乐器,上中学时已经能谱曲,甚至能亲手制作一台管风琴,后来摆在他家里的管风琴,就是他自己设计的。

高德纳设计的管风琴

从细节看,真的很厉害。

管风琴的细节

他的思绪全都在音乐上,高中的时候,几乎没有完整地听过一堂课,但是老师们却很喜欢他,因为在完全不听讲的情况下,他的成绩依然是年级第一。高中毕业时,他的平均成绩达到了97.5分,是那个学校历史最高的分数。后来他考入了当时美国最顶尖的研究型大学凯斯理工学院。

他就是在这里,发现了比音乐更热爱的东西,大一暑假留校打工,已经是深夜了,这时他看到几个人,正在把一个巨大的东西搬进机房,那是当时最先进的计算机——IBM650。 庞大的机箱和闪烁的指示灯,让他好奇不已。他趁人不注意偷偷钻进机房,和这台机器大战了三天三夜。

三天以后他从机房出来,整个人都消瘦了,但是他的眼睛闪烁着亮光,因为通过这三天的自学,他已经完全掌握了编程原理。并且他发现,自己能编写出比IBM650说明书上更难、更复杂的程序。

当时他还是学校篮球队的管理人员,他突发奇想,可以把球员们在球场上的表现,包括得分、篮板、抢断等数据编入一个程序。当面对不同对手的时候,可以计算出最佳的球员布阵和攻防战术。战绩平平的凯斯理工学院,竟然凭借这个软件,赢得了当年高校联赛的冠军!

这样的一个程序,放在今天好像没什么,但在那个人们连电脑都没见过的时代,绝对是尖端的黑科技啊!学校的老师们被这个复杂的程序折服了!

本科毕业的时候,老师们一致决定,直接给他一个硕士学位吧!

25岁时,他发现市面上,几乎没有编程的教材,于是决定写一本能够全面介绍编译器和程序设计方面的书,一写就是四年。出版社编辑的胡子都半米长了,问他怎么还没写完

他说:我刚写完这本书的概述,才写了3000页。

由于内容太多,他决定出一套系列丛书,写完一本卖一本。于是1968年,《计算机程序设计艺术》第一卷正式出版了,这就是我们开头提到的,最后为他赢得图灵奖的书。得奖后的高德纳,已经是举世瞩目的计算机科学家。按理说应该继续写书,走向人生更高的巅峰。然而人家根本没在乎得没得奖,就在获得图灵奖当年,他宣布暂停TAOCP的写作,潜心研究字体和排版。他在采访中说:我忍了很久了,当今的文字排版技术太烂了,破坏了我著作的美感,我要去开发更先进的排版技术,更优美的字体,让我的书看起来更漂亮!

这个理由也太任性吧!全世界都被他的这个决定震撼到了。笔耕一辍就是五年,五年后,在世人疑惑的目光中,高德纳发布了两个响亮的成果:

TEX排版系统和METAFONT字体系统

如果大家用word写过复杂的数学公式,就知道那种咬牙切齿的感觉,每个符号都要单独寻找,字体字号字距要不断调整,而TEX系统完全解决了这些问题,大大加快了学术论文的编写速度,而且它所排出的文字之美,让人们由衷感叹:

啊,一毫米都不能再挪动了

TEX的版本号不是自然数列,而是从3开始,不断地逼近圆周率。目前最新版本是3.1415926,意思就是在说,我的系统已经无限接近于完美了,没有什么要改的地方了。

此外,他还为TEX系统设立了奖金,第一个发现系统漏洞的人,可以获得2.56美金;  第二个人可以获得5.12美金。依此类推,我们都知道,传说某个国王就因为这种指数游戏,失去了江山,也有人嘲笑微软,说比尔盖茨再有钱,如果每有一个bug就赔钱,他早就倾家荡产了。高德纳作为算法大师,更清楚指数增长的可怕性。然而到现在为止,他只寄出过两张支票,可见他对完美的追求有多么极致。

第二个成果是字体系统METAFONT,从METAFONT中字体的优美程度来讲,可以说计算机界最懂字体的两个人,一个是乔布斯,另一个就是高德纳。TEX和METAFONT这两项成果,同样深刻影响着世界。以至于到今天,大部分学术文章依旧在用TEX排版,凭借这两项支线成果,高德纳获得了美国总统卡特亲自颁发的美国国家科学奖奖章。

有了漂亮的排版和优美的字体,高德纳重启了TAOCP的写作,但由于计算机领域发展迅速,至今只写到第四卷第一部分(4A)。

这套丛书如今早已成为,程序员界的圣经,高德纳也因此成为了编程界的上帝。高德纳有一个与其他所有编程大师都不同的看法:他从不认为编程是一门科学,而是一门艺术。用他的话说:“因为编程要求技巧和智慧,并且产生美的目标。”

各位码农兄弟,如果你们看完了他写的书,别忘了给比尔·盖茨打个电话!