发信人: OldCastle (天涯共CS·零零永恒)(老車·欧德卡叟), 信区: CPlusPlus
标 题: [转载] 心目中的编程高手-----后学者以自励
发信站: 南京大学小百合站 (Fri Oct 22 13:40:44 2004)
【 以下文字转载自 LinuxUnix 讨论区 】
【 原文由 iamthesea 所发表 】
MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。
我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是
vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他
想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前身。当
然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在Berkley
Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN TCP/IP加
入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封喉,很快就写
出了高性能的伯克利版TCP/IP。当时BBN和DARPA签了巨额合同开发TCP/IP Stack,谁知他
们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿个T-shirt出现在会议
室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你怎么写出来的?而B伯伯
答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯伯硕士毕业 后决定到工业
界发展,于是就到了当时只有一间办公室的Sun, 然后他就把Sparc设计出 来乐。。。象这
种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同事说,一般开会的时候B伯伯总
是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯发言,直切要害,提出 漂亮的构
想,让同事们彻底崩溃。对了,他还是Java Spec和JINI的主要作者之一(补充:2003年9月,
Bill Joy离开Sun,当时Sun公司的股票应声下跌3.2%)。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄聊
天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实战的
多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC上搞个小
动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein, 然后再接再
励,doom, doomII, Quake...每次都把3-D技术推到极
限。J哥哥的简历上说自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说
。做J哥哥这样的人是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡” ,
不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听取 他
的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以上, 也
是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过呢,谁要用
这个例子来为自己学习不好辩护,就大错特错了。那Leonardo Da Vinci还是自学成才呢(
人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们叫“达分奇”是相
当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意思。换句话说,Leonar
do Da Vinci就是“从Vinci来的Leonardo”的意思。叫别人“Da Vinci”就不知所谓乐。
嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发员。
(补充:大学拿的是数学学士,主攻物理,毕业后进入杜邦公司从事材料测试。1971年,
离开杜邦到DEC,第一个任务就是为DEC的PDP-11微处理器开发OS-RSX11M。David结合总体概念
和设计原则,利用汇编预言在非常有限的内存空间内实现了多项系统功能,如:树型文件系统、
交换应用程序、实时调度和一整套开发工具)
当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然后说:
“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷爷到NT3.
5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。:-) 日常交谈F-word不离口
。他面试秘书时必问:"what do you think of the word 'f'?" ,让无数美女刹羽而归。
终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite word"。于
是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,学
数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到Anders Hejlsberg,或者
学Linux不知道Linus Torvalds一样,不可原谅啊。:-)为了让文章完整,就再罗唆几句吧
。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别人
时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高爷
爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞出
了个Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比赛(
有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n美分
奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可谓
字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没有学
究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让老妈极
其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那完全是高
爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我们的写作老
师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带谦和的微笑,
颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他捐
献了好多作品,都可以在网上看到,比如著名的Mathematical Writing,MMIXWare,The
Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche老
大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主要作
者(另一个是大牛人Rob Pike, 前不久被google挖走了)。Ken爷爷也算是计算机历史上开天
辟地的人物了。1969年还是计算机史前时代,普通人都认为只有大型机才能运行通用的操
作系统,小型机只有高山仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷
自然不是池中物,于是他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第
一个版本。他们并不知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又
把Unix用C重写,于是C在随后20年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很快
大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell Lab里的科学家都心比天高
,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX代码,找到后门,修改代码
,然后重新编译了整个UNIX。就在大家都以为“这个世界清净了”的时候,他们发现Ken爷
爷还是轻而易举地拿到他们的帐户权限,百思不解后,只好继续郁闷。谁知道这一郁闷,
就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码里的确有后门,但后门不在Unix代
码里,而在编译Unix代码的C编译器里。每次C编译器编译UNIX的代码,就自动生成后门代
码。而整个Bell Lab的人,都是用Ken爷爷的C编译器。:D
Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统 。
罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开发 Uni
x的猛人,UTF-8的设计人。他还在美国名嘴David Letterman的晚间节目上露了一小脸 ,
一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银 牌
得主。他还是个颇为厉害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞
机上。他还是两本经典,The Unix Programming Environment 和 The Practice of Prog
ramming 的作者之一。如果初学者想在编程方面精益求精,实在该好好读读这两本书。它
们都有中文版的说。罗伯伯还写出了Unix下第一个基于位图的窗口系统,并且是 著名的b
lit 终端的作者。当然了,罗伯伯还是号称锐意革新的操作系统,Plan9,的主要作者。可
惜的是,Plan9并没有引起多少人的注意。罗伯伯一怒之下,写出了 振聋发聩的雄文 Sys
tems Software Research is Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊
病。虽然这篇文章是罗伯伯含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开
发周 期越来越长,代价越来越大,用户被统一到少数几个系统上,结果越来越多的活动是
测量和修补,而真正的革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不遗
余力地把系统开发推向极致的话,也就是google乐。随便看看 google的成果就知道了。具
有超强容错和负载平衡能力的分布式文件系统GFS (现在能够用100,000台廉价PC搭起一个
巨型分布系统,并且高效便宜地进行管理的系统也不多哈),大规模机器学习系统(拼写检
查,广告匹配,拼音搜 寻。。。哪个都很牛的说),更不用说处理海量并行计算的各式go
ogle服务了。Rob在System Software Research is Irrelevant里萧瑟地说现在没有人再关
心系统研究的前沿成果了。想不到他错了,应为google关心。google网络了大批功成总是
试图吸取系 统研究的最新成果。想必Rob Pike在google很幸福。愿他做出更棒的系统。
标 题: [转载] 心目中的编程高手-----后学者以自励
发信站: 南京大学小百合站 (Fri Oct 22 13:40:44 2004)
【 以下文字转载自 LinuxUnix 讨论区 】
【 原文由 iamthesea 所发表 】
MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。
我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是
vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他
想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前身。当
然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在Berkley
Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN TCP/IP加
入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封喉,很快就写
出了高性能的伯克利版TCP/IP。当时BBN和DARPA签了巨额合同开发TCP/IP Stack,谁知他
们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿个T-shirt出现在会议
室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你怎么写出来的?而B伯伯
答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯伯硕士毕业 后决定到工业
界发展,于是就到了当时只有一间办公室的Sun, 然后他就把Sparc设计出 来乐。。。象这
种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同事说,一般开会的时候B伯伯总
是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯发言,直切要害,提出 漂亮的构
想,让同事们彻底崩溃。对了,他还是Java Spec和JINI的主要作者之一(补充:2003年9月,
Bill Joy离开Sun,当时Sun公司的股票应声下跌3.2%)。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄聊
天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实战的
多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC上搞个小
动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein, 然后再接再
励,doom, doomII, Quake...每次都把3-D技术推到极
限。J哥哥的简历上说自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说
。做J哥哥这样的人是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡” ,
不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听取 他
的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以上, 也
是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过呢,谁要用
这个例子来为自己学习不好辩护,就大错特错了。那Leonardo Da Vinci还是自学成才呢(
人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们叫“达分奇”是相
当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意思。换句话说,Leonar
do Da Vinci就是“从Vinci来的Leonardo”的意思。叫别人“Da Vinci”就不知所谓乐。
嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发员。
(补充:大学拿的是数学学士,主攻物理,毕业后进入杜邦公司从事材料测试。1971年,
离开杜邦到DEC,第一个任务就是为DEC的PDP-11微处理器开发OS-RSX11M。David结合总体概念
和设计原则,利用汇编预言在非常有限的内存空间内实现了多项系统功能,如:树型文件系统、
交换应用程序、实时调度和一整套开发工具)
当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然后说:
“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷爷到NT3.
5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。:-) 日常交谈F-word不离口
。他面试秘书时必问:"what do you think of the word 'f'?" ,让无数美女刹羽而归。
终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite word"。于
是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,学
数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到Anders Hejlsberg,或者
学Linux不知道Linus Torvalds一样,不可原谅啊。:-)为了让文章完整,就再罗唆几句吧
。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别人
时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高爷
爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞出
了个Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比赛(
有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n美分
奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可谓
字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没有学
究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让老妈极
其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那完全是高
爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我们的写作老
师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带谦和的微笑,
颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他捐
献了好多作品,都可以在网上看到,比如著名的Mathematical Writing,MMIXWare,The
Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche老
大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主要作
者(另一个是大牛人Rob Pike, 前不久被google挖走了)。Ken爷爷也算是计算机历史上开天
辟地的人物了。1969年还是计算机史前时代,普通人都认为只有大型机才能运行通用的操
作系统,小型机只有高山仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷
自然不是池中物,于是他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第
一个版本。他们并不知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又
把Unix用C重写,于是C在随后20年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很快
大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell Lab里的科学家都心比天高
,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX代码,找到后门,修改代码
,然后重新编译了整个UNIX。就在大家都以为“这个世界清净了”的时候,他们发现Ken爷
爷还是轻而易举地拿到他们的帐户权限,百思不解后,只好继续郁闷。谁知道这一郁闷,
就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码里的确有后门,但后门不在Unix代
码里,而在编译Unix代码的C编译器里。每次C编译器编译UNIX的代码,就自动生成后门代
码。而整个Bell Lab的人,都是用Ken爷爷的C编译器。:D
Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统 。
罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开发 Uni
x的猛人,UTF-8的设计人。他还在美国名嘴David Letterman的晚间节目上露了一小脸 ,
一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银 牌
得主。他还是个颇为厉害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞
机上。他还是两本经典,The Unix Programming Environment 和 The Practice of Prog
ramming 的作者之一。如果初学者想在编程方面精益求精,实在该好好读读这两本书。它
们都有中文版的说。罗伯伯还写出了Unix下第一个基于位图的窗口系统,并且是 著名的b
lit 终端的作者。当然了,罗伯伯还是号称锐意革新的操作系统,Plan9,的主要作者。可
惜的是,Plan9并没有引起多少人的注意。罗伯伯一怒之下,写出了 振聋发聩的雄文 Sys
tems Software Research is Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊
病。虽然这篇文章是罗伯伯含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开
发周 期越来越长,代价越来越大,用户被统一到少数几个系统上,结果越来越多的活动是
测量和修补,而真正的革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不遗
余力地把系统开发推向极致的话,也就是google乐。随便看看 google的成果就知道了。具
有超强容错和负载平衡能力的分布式文件系统GFS (现在能够用100,000台廉价PC搭起一个
巨型分布系统,并且高效便宜地进行管理的系统也不多哈),大规模机器学习系统(拼写检
查,广告匹配,拼音搜 寻。。。哪个都很牛的说),更不用说处理海量并行计算的各式go
ogle服务了。Rob在System Software Research is Irrelevant里萧瑟地说现在没有人再关
心系统研究的前沿成果了。想不到他错了,应为google关心。google网络了大批功成总是
试图吸取系 统研究的最新成果。想必Rob Pike在google很幸福。愿他做出更棒的系统。