内容简介 · · · · · ·
世界顶尖的程序员是怎么走上编程道路的?
他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训?
他们对计算机软件行业的过去、现在和未来有什么独到的看法和见解?
他们对培养、发现、选拔、面试优秀的程序员有什么建议?
放下手头的工作,听听这些软件先驱们的故事和建议,眼界可以更开阔,思路可以更清晰,方向可以更明确,人生可以更精彩。
作者Peter Seibel采访了下面这15位世界级编程大师,本书是他在近80个小时的访谈录音基础上整理汇编而成的。
Jamie Zawinski:Lisp程序员,XEmacs开发者,Netscape浏览器和Mozilla核心开发者。
Brad Fitzpatrick:书中唯一的80后,LiveJournal和memcached开发者。现效力于Google。
Douglas Crockford:JavaScript权威,JSON之父。现任Yahoo架构师。
Brendan Eich:JavaScript之父。Mozilla公司CTO。
Joshua Bloch:如果说Gosling是Java之父,那Bloch就是使Java真正成熟的教父,Java 2到5的核心架构师。现为Google首席Java架构师。
Joe Armstrong:Erlang和OTP(开放电信平台)框架之父。
Simon Peyton Jones:Haskell先驱。ACM会士。现为微软剑桥研究院研究员。
Peter Norvig:Google研发总监。ACM会士。
Guy Steele:精通多门语言,Common Lisp和Scheme开发者之一,Java语言规范作者之一,Common Lisp、Fortran、C、ECMAScript和Scheme等语言标准化委员会成员。高性能科学计算的语言Fortress设计者。ACM会士, 美国工程院院士。Sun公司院士。
Dan Ingalls:与Alan Kay合作开发了Smalltalk,是该语言的真正实现者。现为Sun公司杰出工程师。
L. Peter Deutsch:JIT(即时)编译技术发明者之一,PostScript文件浏览器GhostScript的作者。ACM会士。Sun公司院士。
Ken Thompson:图灵奖得主。Unix之父。UTF-8 Unicode编码设计者。
Fran Allen:图灵奖第一位女得主。编译技术公认权威。IEEE院士,ACM会士,美国工程院院士。IBM院士。
Bernie Cosell:Internet奠基人,ARPANET最早的路由计算机IMP设计者之一。
Donald Knuth:多卷本经典巨著《计算机程序设计艺术》的作者,排版软件TeX的作者,图灵奖得主。
他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训?
他们对计算机软件行业的过去、现在和未来有什么独到的看法和见解?
他们对培养、发现、选拔、面试优秀的程序员有什么建议?
放下手头的工作,听听这些软件先驱们的故事和建议,眼界可以更开阔,思路可以更清晰,方向可以更明确,人生可以更精彩。
作者Peter Seibel采访了下面这15位世界级编程大师,本书是他在近80个小时的访谈录音基础上整理汇编而成的。
Jamie Zawinski:Lisp程序员,XEmacs开发者,Netscape浏览器和Mozilla核心开发者。
Brad Fitzpatrick:书中唯一的80后,LiveJournal和memcached开发者。现效力于Google。
Douglas Crockford:JavaScript权威,JSON之父。现任Yahoo架构师。
Brendan Eich:JavaScript之父。Mozilla公司CTO。
Joshua Bloch:如果说Gosling是Java之父,那Bloch就是使Java真正成熟的教父,Java 2到5的核心架构师。现为Google首席Java架构师。
Joe Armstrong:Erlang和OTP(开放电信平台)框架之父。
Simon Peyton Jones:Haskell先驱。ACM会士。现为微软剑桥研究院研究员。
Peter Norvig:Google研发总监。ACM会士。
Guy Steele:精通多门语言,Common Lisp和Scheme开发者之一,Java语言规范作者之一,Common Lisp、Fortran、C、ECMAScript和Scheme等语言标准化委员会成员。高性能科学计算的语言Fortress设计者。ACM会士, 美国工程院院士。Sun公司院士。
Dan Ingalls:与Alan Kay合作开发了Smalltalk,是该语言的真正实现者。现为Sun公司杰出工程师。
L. Peter Deutsch:JIT(即时)编译技术发明者之一,PostScript文件浏览器GhostScript的作者。ACM会士。Sun公司院士。
Ken Thompson:图灵奖得主。Unix之父。UTF-8 Unicode编码设计者。
Fran Allen:图灵奖第一位女得主。编译技术公认权威。IEEE院士,ACM会士,美国工程院院士。IBM院士。
Bernie Cosell:Internet奠基人,ARPANET最早的路由计算机IMP设计者之一。
Donald Knuth:多卷本经典巨著《计算机程序设计艺术》的作者,排版软件TeX的作者,图灵奖得主。
作者简介 · · · · · ·
Peter Seibel Common Lisp专家,Jolt生产效率大奖图书Practical Common Lisp的作者。耶鲁大学英语专业毕业,后投身于互联网行业,曾负责Mother Jones Magazine和Organic Online的Perl专栏以及WebLogic的Java专栏,并曾在加州大学伯克利分校成人教育学院教授Java编程。2003年辞职专心研究 Lisp编程,之后即有了那部Jolt大奖图书。现在他是Gigamonkeys Consulting公司的首席执行官,和家人幸福地生活在加州伯克利。
目录 · · · · · ·
第1篇 Jamie Zawinski 1第2篇 Brad Fitzpatrick 37
第3篇 Douglas Crockford 69
第4篇 Brendan Eich 101
第5篇 Joshua Bloch 129
第6篇 Joe Armstrong 157
第7篇 Simon Peyton Jones 185
第8篇 Peter Norvig 221
第9篇 Guy Steele 253
第10篇 Dan Ingalls 289
第11篇 L Peter Deutsch 321
第12篇 Ken Thompson 347
第13篇 Fran Allen 375
第14篇 Bernie Cosell 401
第15篇 Donald Knuth 435
在豆瓣上看到这本书,还有些非常精彩的评论。。。。
下面贴一部分:
我要站出来批评一下那个名为“去他的算法内功基础,对于程序员,实用主义才是王道” 的评论(我的评论对事不对人)。
首先我要说,这个观点绝对是错误的。表面上这句话好像抓住了“实用主义”的大旗,但却借此抨击算法等基本功的重要性,太误人子弟。就拿 Google Fellow Jeff Dean来说,他绝对算得上是实用主义的大师了吧?可是如果你去看看他关于Google整个系统架构演变过程的讲座,你就会发现把Google的那些诸如 MapReduce、GFS之类的看家法宝化繁为简之后都可以还原成最基本的算法、数据结构之类的问题!Google整个架构的发展也是根据需求的变化而 产生的,MapReduce之类的不就是在遇到需要解决大规模并行编程这个问题时产生的实用的解决方案吗?没有扎实的基本功它能被设计出来么?哪一个大师 没有扎实的基本功?哪怕是你说的Jamie Zawinski,如果他算法基本功没有十分纯熟他能被称为大师么?别以为他标榜实用他就没有扎实的基本功了。
我的观点是,想真正成为杰出的程序员,没有扎实的基本功是绝对不可能的,因为你会发现当你需要解决一个没有现成答案的问题时,你的基本功就是 最可信赖的武器。所以,如果你不想只做一个码农,好好学好算法打好基本功是绝对值得的!当然,如果你只像做一个只能靠google搜索答案过活的程序员, 就当我这话没说。
这本书最大的益处就是帮助广大程序员了解大师是怎么成长过来的,学习他们的宝贵经验。我觉得对于程序员来说,大师的成长经历都隐含了一个基本 规律:他们都是编程至少十几二十年以上才最终成为大师的,“十年学会编程”并不是什么天方夜谭,而是确确实实的事情!同理,任何人如果想要成为大师(或者 至少是杰出的程序员),那么他首先要做的就是打好基本功:08年图灵奖得主Barbara Liskov博士在回答“什么素质是研究者必不可少的素质是”她毫不犹豫的说是扎实的基本功最重要。对于学生来说,基本技能和解决问题的能力很重要,非常 重要!这个道理对程序员来说是一样的!
成功的方式有很多种,事实上很多商业上的成功案例中技术仅仅是其中最不重要的一环,在中国这个讲究关系的环境中更是如此。我认同市场>管理>技术。我建议大家根据自己的特点来选择合适的职业发展路线。
随着中国IT行业的发展,科技创新将会变得越来越重要,而超级程序员也会越来越成为香饽饽,如果各位同学确实热爱编程,愿意一辈子编程,我希 望你坚持下去,因为只要你成为超级程序员肯定会有赏识你的公司。现在的盛大创新院好像做的不错,他们给高级研究员年薪能有30W+,可以算是一个招聘高端 人才的例子。而一个反例就是不依靠科技创新的公司(例如团购网站),它们确实是不怎么需要高端人才的,这样的公司不是靠技术取胜。
首先我要说,这个观点绝对是错误的。表面上这句话好像抓住了“实用主义”的大旗,但却借此抨击算法等基本功的重要性,太误人子弟。就拿 Google Fellow Jeff Dean来说,他绝对算得上是实用主义的大师了吧?可是如果你去看看他关于Google整个系统架构演变过程的讲座,你就会发现把Google的那些诸如 MapReduce、GFS之类的看家法宝化繁为简之后都可以还原成最基本的算法、数据结构之类的问题!Google整个架构的发展也是根据需求的变化而 产生的,MapReduce之类的不就是在遇到需要解决大规模并行编程这个问题时产生的实用的解决方案吗?没有扎实的基本功它能被设计出来么?哪一个大师 没有扎实的基本功?哪怕是你说的Jamie Zawinski,如果他算法基本功没有十分纯熟他能被称为大师么?别以为他标榜实用他就没有扎实的基本功了。
我的观点是,想真正成为杰出的程序员,没有扎实的基本功是绝对不可能的,因为你会发现当你需要解决一个没有现成答案的问题时,你的基本功就是 最可信赖的武器。所以,如果你不想只做一个码农,好好学好算法打好基本功是绝对值得的!当然,如果你只像做一个只能靠google搜索答案过活的程序员, 就当我这话没说。
这本书最大的益处就是帮助广大程序员了解大师是怎么成长过来的,学习他们的宝贵经验。我觉得对于程序员来说,大师的成长经历都隐含了一个基本 规律:他们都是编程至少十几二十年以上才最终成为大师的,“十年学会编程”并不是什么天方夜谭,而是确确实实的事情!同理,任何人如果想要成为大师(或者 至少是杰出的程序员),那么他首先要做的就是打好基本功:08年图灵奖得主Barbara Liskov博士在回答“什么素质是研究者必不可少的素质是”她毫不犹豫的说是扎实的基本功最重要。对于学生来说,基本技能和解决问题的能力很重要,非常 重要!这个道理对程序员来说是一样的!
成功的方式有很多种,事实上很多商业上的成功案例中技术仅仅是其中最不重要的一环,在中国这个讲究关系的环境中更是如此。我认同市场>管理>技术。我建议大家根据自己的特点来选择合适的职业发展路线。
随着中国IT行业的发展,科技创新将会变得越来越重要,而超级程序员也会越来越成为香饽饽,如果各位同学确实热爱编程,愿意一辈子编程,我希 望你坚持下去,因为只要你成为超级程序员肯定会有赏识你的公司。现在的盛大创新院好像做的不错,他们给高级研究员年薪能有30W+,可以算是一个招聘高端 人才的例子。而一个反例就是不依靠科技创新的公司(例如团购网站),它们确实是不怎么需要高端人才的,这样的公司不是靠技术取胜。