原标题:他花了54年编写一套书,直到现在还没写完,却已经被奉为编程圣经
每个行业都有那么几本
被奉为“圣经”的大作。
这类书往往又高深又莫测
不管你读没读懂反正只要读(fan)过一两页了
就能拿出来炫(zhuang)耀(bi)了。
比如这本编程界的圣经、攻城狮们的养成之书
《计算机程序设计艺术》
史称“TAOCP”
☟
比尔·盖茨曾说:
“如果你认为你是一名真正优秀的程序员……读高德纳的《计算机程序设计艺术》,如果你能读懂整套书的话,请给我发一份你的简历。”
这也不能怪人家比尔·盖茨,
毕竟这套书就是这么难懂啊!
按照计算机领域的艺术大师高德纳的计划,
TAOCP一共有7卷,
目前才写到第5卷。
第一卷的书名叫做《基本算法》
讲述编程时要用到的基本数学知识
和不同领域要用到的算法。
可是人们买回家后发现,
基本你个头啊,
这书超难懂的好不!
初学者根本看不懂啊!
对此,
咱们的高德纳大师是如此解释地:
“我知道我的书是不容易读,不过要知道的是,如果不是我精雕细琢地写的话,它们会比现在难读一百倍。”
高德纳大师是很有底气
很有资格说这番话的。
毕竟人家作为现代计算机科学的鼻祖,
完成了编译程序、属性文法
和运算法则等领域的前沿研究,
拿奖拿到手软,
至今还保持着图灵奖年龄最小的获奖者。
而这个被无数计算机学者憧憬的奖项,
他却在家里把奖杯当做盛水果的盆……
高德纳
高德纳1938年出生于
威斯康辛州密歇根湖畔的密尔沃基(Milwaukee)。
8岁的时候就展现出了
碾压凡人的超凡智力+心计
当时有个糖果商以小学生为
参与对象举办了一项益智趣味比赛,
要求用“Ziegler’s Giant Bar”
里的字母写出尽可能多的单词。
孩子们大都只能写出几十个单词。
但高德纳假装胃疼在家宅了两周,
依靠一部大字典列出了4500个单词,
超出裁判掌握的2000个单词一倍多。
作为冠军的他,在赛后如此感言:
我还能写出更多
高中的时候,
高德纳还未对数学发生太大兴趣,
他更喜欢捣鼓音乐与作曲,
还一度认真的考虑过
要不要报考音乐专业神马的。
他几乎没有完整地听过一堂课,
但这些丝毫不影响他以科均97.5分、
那个学校历史最高的分数
考入当时美国最顶尖的研究型大学
凯斯理工学院物理专业
就是在这里,
他发现了比音乐更让他着迷的东西——
计算机
大学一年级高德纳留校打工,
负责把统计数字画成图表。
碰巧他工作室的隔壁就是计算机房,
新到了一台当时最先进的计算机
IBM650
庞大的机体和计算机工作时
快速闪烁变化的指示灯,
让高德纳产生了莫大的兴趣。
他接连好几天彻夜不眠地呆在机房里,
观察它工作,
还兴致勃勃地动手改了说明手册上的程序,
让IBM650比之前更加好用。
一年以后,
他还改学了数学,
终身都与计算机杠上了。
只是改了IBM650的程序还不够。
当时兼职学校篮球队的他突发奇想,
可以用IBM650写一个程序啊!
用来分析评估球员在每场比赛中得分、
助攻、抢断、篮板球、盖帽等一揽子数据,
帮助球队教练挑选球员。
这个在当时看来简直就是黑科技的程序,
使一直战绩平平的凯斯理工学院,
赢得了当年的联赛冠军。
学校的老师们都被
这个复杂的程序吓傻了,
高德纳毕业时,
直接破格授予了他硕士学位。
之后高德纳在伯克利攻读数学博士。
ALGOL60经常因为编译器不成熟出故障,
他为此编写了一个简单的测试程序,
人称“Man or boy test”(男人或男孩测试),
可以译成“是男人就得-67”。
高德纳解释说:
“用ALGOL60来编译这段程序,只要运行结果等于-67,就说明这个编译器没有问题了,是纯爷们儿。”
博士毕业的前一年,
有出版社约高德纳写一本
编译器和程序设计方面的书,
也就是直到现在都还在编写的
《计算机程序设计艺术》.
出版社1962年约稿,
4年过去了高德纳那边毫无动静啊!
编辑急了,忍不住去催,说,
这都4年了,你的书写的咋样了啊?
高德纳说:
我刚写完这本书的概述,才写了3000页,还没进入正题啦!
终于1968年,
《计算机程序设计艺术》第一卷推出了。
1973年,
这部刚出到第三卷的书就已经
被计算机界视为“神作”了,
卖出了100多万套,
译成了多种文字,
还为当时年仅才36岁的高德纳赢得了
国际计算机界的至高荣誉“图灵奖”。
但咱们的高德纳大师才不在乎得不得奖呢!
获奖的当年就宣布要暂停TAOCP的写作,
潜心研究字体和排版。
理由是:
现有的计算机排版软件效果太差太差了,完全破坏了我这套书的美。为了能够让我更赏心悦目地写下去,我要去开发更先进的排版技术,更优美的字体!
这个太任性的决定,
让全世界都在背后窃窃私语,
高德纳会不会是江郎才尽,
才以仅为借口,见好就收。
然而10年后,
高德纳带着两个响亮的成果:
METAFONT字体系统和TEX排版系统
打了世界的脸。
从METAFONT中字体的优美程度来讲,
可以说计算机界最懂字体的两个人,
一个是乔布斯,
另一个就是高德纳
费时10年专研排版美学打造的TEX系统,
至今仍然是全球学术排版的不二之选。
使用过word的大家一定会有类似的感受,
每次要处理复杂的公式时,
特殊字符都得一个个插入,
还得不断的调整字号字距让版式更好看。
TEX排版系统完美的解决了这个问题:
在TeX里加入一个变量badness,
用以衡量一行文字的美感,
变量越小文字就越美。
TEX功能强大、几近无懈可击,
高德纳自己也甚是满意。
连版本号都不走寻常路,
直接采用了圆周率,
最新版本为3.1415926——这等于在宣布
我的产品接近完美,
没有什么地方需要大的改动了……
高德纳还为此设置了悬赏奖金:
谁找出TEX里的一个bug,
就付给其2.56美元,
找出第二个5.12美元,
第三个10.24美元……
依此累加。
传说中的国王就是
玩指数游戏输掉了江山。
算法大师的他,
比谁都清楚指数增长的可怕性,
然而直到今天,
他只寄出过两张支票。
获奖者都没有去银行兑现,
而是将有他签名的支票当作文物珍藏了起来。
凭借这两项支线成果
高德纳获得了美国总统卡特亲自颁发的
美国国家科学奖奖章
再回到开头的那本
程序员的圣经《计算机程序设计艺术》
现在漂亮的排版和优美的字体研发完了,
高德纳如当初的承诺,
重拾笔耕撰写TAOCP。
为了专心写作,
高德纳还从任教的斯坦福提前退休,
并停用了电子邮箱。
2008年,
距离出版第三卷三十多年后,
第四卷终于在千呼万唤中出来了。
此时,高德纳也从意气风发的及冠之年,
步入了满头白发的古稀老人。
高德纳从不认为编程是一门科学,
而是一门艺术。
艺术是人创造的,而科学不是;
艺术是可以无止境提高的,而科学不能;
艺术创造需要天赋,而科学不需要。
今日话题
你觉得编程是一门科学还是艺术?
图灵机器人将在留言区里,随机挑选一位留言用户,赠送小米10000毫安移动电源一个~幸运小伙伴的名单将在2016年8月22日公布~欢迎小伙伴不吝分享~返回搜狐,查看更多
责任编辑: