编程大师访谈录图书
人气:45

编程大师访谈录

本书是对19 位计算机行业先驱的采访实录,采访对象包括查尔斯·西蒙尼、比尔·盖茨、安迪·赫兹菲尔德、雷·奥奇、杰夫·拉斯金等。
  • 所属分类:图书 >计算机/网络>项目管理 IT人文  
  • 作者:[美] [Susan] [Lammers] 著,[李琳骁],张菁,[吴咏炜]译
  • 产品参数:
  • 丛书名:--
  • 国际刊号:9787115264312
  • 出版社:人民邮电出版社
  • 出版时间:2012-01
  • 印刷时间:2012-01-01
  • 版次:1
  • 开本:16开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装
  • 套装:

内容简介

本书是对19 位计算机行业先驱的采访实录,采访对象包括查尔斯·西蒙尼、比尔·盖茨、安迪·赫兹菲尔德、雷·奥奇、杰夫·拉斯金等。访谈涉及他们软件创造过程的灵感、技术、编程习惯、动机、反思,以及对未来软件的畅想等。问答中集结了这些计算机先驱的精辟言论,处处闪烁着智慧的火花。

本书适合IT 从业人员阅读。

作者简介

Susan Lammers

现居华盛顿州西雅图市,是手机应用开发公司Flying Sofa的合伙人,也是风险投资资助的创业公司Headbone Interactive的董事长及创始人,这家公司专为互联网、电视及其他面向儿童的媒体开发交互式多媒体软件。Susan是多媒体领域的先锋,曾是微软公司早期的多媒体出版部联合出版人和总监,负责微软最早的交互式媒体项目,包括微软的电子百科全书Encarta(英卡塔)。

1990年,Lammers离开微软,加入一家创业公司,成为该公司的第三位员工。这家公司现名Corbis,已跻身世界的数字图像公司之列。Corbis由比尔?盖茨创立,旨在开发自然语言图像的大型数据库并进行交互式电视程序设计。

Lammers毕业于斯坦福大学,拥有英语文学士学位。

目录

第1 篇 查尔斯·西蒙尼

第2 篇 巴特勒·兰普森

第3 篇 约翰·沃诺克

第4 篇 加里·基尔代尔

第5 篇 比尔·盖茨

第6 篇 约翰·佩奇

第7 篇 C.韦恩·莱特莱夫

第8 篇 丹·布兰克林

第9 篇 鲍勃·弗兰克斯顿

第10 篇 乔纳森·萨奇

第11 篇 雷·奥奇

第12 篇 彼得·罗伊森

第13 篇 鲍勃·卡尔

第14 篇 杰夫·拉斯金

第15 篇 安迪·赫兹菲尔德

第16 篇 岩谷徹

第17 篇 斯科特·金

第18 篇 加隆·兰尼尔

第19 篇 迈克尔·霍利

词汇表

附 录

在线预览

中文版序

要描述技术领域革命性的巨变,20世纪可谓是美国人的世纪。20世纪的25年,也是本书最早出版的年代,我们看到了一场惊人的革命。个人电脑(PC)把大型机的威力和连通能力送到了每一个人的手中。新型的软件——及时个电子表格软件、及时套PC和Mac操作系统、及时个字处理程序——推动着这场革命。创作这些软件程序的许多人都出现在本书中,他们进一步创立了大型的技术公司。由PC掀起的这场革命,如今继续在更小却更全能的移动电话和平板电脑上上演,这些设备如今遍布全球各个角落。

那么,是谁在驱动本世纪的这场技术革命呢?谈到对未来技术发展的影响,21世纪也可以叫做中国人的世纪。如今,在技术方面取得巨大进展和革新的聪明的软件工程师,不仅来自美国,而且同样可能来自中国。本书汇编了一系列经典的访谈笔录,其中采访了软件创新产业里的一代天骄,几十年来照亮了全世界程序员们前行的道路。通过这次新推出的中文版,我们希望将创新、灵感和智慧的种子,播撒到今日中国众多朝气蓬勃的编程学子心中。

为什么说这些旧日的访谈到了今天还意义重大呢?我对PC革命先驱的访谈,就是要把你直接带入这些杰出的年轻程序员富有想象力和创造力的大脑中,看看他们是如何思考并迸发出新思想,然后怎样逐步完善,再投入到艰苦卓绝的编程工作中,最终得出大众需要使用的工具。多年以来创新过程的根本并没有什么变化,因此,这些访谈内容在今天看来依然很有价值,发人深省。这些访谈还揭示了伟大的人物是怎么开始创新并改变世界的,通常从一无所有开始,仅凭一支铅笔、一个记事本以及坚定的信念,就此开创出丰功伟业。以我们今日的学识,去看看上世纪80年代的访谈内容,读一下每个程序员的代码和注解,读者定能够充分了解这些PC革命的领袖们如何以星星之火激起燎原之势,在软件业树立起自己的游戏规则。今日的软件行业里,也不断重复着往日的故事。

这些访谈展现了一些业界巨擘的远见卓识、创业激情和编程实践,有比尔?盖茨、迈克尔?霍利、岩谷徹、加隆?兰尼尔、雷?奥兹,以及其他许多仍然在积极影响软件行业发展的人。虽然说现在看这本书,它只是反映了这些程序员曾经经历过的一个历史时期(甚至有些程序、想法和关注的问题如今已经不再需要考虑),但是访谈内容的精髓依然能够激起全世界追求创新、追求的程序员们的共鸣。我现在还会收到一些读者的来信,倾诉他们怎样在字里行间看到了一脉相承的编程精神、企业创新精神,那些对于经典编程方法的生动探讨,至今仍然深刻地影响着他们的生活。

谷歌研究中心主任彼得?诺维格最近提到这本书时说:

"我不得不说,这实在是一本好书,一本在计算机领域的好书,这样的书越多越好。有关数学家的小传很常见,有关计算机科学家的传记也不少,但描写编程大师的书却寥寥无几。你如果想了解一名程序员的工作,好的方法就是去读读他们写的程序。如果没有机会读(或者读过以后),就来读读本书这样的访谈录吧……成为一名程序大师可能要花上十年时间,但细细阅读本书,会帮助你更快地迫近自己的目标,至少会让你对身边的程序员们有一个更清晰的了解。"

我希望本书在中国的出版,能够深入下一代有远大志向的程序员的心扉,推进他们的思想和技术生涯向前迈进,为我们的世界带来更积极的改变。也许将来有那么24小时,我有机会和来自中国的新一代程序员坐在一起,进行一段精彩的对话,聊聊他们是怎么创造性地工作的,于是我们可以再出些书,记录下各个年代伟大程序员的聪明才智。

感谢图灵公司这些的人士,是他们发现了本书对于读者的价值,并着手让译本得以面世。他们为本书的殷勤付出与不懈努力让我深感荣幸且大为折服。我期待着Programmers At Work在中国的印行,内心激动不已。

Susan Lammers

1

查尔斯?

西蒙尼

1948年9月10日,查尔斯?西蒙尼(Charles Simonyi)出生于匈牙利布达佩斯。上高中时,他开始接触计算机和编程,父亲安排他给一名从事计算机工作的工程师当助手,当时计算机在匈牙利屈指可数。

1966年,查尔斯高中毕业,同时也完成了他的及时个编译器。凭借开发编译器时积累的经验,他在丹麦哥本哈根的A/S Regnecentralen 公司谋得了一个职位。1968年,他离开丹麦进入美国加州大学伯克利分校学习,并于1972年获得理学学士学位,1977年获得斯坦福大学博士学位。

西蒙尼曾先后在加州大学伯克利分校计算机中心、伯克利计算机公司、ILLIAC 4项目和施乐PARC工作。自1981年以来,他一直供职于微软公司。在施乐公司,他开发了Alto个人电脑的Bravo和Bravo X程序。在微软,他组建了应用软件小组,并领导开发出Multiplan、Microsoft Word、Microsoft Excel等广受欢迎的应用软件。

在微型计算机世界的几乎各个领域,查尔斯?西蒙尼都打上了他的烙印,要么通过他自己的作品,要么通过影响和他共事的那些人。他谦逊而活泼,脸上常挂着微笑,几乎能够就任何话题发表评论,不论是否与计算机相关。

我们跟查尔斯见过两次面,一次是在午餐时间,一次是在他的办公室,谈话内容无所不及,从Microsoft Excel的特性,到驾驶直升机,乃至现代诗歌的某些话题。他说话时带有很重的匈牙利口音,这已经成了查尔斯讲话和编程的独特标志。他每天几乎都穿同一身行头,褪色的牛仔夹克、衬衫和破旧的牛仔裤,看上去仍是一副20世纪60年代伯克利大学学生的模样,不过他的学识、举止和成就无不显示出他的过人智慧和丰富经验。

采访者:你在匈牙利高中毕业之前就写了自己的及时个计算机程序,是吗?

西蒙尼:是的。上高中时,我写了自己的及时个程序,还有及时个专业程序。我写的及时个程序是填充幻方,让每行、每列的数之和均相等。我编程用的是一台古老的电子管计算机。一整个下午不停地推按钮才把程序输进那台机器。当天晚上,我头痛难耐,带着几大卷打印有8080幻方的纸回到家里。那是1964年。

采访者:说说你用过的及时台计算机?

西蒙尼:那是一台俄制计算机,Ural II。它只有4K内存,支持40位浮点和20位操作指令。这台计算机只能用八进制机器码编程(没有汇编器)。我写了几千行八进制机器码。

这台计算机的操作全部通过控制台完成,你需要自己动手,跟它进行一对一的交互。程序员不必站在一旁等待另一位计算机操作员执行一批卡片。从这个角度看,Ural II酷似个人计算机,因为除了机器和你,不用其他人介入。就4K的内存和缓慢的速度而言,它跟1974年推出的Altair非常相似。1964年Ural II带给我的兴奋就和1974年Altair带给比尔?盖茨的兴奋一样。

显然,Ural II在某些方面有别于个人计算机。Ural II体积庞大,要占用一间很大的房间,输入和输出的方法极为原始——主要是通过控制台开关。控制台看起来像一台老式收银机,上面有整整六列开关,右侧有一个输入键。每一列有8个键,编号从0到7。输入数字的方式同操作收银机差不多。因此,要输入2275,你需要依次拨动2、2、7、5这几个键。不小心按错的话,只要还没有按下右侧的输入键,都还可以修正。这种操作非常提神,因为它会伴有大量噪音。每次按动开关都会发出响亮的喀哒声,每当清掉按键时——这全靠机械完成——所有按键一下子同时释放,伴着巨大的 声。

采访者:你的及时个专业程序是什么样的?

西蒙尼:我的及时个专业程序是为一种非常简单、类似FORTRAN的高级语言写的编译器。我把它作为一项创新成果卖给了政府部门,并得到一大笔钱,不过我一分也没花,因为不久之后我就离开了匈牙利。

机遇出现在布达佩斯的一次交易会上,我见到几位从事计算机工作的丹麦人。我跟他们接洽,了解到他们新机器相关的大量信息。在随后一次交易会上,我带上自己事先准备好的一个小演示程序,它能反馈任意时刻机器正在分析长表达式的哪一部分。我拜托其中一人把这个程序带回丹麦,拿给他们的主管看。他们肯定很喜欢这个程序,因为他们给了我一份工作。我就这样离开了匈牙利。

我在丹麦干了一年半的编程,攒够了钱去加州大学伯克利分校求学。在校期间,我进入伯克利计算机中心当程序员,挣的钱刚好也够付学费的了。

在伯克利上学时,我写了一个很不错的SNOBOL编译器。有个计算机科学教授,叫巴特勒?兰普森,非常喜欢这个编译器,他还让计算机科学专业的学生在课堂上使用它。后来,他跟另外几个教授一起创办了伯克利计算机公司,我便在那家公司谋得一份工作。伯克利计算机公司倒闭后,核心成员都去了施乐PARC。

采访者:你的编程风格主要受谁的影响?

西蒙尼:影响主要来自两方面——一位匈牙利工程师,一台我在丹麦工作时用的计算机。我在匈牙利的导师是一位使用Ural II计算机工作的工程师。我像个狂热的追星族,卑躬屈膝外加免费跑腿,以换取别人容许我待在一个我本不该待的地方。这不是孩子待的地方。它是全匈牙利(也许)仅有的五台计算机中的一台,被看作重要资产。

采访者:你是怎么个卑躬屈膝法?

西蒙尼:我父亲是电子工程学教授,这个工程师是他的学生。我猜是我父亲托他帮忙让我进去的。我也尽量让自己能派上用场。我先是给他带午饭,后来帮他拿东西递家伙,我主动提出帮他们守夜,看管机器。

他们一到晚上就把计算机关掉,到第二天早上再打开。开关真空管时,电热丝加热或冷却很容易损坏。这台机器有2000个真空管,每次打开时都会坏掉一个。因此,他们上班后的及时件事就是先花一个小时找出那个坏掉的真空管。我在那里守夜的话,计算机就可以一直开着,他们也不用浪费那一个小时。于是,在晚上看管机器的时候,我也就可以用这台计算机了。

总之,我和这位工程师成了好朋友。他是个数学天才。我早年学到的许多技巧都是他教的,有的是关于算术思考,有的是关于符号问题。

另外,那台丹麦计算机对我影响也很大。当时,它拥有的也许是世界上好的Algol编译器,Gier Algol。去丹麦之前,我已经把这个编译器的全部代码清单研究了个遍。它全都是用机器语言写成的,因此我既学了机器语言编程,又学会了从美学层面上思考编译过程。这个编译器的设计者是彼得?诺尔(Peter Naur) 。语法等式巴科斯?诺尔范式(BNF)中的字母N就取自他的名字。我对这个程序知根知底,至今仍记忆犹新。

举个例子,我在伯克利上学时写的SNOBOL编译器只是这个程序的变体。我觉得Gier Algol程序现在仍在我脑海中,也影响着我的编程风格。我总是问自己:"如果这是Algol编译器的一部分,他们会怎么做呢?"这个程序真是精妙无比。

有一点我印象很深,就是他们倒着扫描源代码文本的做法。在某些情况下,如果你倒着做事情,之前显得很复杂的问题突然之间会变得非常简单。例如,解析前向引用(forward reference)可能很难。要是倒着扫描,它们就变成了后向引用(backward reference),很容易解析。只要从新的角度看待程序,原本可能很难解决的问题也会变得容易解决。这个Algol编译器处处是玄机。

采访者:你是怎么进入微软的?

西蒙尼:决定离开施乐之后,我开始四处打探。我请鲍勃?麦特卡尔夫(Bob Metcalfe)共进午餐。鲍勃是以太网发明人,3Com公司的董事长和创始人,早我两年离开施乐。他给了我一张名单,上面列有我应该去找的人。名单上比尔?盖茨排在及时位。谁排在第二我记不清了,因为除了比尔?盖茨我没再找过其他人。

采访者:编程是一种技巧或技能吗?

西蒙尼:什么是编程?人们对此一直各持己见。有人说它是科学,有人说它是艺术,还有人称之为技能或手艺。我认为这三方面兼而有之。我们喜欢说它蕴含大量艺术成分,但是我们都知道它里面更多的是科学。

孩子们在学校里学习数学,高中毕业时,他们会以为数学就是加法和乘法,甚或代数和微积分。其实,算术,即使简单如加法的运算,背后也有令人难以置信的科学理论作支持。

计算机编程背后也有大量科学理论作支持。例如,哥德尔定理的数学证明冗长而复杂,但是如果借用计算机科学的图灵定理,证明起来不费吹灰之力。信息理论和计算机科学其他领域对数学影响巨大,反之亦然。

编程包含有大量科学,同时,它也有点像手艺。实际上,在许多人看来,编程是一项复杂的技能,这跟工具制造很像,需要精雕细琢。我认为,只要将科学、艺术和技能这三者拿捏得恰到好处,你就能取得一些引人瞩目的成绩。

采访者:你觉得编程的哪部分可以视作艺术?是用户界面设计吗?

西蒙尼:在我看来,编程显然有审美的一面,对用户界面而言,不仅设计中存在,甚至连外观也不例外。当你看到那些丑陋的屏幕时,程序员在艺术上的不足便一览无遗。在其他方面,计算机编程也堪称艺术,正如高能物理也可视作艺术一样。

采访者:审美是只关乎用户对程序的感觉,还是它也直接影响到其他程序员分析该程序并探究其编写方式?

西蒙尼:也会影响的,毋庸置疑。我觉得代码清单和计算机自身的美感一直让我陶醉其中。

例如,那台俄制机器看起来像是科幻小说里的计算机,因为机器里的每个触发器(存储1比特信息的开关装置)都有一个小小的、橙色的老式气体放电灯。数以百计的橙色小灯在玻璃门和柜子后面不停闪烁。机器整个生命的脉动仿佛就在眼前。

那台丹麦计算机是件精美的家具。它的大小与旧式的衣橱相当。计算机正面有3扇柚木门。有一次,我看到有个美国来的主管半信半疑地盯着机器,就因为它是用柚木嵌板的。它甚至还有一个丹麦现代风格的桌台。整台机器散发着迷人的柚木味道。

伯克利计算机个头非常大,大约有6米长,1.8米高,0.6米深。它隐藏在漆成黑色的混凝土穹顶里。它放在穹顶里打着聚光灯的样子看上去有点像电影《2001太空漫游》里的黑色独石。

采访者:当你分析某个程序时,你认为什么样的代码清单或算法结构在审美上是优美或悦人的?

西蒙尼:我觉得代码清单带给人的愉快同整洁的家差不多。你一眼就能分辨出家里是杂乱无章(比如垃圾和没洗的碟子到处乱扔)还是整洁如新。这也许意义不大。因为光是房子整洁说明不了什么,它仍可能藏污纳垢!但是及时印象很重要,它至少反映了程序的某些方面。我敢打赌,我在3米开外就能看出程序拙劣与否。我也许没法保障它很不错,但如果从3米外看起来就很糟,我敢保障这程序写得不用心。如果写得不用心,那它在逻辑上也许就不会优美。

不过假定它看上去不错,然后你打算继续深入。理解程序的结构要困难得多。在结构因何优美的问题上也是见仁见智。纯粹主义者认为,只有那些按照极其严格的数学方式来使用某些很简单的构造的结构化编程,才是优美的。就20世纪60年代之前的情况而言,这种反应非常合乎情理,因为当时程序员并不知道结构化的概念。

不过在我看来,即使程序不遵循这些概念,只要它们有其他可取之处,也可以算是优美的。这就像拿现代诗歌和古典诗歌比较。我觉得古典诗歌很棒,你可以欣赏它。但是你不能只欣赏古典诗歌而无视其他。另外,这也并不意味着,只要在纸上胡乱写上一些字,称之为诗歌,就有了美。但是,如果代码有一些可取之处,我不认为非得是数学意义上的结构化才称得上优美。

采访者:别人读几段你的源代码,有没有可能断定"这代码是查尔斯?西蒙尼写的"?

西蒙尼:噢,是的,毫无疑问。是不是我本人写的可能很难分辨,但有一点是确定无疑的:只要看了代码,你就能知道它是不是我的团队写的,或者是不是受我的影响写的。这是因为我从1972年起写的代码都遵循特定的命名规范,许多人称之为"匈牙利命名法"。你一眼就能分辨出哪些代码是受我的影响写出来的,包括Microsoft Word、Multiplan和Bravo,以及其他许多遵循这些规范写成的程序。

采访者:你提到的"匈牙利命名法"是指什么?

西蒙尼:称它为"匈牙利命名法"是个玩笑。你知道,如果有人说"这对我来说就是希腊文",这表示他们看不懂,因此也可能它就真是用希腊语写的。这里的"匈牙利"是句反话,因为这些命名规范其实是要让代码更易读。这个玩笑说的是程序看起来这么难读,说不定真是用匈牙利语写的。其实这套规范能够很好地控制程序中所有变量的命名。

要是分解一个程序,把它放进磨床,然后对碎片进行分类,你就会发现程序的大部分都是名字。写下"apples + oranges",你会发现名字"apples"有6个字符,运算符"+"只有1个字符,名字"oranges"有7个字符,一共14个字符,只有一个字符即加号与运算有关。因此,对我来说,要起到作用或有所改进,合乎逻辑的做法就是尽力完善程序的主要部分,也就是名字。"匈牙利命名法"是一种根据变量的属性自动为其创建名字的命名方法。这跟人们把当裁缝(tailor)的叫做泰勒(Taylor)以及把当铁匠(blacksmith)的叫做史密斯(Smith)非常相似。

因此,面对一个具备某些属性的结构,不要随随便便地取个名字,然后让所有人去琢磨名字和属性之间有什么关联,你应该把属性本身用作结构的名字。这种方法有很多优点。首先,造个名字很容易,想到那些属性时,把它们写下来,名字自然就有了。第二,它很容易理解,因为当你读到某个变量时,从名字本身就能了解到与属性有关的大量信息。这些属性会越来越多,因此很难简明地描述它们。为此"匈牙利命名法"引入了一种缩写符号,以很小的空间就能展现具体属性。当然,这在不知情的人看来是一团乱麻,那个玩笑就是这么来的。

有些人认为,如果他们可以读出代码里的每个字,那么程序就是可读的。实际上,这种意义上的可读性并不可取。没有人会拿着代码清单,站到演讲台上大声朗读程序。关键在于理解。只是能阅读单词并发出音来,这毫无用处。当人们看到采用"匈牙利命名法"的代码清单时,他们发现这些词很难念,可能就会认为代码不是可读的。但实际上,由于名字和属性之间存在关联,它更容易理解,也更便于沟通。那些使用匈牙利命名法编程的人,即使在离开我的部门之后,仍会继续使用它。这种命名法已经打入苹果电脑、3Com及其他许多公司。

采访者:下面说说你创建程序的整个过程。是否存在适用于所有程序的过程?

西蒙尼:当然。严格来说,对编程而言,我认为我们应该知道自己想要做什么。如果不知道,那么有一个过程确实是解决各种问题的必经之路,那就是要弄清楚:我试图做什么?目标是什么?

打个比方,我想开发一个菜单驱动的文本编辑器,要求响应速度快,并且提供拼写检查器等。在开始真正编程之前,我需要先弄清楚最终产品。有时候,目标的选择取决于我都掌握了哪些技巧。以Bravo为例,这个程序是以算法为导引的。巴特勒?兰普森描述了两个很有意思的算法,于是我们试图围绕这些算法来编写这个编辑器,以充分利用这些算法。此外,J. 斯特罗彻?摩尔(J. Strother Moore),就是Boyer-Moore字符串查找算法的Moore,在文档编辑方面有几个很有意思的算法。于是我们决定:"嘿,这个编辑器要包含摩尔编辑算法、兰普森的屏幕更新算法还有两个缓存。"等到对目标有充分的把握之后,我才会开始真正的编程。我调整姿态,关上房门,并且大声宣布:"现在我要开始编程了。"

采访者:当你调整好状态真正开始编程时,及时步会做什么?

西蒙尼:编程的及时步是想象。就是要在脑海中对来龙去脉有极为清晰的把握。在这个初始阶段,我会使用纸和铅笔。我只是信手涂鸦,并不写代码。我也许会画些方框或箭头,但基本上只是涂鸦,因为真正的想法在我脑海里。我喜欢想象那些有待维护的结构,那些结构代表着我想编码的真实世界。

一旦这个结构考虑得相当严谨和明确,我便开始写代码。我会坐到终端前,或者换在以前的话,就会拿张白纸,开始写代码。这相当容易。我只要把头脑中的想法变换成代码写下来,我知道结果应该是什么样的。大部分代码会水到渠成,不过我维护的那些数据结构才是关键。我会先想好数据结构,并在整个编码过程中将它们牢记于心。

采访者:这是最重要的一步吗?

西蒙尼:当然,这是最重要的一步:算法的知识当属科学,结构的想象则是艺术。这些算法的细节,以及编写高效代码实现这些结构的转换,是编程像手艺活的一面。从技术上讲,这就是所谓维护结构的不变性。编写代码以维护不变性是相对简单的技艺,不过这需要非常用心并辅之以大量训练才能练就。

采访者:你对编程感到过厌倦吗?

西蒙尼:是的。

采访者:编写程序的过程是痛苦的还是快乐的?

西蒙尼:两者兼而有之。假装每时每刻都很快乐是做作。就像运动员所说的:"要是没受伤的话,肯定是你还不够努力。"二十年后,我已经体会不到刚开始编程一两年时的那种新鲜感。当然,有时我仍会有这种感觉,只不过不像以往那样常有,这是没办法的事。

采访者:你每天都有固定安排吗?你每天都编程吗,或者你会先把问题放一放,然后集中一周时间搞定它?

西蒙尼:我不是每天都有机会编程。我不用特意把问题放一放,因为总会有人打断我。我一般晚上编程,白天总是被打断。

采访者:晚上你会到办公室还是在家工作?

西蒙尼:我就在办公室工作。我住得很近,非常方便。来办公室就像进自己家另一个房间。我不会窝在家里编程的,来办公室也就是两分钟的事儿。

采访者:你如何管理手下的程序员?你觉得现在自己做管理多过编程吗?

西蒙尼:我两样都做,目前还是编程多一些。开发Bravo时,对程序员的管理非常非常直接。有一次,我其实写了一份极为详尽的工作指令,也就是所谓的元程序。这差不多就是个程序,只不过是用非常非常高级的语言写的。我们从斯坦福大学找了两个机灵鬼作为"试验对象"。他们写的程序符合我的要求,这样我们实现了双赢:首先,对我来说,用这种非常高级的语言工作更容易,本质上是在对这些人进行编程;其次,他们真正弄清楚了这个程序,效果远远好过我直接交给他们写好的代码清单,并叮嘱他们仔细研读这个程序。他们掌握了这个程序,因为这是他们写的。瞧,每个人都可以宣称自己写了这个程序。这个程序是我写的,也是他们写的。真是太棒了!我认为管理的方法是言传身教,经常复审代码。我们一直坚持开展代码复审。

采访者:让多名程序员开发一个程序,开发速度会更快吗?

西蒙尼:不一定。编写同一个程序的人员越多,人均产出的实际代码量越少。结果,总的代码产出一开始会更多,之后实际上可能会减少。以两个人为例,也许单位时间只能多写百分之五十的代码。

顺便提一下,代码的效率还会随着开发同一个程序的人员数量的增加而有所降低。较高效的程序往往是一个人写的。的问题是,它可能需要写上一辈子,而这显然是无法接受的。因此你需要找上三五十个,甚或好几百个人开发一个项目。

采访者:你能预估编写一个程序要用多长时间吗?

西蒙尼:预估编写程序要花的时间难度很大。之所以难度很大,原因多种多样。这并不意味着我们就不用尽全力预估,因为预估时间可能用处很大,就像天气预报不仅有经济效益还有其他好处一样。

真正的好程序会永远存在,写起来永无止境,至少只要硬件存在,程序就会存在,甚至更长久。当然,只要Alto计算机存在24小时,Bravo就

网友评论(不代表本站观点)

来自无昵称**的评论:

挺好

2012-01-17 02:45:09
来自无昵称**的评论:

很喜欢,很快

2012-04-08 15:35:09
来自haijunz**的评论:

都是些牛人啊!

2012-05-09 14:08:45
来自shaobo7**的评论:

从前人的经验中学习

2012-08-13 10:35:33
来自无昵称**的评论:

好书,值得一看。

2013-03-02 16:04:20
来自无昵称**的评论:

讲述了大师们的编程故事。学师们的精神

2013-07-19 20:26:08
来自秦朝小**的评论:

看了看,好看,到货很快,谢谢!

2013-10-08 16:38:02
来自围巾的**的评论:

是计算机学习者必读的书籍,好好读,对工作很有帮助

2013-11-09 14:37:12
来自无昵称**的评论:

这个商品不错~

2013-12-13 21:10:48
来自无昵称**的评论:

这个商品不错~

2014-01-11 16:12:25
来自caopan2**的评论:

大师的人格魅力让人起敬!好文章好书。

2014-02-02 10:01:03
来自iisun**的评论:

看起来还不错,有空慢慢看

2014-04-19 17:34:49
来自无昵称**的评论:

这个商品还可以

2014-07-06 23:14:37
来自无昵称**的评论:

书折了,好几页变形,不是很满意,凑合看。

2015-10-28 12:47:55
来自无昵称**的评论:

2016-02-14 12:01:22
来自xueyufi**的评论:

看到对于此书的推荐,在当当上预订了,拿到手后花了两个晚上看完,觉得不错,值得一看

2012-01-06 11:14:26
来自vanbor**的评论:

如果你有闲情,不妨一读。虽然内容有些旧,权当了解历史

2013-10-28 11:20:06
来自哥哥宝**的评论:

这本书写了对大师的采访,内容马马虎虎,对编程什么的没有什么深度。

2013-09-09 10:48:17
来自无昵称**的评论:

编程大师的奋斗史,了解就好,每个人都有自己的路

2013-04-08 08:47:15
来自心灵诊**的评论:

原版是1989年写的,那个时候 Bill Gate 还没那么成功,看看他当时是怎么思考的也不错

2014-04-19 18:50:36
来自围巾的**的评论:

这么一本书purchase到59元(原价),真是太能瞎掰了。里面的人都算不上计算机大师,像比尔盖茨那样的人怎么可以算作是大师呢?人家书名原本就叫“Programmers at Work”,根本就没有大师这两个字眼,所以我觉得出版商和译者这么搞,很让我感到厌烦和反感。

2012-04-12 16:32:28
来自书雷**的评论:

这本书我只浏览,从客观的角度,没有什么技术知识,启发性很好。书中至少有三个大师促进我的思路提前成熟。这是目前得益最高的一本书,建议架构师必读,比那些死啃架构概念的书好太多。读书要注意跳过很多八卦。估计大部分人不能克服概念和八卦的干扰,未必能得益。这本书仅逊于德鲁克的管理三部曲。

2013-05-21 06:56:51
登录后即可发表评论

免责声明

更多相关图书
在线咨询