分享

硅谷最牛程序员,总是不经意间碾压众人

 昵称27492377 2022-05-10 发布于北京

1

本科毕业,直接读博

1960年,22岁的小高毕业了,获得数学学士学位。 

但是他的本科学业如此出色,俄亥俄州凯斯理工学院教师们投票一致同意,同时授予他硕士学位!

efcba022be0221dbc194cdbb33bc7331.png

于是,本科生小高直接去加州理工去读博士了! 

人家小高完全不偏科,不但数学好,还妙笔生花,写得一手好文章,你说气人不气人。 

他中学时就担任学校校报的编辑,大学更进一步,主编了《工程与科学评论》,获得了1959年国家最佳技术杂志奖。

小高不但作文好,计算机也玩得很溜,在那个很多人不知道计算机为何物的60年代,小高就为学校篮球队编写了一个程序,用于统计每个人在比赛中的投篮、篮板、防守、抢断、犯规等情况,然后给每个人都计算出得分,依次为依据挑选球员,派球员上场。 

0f055a547a51964f4d6b1f45b5c2d697.png

依靠这套程序,小高带领球队获得了全美大学生联赛的冠军,这可能是最早的大数据的应用案例吧。

这个篮球程序要在IBM650计算机上运行, IBM一看乐了,这可是宣传自家机器的好机会啊,立刻跑来拍了一个纪录片《电子教练》:

02

副业赚外快

1961年,博士一年级的小高一边读书,一边揽活赚外快。

e6a293df43b7686b375d0417afe5cd14.png

不过他的副业可不是什么图书管理系统,学生信息系统这种烂大街的东西。 

要玩就玩大的,他整了个Algol语言编译器,一下子赚了5000美元!

2b2dd1da2d84a3eaf4444e25db509faa.png

第二年暑假,他又写了一个编译器,这次赚了15000美元,比加州理工学院的助理教授工资都高。

这就太可怕了,60年代,会编程的都没几个,更别说编译器了。

有家创业公司找到他,想拉他入伙,给他开了10万美元的薪水(60年代的10万至少相当于现在的百万美元了吧?),但是被小高拒绝了。

因为小高真正的发现了自己的乐趣所在:在计算机算法中发现数学原理。 

他不在乎收入,他将为自己的乐趣奋斗一生。 

03

专注力

数学大神,计算机大神,写作高手,看起来已经非常完美了,但是和小高的一个品质比起来,这些技能都要退居次席。 

这项极其宝贵的品质就是:专注力!

有了专注力,求伯君才能在深圳一间酒店中,夜以继日用汇编写出第一版WPS。 

有了专注力,Bill Gates 才能24小时坐在电脑前,不眠不休,为牵牛星计算机编写Basic解释器。

有了专注力,Linus才能穿着睡衣,拉上窗帘,在自己的小黑屋中疯狂地编写Linux代码。 

......

而小高早在小学时期就展示了这项非凡的能力。 

当时,一家糖果公司举办了一场比赛,要求从Ziegler’s Giant Bar这个糖果名的字母中自由组合,看看能组成多少单词。 

732f3a12bb2c74d8c84d2a29dd509100.png

小高天生就对这种“离散”的数据感兴趣,他一看就来了劲儿,谎称生病,两周都没去学校,拿着一本破字典,不分昼夜,孜孜不倦地在其中寻找。  

糖果公司预计冠军能找到2000左右的单词, 没想到小高的结果让他们大跌眼镜:居然找到了4700多个!

04

写一本编译器的书吧

万事俱备,只欠东风,小高的伟大事业即将启程。

他将去开创一个学科,去改变计算机的历史!

Addison-Wesley以出版计算机领域的教科书出名,得知小高擅长写编译器以后,出版社的编辑坐不住了 :“高先生,你写编译器这么厉害,能不能写一本书,讲讲怎么实现编译器。”

dbb2c5a9e6c042cf5a6e3d8e44b51866.png

“这主意不错,我喜欢写作,你们Addison-Wesley是著名出版社,现在编译器的书又很匮乏,我们合作吧。”

小高迅速列了一个12章的提纲,摩拳擦掌,准备开始。

但是他很快发现,如果不先发展一套计算机编程的基本理论:算法分析,写编译器的书会磕磕碰碰的。 

于是,他又找到了编辑:“那个,我觉得应该先写一本新书,把算法好好讲讲,叫《算法分析》,你觉得怎么样?”

  “这书名,恐怕没销量吧?”

 “那就叫《计算机程序设计艺术》!”

《计算机程序设计艺术》,现在大家知道小高是谁了,大名鼎鼎的高德纳啊。 

db1c24caf1fd86e76f3f0af0e9d8f9c0.png

前面为了留一点悬念,称高爷爷为小高,实在是罪过。 

高德纳本来只想写一本,写着写着发现,一本根本不够,需要7卷才能包含所有的主题!

Addison-Wesley 也是豁了出去,那就出吧!

卷1:基本算法

卷2:随机数和算法

卷3:排序和搜索

卷4:组合算法

卷5:词法扫描和解析

卷6:上下文无关语言

卷7:编译器技术

可以看出从第5卷开始,才算进入真正的编译器相关的知识

7813d24e3d5e913bde41f2661f0be638.png

这么庞大的工程,真是要命啊。 

如果是普通人,估计也就算了,但是高德纳再次发挥了用糖果名拼写单词的优秀品质,准备用一生时间和它死磕到底。 

05

用汇编写算法

既然要写编译器相关的书,那必然要涉及到机器,可是计算机发展一日千里,高德纳也无法控制,这怎么办?

答案是自己“造”一个假想的虚拟机器 : MIX。 

cd79b573a2f849642d41997c22796f28.png

高德纳为MIX设计了汇编指令,为它还写了一个模拟器,这样就可以在上面执行程序了。 

《计算机程序设计艺术》中的实例程序都用MIX的汇编来实现,这对于高德纳这样的大神来说非常简单。 

对普通人来说,尤其是看惯了Python, Java,C等高级语言的同学来说,算法用汇编来写,这不要了命吗?

MIX汇编就像一个怪兽,守护在《计算机程序设计艺术》的大门前:“想进入大门,必须经过我这一关!”

这可能就是很多人买了书但从来不读的重要原因!

06

计算机程序设计艺术

1968年,30岁的高纳德出版了《计算机程序设计艺术》第一卷,立刻成为经典,引起了学术界和工业界的注意,产生了巨大的影响。

完美主义者高纳德说:“ 找出一个错误,我给你2.56美元,现在书刚出版,找Bug还比较容易,也许你能快速收回买书的成本。”

真的有人找到了错误,并且收到了高纳德的支票,不过,没人舍得去兑换,通常都是装裱起来,留作纪念。

d23444d3433524430529aeb8b3fc4605.png

1995年,Bill Gate在采访中建议,任何认为自己是优秀程序员的人都应该读一下第一卷。 

他说:  “我当时花了好几个月读这本书,真是需要很强的自律才行,如果你读完了,请给我邮寄一份简历。”

a4317c396ba6efcf945f86cb1d0257da.png

1968年,30岁的高纳德成为斯坦福大学的终身教授,接下来,将会他是最富有成效的5年。

1969年,《计算机程序设计艺术》第二卷出版, 1973年第三卷出版。 

1974年美国计算机学会就“迫不及待”的把计算机界的最高奖——图灵奖——授予高纳德,表彰他对算法分析和编程语言设计的重大贡献。 

这一年高纳德仅仅36岁 !只靠一套还没有完成的书就获得ACM图灵奖,不但是前无古人,估计也后无来者了。

d94aef9112a921343c6326ece04152e5.png

为什么这本书这么牛呢? 

因为高纳德首次把算法复杂度做了量化衡量,提出了决定算法快慢的决定性因素,奠定了计算机算法的基础,成为全世界计算机领域内的标准。

这套书售价高达几百美元,但是却在全世界卖了超过百万套。

它是计算机编程界当之无愧的圣经。 

1999年,《美国科学家》杂志曾将《计算机程序设计艺术》与爱因斯坦的《相对论》、狄拉克的《量子力学》,维纳的《控制论》等书并列为20世纪最重要的12本科学类专著,可见此书的历史地位。

c6a2218bbd9364ef932b4163f97c5ee3.png

07

TEX排版系统

然而令人大跌眼镜的是,拿到图灵奖以后,高纳德居然宣布暂停写作,因为他对于新书的排版非常不满:文字、符号和排列方式实在是难看, 破坏了书的美感!

完美主义者高纳德决定暂停写作,切换身份,成为一名程序员,开发一个强大的计算机排版系统。

没想到这一停就是将近九年。

最终的成果是开源排版软件TEX(可能是最早的开源项目了)和 一种字体MetaFont。 

e3ddb6b21a47054fb236b9f524c88c15.png

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年,高德纳提前斯坦福退休,住到了学校周边的一个山上,开始过一种隐士生活。 

他觉得电子邮件噪声太多(垃圾邮件受害者?),不再使用了,由秘书代收,每年会花费几周时间阅读订阅的期刊。

他限制了自己的公开活动,每个月他会从山上下来,在斯坦福大学做一场“计算机思考”的讲座。

这一切的目的,都是为了用余生去完成《计算机程序设计艺术》。

8c370dda5e344611895e75c9c21aed63.png

不过相比前3卷,后面的进展确实太慢了,第4卷的第一部4A出版的时候,已经过去将近40年了。 

后面还计划有4B ,4C,4D,  还有第5、6、7卷。

今天高德纳已经83岁了,真担心他写不完......

(完)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多