1
本科毕业,直接读博
1960年,22岁的小高毕业了,获得数学学士学位。 
但是他的本科学业如此出色,俄亥俄州凯斯理工学院教师们投票一致同意,同时授予他硕士学位
 

于是,本科生小高直接去加州理工去读博士了! 
人家小高完全不偏科,不但数学好,还妙笔生花,写得一手好文章,你说气人不气人。 
他中学时就担任学校校报的编辑,大学更进一步,主编了《工程与科学评论》,获得了1959年国家最佳技术杂志奖。
小高不但作文好,计算机也玩得很溜,在那个很多人不知道计算机为何物的60年代,小高就为学校篮球队编写了一个程序,用于统计每个人在比赛中的投篮、篮板、防守、抢断、犯规等情况,然后给每个人都计算出得分,依次为依据挑选球员,派球员上场。 

依靠这套程序,小高带领球队获得了全美大学生联赛的冠军,这可能是最早的大数据的应用案例吧
这个篮球程序要在IBM650计算机上运行, IBM一看乐了,这可是宣传自家机器的好机会啊,立刻跑来拍了一个纪录片《电子教练》:
 
02
副业赚外快
1961年,博士一年级的小高一边读书,一边揽活赚外快。
不过他的副业可不是什么图书管理系统,学生信息系统这种烂大街的东西。 
要玩就玩大的,他整了个Algol语言编译器,一下子赚了5000美元

第二年暑假,他又写了一个编译器,这次赚了15000美元,比加州理工学院的助理教授工资都高。
这就太可怕了,60年代,会编程的都没几个,更别说编译器了。
有家创业公司找到他,想拉他入伙,给他开了10万美元的薪水(60年代的10万至少相当于现在的百万美元了吧?),但是被小高拒绝了。
因为小高真正的发现了自己的乐趣所在:在计算机算法中发现数学原理。 
他不在乎收入,他将为自己的乐趣奋斗一生。 
03
专注力
数学大神,计算机大神,写作高手,看起来已经非常完美了,但是和小高的一个品质比起来,这些技能都要退居次席。 
这项极其宝贵的品质就是:专注力
有了专注力,求伯君才能在深圳一间酒店中,夜以继日用汇编写出第一版WPS。 
有了专注力,Bill Gates 才能24小时坐在电脑前,不眠不休,为牵牛星计算机编写Basic解释器。
有了专注力,Linus才能穿着睡衣,拉上窗帘,在自己的小黑屋中疯狂地编写Linux代码。 
……
而小高早在小学时期就展示了这项非凡的能力。 
当时,一家糖果公司举办了一场比赛,要求从Ziegler’s Giant Bar这个糖果名的字母中自由组合,看看能组成多少单词。 
 

小高天生就对这种“离散”的数据感兴趣,他一看就来了劲儿,谎称生病,两周都没去学校,拿着一本破字典,不分昼夜,孜孜不倦地在其中寻找。  
糖果公司预计冠军能找到2000左右的单词, 没想到小高的结果让他们大跌眼镜:居然找到了4700多个!
04
写一本编译器的书吧
万事俱备,只欠东风,小高的伟大事业即将启程。
他将去开创一个学科,去改变计算机的历史!
Addison-Wesley以出版计算机领域的教科书出名,得知小高擅长写编译器以后,出版社的编辑坐不住了 :“高先生,你写编译器这么厉害,能不能写一本书,讲讲怎么实现编译器。”

“这主意不错,我喜欢写作,你们Addison-Wesley是著名出版社,现在编译器的书又很匮乏,我们合作吧。”
小高迅速列了一个12章的提纲,摩拳擦掌,准备开始。
但是他很快发现,如果不先发展一套计算机编程的基本理论:算法分析,写编译器的书会磕磕碰碰的。 
于是,他又找到了编辑:“那个,我觉得应该先写一本新书,把算法好好讲讲,叫《算法分析》,你觉得怎么样?”
  “这书名,恐怕没销量吧?”
 “那就叫《计算机程序设计艺术》!”
《计算机程序设计艺术》,现在大家知道小高是谁了,大名鼎鼎的高德纳啊。 

前面为了留一点悬念,称高爷爷为小高,实在是罪过。 
高德纳本来只想写一本,写着写着发现,一本根本不够,需要7卷才能包含所有的主题!
Addison-Wesley 也是豁了出去,那就出吧!
卷1:基本算法
卷2:随机数和算法
卷3:排序和搜索
卷4:组合算法
卷5:词法扫描和解析
卷6:上下文无关语言
卷7:编译器技术
可以看出从第5卷开始,才算进入真正的编译器相关的知识
这么庞大的工程,真是要命啊。 
如果是普通人,估计也就算了,但是高德纳再次发挥了用糖果名拼写单词的优秀品质,准备用一生时间和它死磕到底。 
05
用汇编写算法
既然要写编译器相关的书,那必然要涉及到机器,可是计算机发展一日千里,高德纳也无法控制,这怎么办?
答案是自己“造”一个假想的虚拟机器 : MIX。 

高德纳为MIX设计了汇编指令,为它还写了一个模拟器,这样就可以在上面执行程序了。 
《计算机程序设计艺术》中的实例程序都用MIX的汇编来实现,这对于高德纳这样的大神来说非常简单。 
对普通人来说,尤其是看惯了Python, Java,C等高级语言的同学来说,算法用汇编来写,这不要了命吗?
MIX汇编就像一个怪兽,守护在《计算机程序设计艺术》的大门前:“想进入大门,必须经过我这一关!”
这可能就是很多人买了书但从来不读的重要原因!
06
计算机程序设计艺术
1968年,30岁的高德出版了《计算机程序设计艺术》第一卷,立刻成为经典,引起了学术界和工业界的注意,产生了巨大的影响。
完美主义者高德说:“ 找出一个错误,我给你2.56美元,现在书刚出版,找Bug还比较容易,也许你能快速收回买书的成本。”
真的有人找到了错误,并且收到了高德的支票,不过,没人舍得去兑换,通常都是装裱起来,留作纪念。

1995年,Bill Gate在采访中建议,任何认为自己是优秀程序员的人都应该读一下第一卷。 
他说:  “我当时花了好几个月读这本书,真是需要很强的自律才行,如果你读完了,请给我邮寄一份简历。”
1968年,30岁的高德成为斯坦福大学的终身教授,接下来,将会他是最富有成效的5年。
1969年,《计算机程序设计艺术》第二卷出版, 1973年第三卷出版。 
1974年美国计算机学会就“迫不及待”的把计算机界的最高奖——图灵奖——授予高德,表彰他对算法分析和编程语言设计的重大贡献。 
这一年高德仅仅36岁 !只靠一套还没有完成的书就获得ACM图灵奖,不但是前无古人,估计也后无来者了。

为什么这本书这么牛呢? 
因为高德首次把算法复杂度做了量化衡量,提出了决定算法快慢的决定性因素,奠定了计算机算法的基础,成为全世界计算机领域内的标准。
这套书售价高达几百美元,但是却在全世界卖了超过百万套
它是计算机编程界当之无愧的圣经。 
1999年,《美国科学家》杂志曾将《计算机程序设计艺术》与爱因斯坦的《相对论》、狄拉克的《量子力学》,维纳的《控制论》等书并列为20世纪最重要的12本科学类专著,可见此书的历史地位。
07
TEX排版系统
然而令人大跌眼镜的是,拿到图灵奖以后,高德居然宣布暂停写作,因为他对于新书的排版非常不满:文字、符号和排列方式实在是难看, 破坏了书的美感!
完美主义者高德决定暂停写作,切换身份,成为一名程序员,开发一个强大的计算机排版系统。
没想到这一停就是将近九年。
最终的成果是开源排版软件TEX(可能是最早的开源项目了)和 一种字体MetaFont。 
 
TEX和MetaFont改变了出版业, 在全世界有100多万的拥趸。许多人认为TEX计算机排版系统上的工作是自古腾堡以来对排版的最大贡献。
TEX的版本号也很有意思,不是数字(3.0, 3.1, 3.2….) ,也不是年份(Windows 95, 98, 2000…)。 而是不断逼近的圆周率 (3.1415926…) ,这从侧面反映了软件几近完美,不需要做改进了。
高德说:“最后一次升级是(于我过世后)将版本数改为 π,那时任何余下的漏洞将被看作程序的功能!
高德想刻意发明排版软件吗? 
不!他只想让自己的书看起来更加漂亮,但是他偶然为之的工作却能抵得上普通人为之奋斗一辈子,这就是真正的大神吧!
08
硅谷最牛程序员
在IT圈流传着这么一个笑话:
有一天,Richard M. Stallman, Linus Torvalds, 和高德 三人坐在一起聊谁对计算机世界的影响最大。 
Stallman :上帝说是我开发了世界上最好的编辑器Emacs!
Linus : 嗯,上帝说是我开发了世界上最好的操作系统!
:等等,我从来没有这么说过!
面向对象的发明人Alan Kay这么说过:
60年代末,当我在斯坦福从事AI项目时,每个感恩节我们都会和硅谷的编程高手们举行编程竞赛,McCarthy(人工智能之父)出题, 奖品是好像是一只火鸡。
高德纳参与的那一年,把我们都给虐了, 他的代码无论是程序执行和算法执行都是最快的,并且他用的是一台最慢的批处理机器
我们问高德纳:“你是怎么做到的?”
他说:“当我学习编程时,如果每天有五分钟的时间使用机器,就高兴得不得了, 所以必须要让程序一次运行成功,没有错误,算法设计达到最佳。”
09
未来?
1993年,高德纳提前从斯坦福退休,住到了学校周边的一个山上,开始过一种隐士生活。 
他觉得电子邮件噪声太多(垃圾邮件受害者?),不再使用了,由秘书代收,每年会花费几周时间阅读订阅的期刊。
他限制了自己的公开活动,每个月他会从山上下来,在斯坦福大学做一场“计算机思考”的讲座。
这一切的目的,都是为了用余生去完成《计算机程序设计艺术》。


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

蜀ICP备16001794号
© 2014 - 2024 linpxing.cn All right reserved.