Q 6: 你们觉得如何让一些程序员可能有超过其它程序员10倍或100倍的生产力? Steve Yegge 我想你应该考虑一下为什么不是让所有的程序员都一样牛。托马斯爱迪生有一句关于天才的名言也许会给你一些启示。 Linus Torvalds 我真的不知道,我想,一些人之所以更牛是因为他们可以专注于那些重要的事,而更多的只不过是在应付。那些我所知道的真的很牛的程序员从很年轻的时候就在做事了。 David Heinemeier Hansson 把难题变简单的能力。 Peter Norvig 把整体问题一次性放入大脑的能力。 Dave Thomas 他们关心他们做的事。 Guido Van Rossum 大脑结构基因不同。 James Gosling 他们知道他们要做什么,他们不并不急于仓促行事。他们有他们要做的事的整个蓝图。 Bjarne Stroustrup 首先,缺少足够的职业培训,或基础不够。其次,这些人要即聪明(那种可以把事情想清楚,直达核心的能力),又有经验,并有使用工具的知识。编程需要把理论和实践结合起来 – 并不是使用没有实际业务的知识。 Tim Bray 令人惊讶的思维改变。 Q 7: 什么工具是你的最爱(操作系统,编程/脚本语言,文本编辑器,版本管理,shell,数据库,或其它没它你活不了的工具),为什么不是别的?Steve Yegge 操作系统: Unix! 我用Linux,cygwin,和 darwin。你无法打败那些高效的工具。每一个程序员都应该学习使用/bin和/usr/bin下的所有命令。 脚本语言:Ruby。我几乎对所有的重要的脚本语言都很熟悉: Perl, Python, Tcl, Lua, Awk, Bash, 和一些我忘了的。但是我太懒了,而Ruby是目前所有脚本语言中最简单的,它应该是天堂制造的。 编程语言:没有一个我喜欢的,我觉得所有的编程语言都很扯。我倾向于Java,因为它很强,可跨平台,有多不错的工具和类库。但是Java未来会进化或是灭亡,Java还没有好到可以永远保持其领先地位。 文本编辑器:Emacs,因为这是迄今最好的编辑器。 版本管理:SVN,Perforce更好一些,但是也很贵。 Shell脚本: Bash, 因为我太懒了去学一个更好的。 数据库: 当然是MySQL,没有之一。 其它:我发现GIMP是无价的,但也是令人恼炎火的。我用这个东西好几年了,但什么也没干,但是我没它活不了。很讽刺吧。Firefox 越来越是我最重要的工具。如果让我去用IE和Safari,我会有严重的窒息感。 注:所有的这些工具 (Unix, Emacs, Firefox, GIMP, MySQL, Bash, SVN, Perforce) 都有一个共同点:他们是可扩展的。例如:他们都有可编程的API。伟大的程序员知道怎么编写他们的工具,而不只是去使用。 Linus Torvalds 实际上,我最终也没有用过几个工具,而我却花了一些时间让这些工具为我工作。最大的事是我自己写了个操作系统,我也自己写了个版本管理系统(git),我用的文本编辑器是 micro-emacs – 最终我也定制和扩展了它。 除了上面三个,其它的东西,我深度关心我的邮件阅读软件,我使用“pine”,并不是因为它是史上最好的邮件阅读软件,因为我习惯了,用它我会有最低限度的大惊小怪。 David Heinemeier Hansson OS X, TextMate, Ruby, Subversion, MySQL. 这些组合让我很快乐。我希望那些有好的品味的专注于重要的事的工具。 Peter Norvig 我不喜欢那三大操作系统 – Windows, Mac, Linux。我喜欢 Python 和 Lisp. Emacs. Dave Thomas 在使用Linux10年后我转到Mac平台有两年多了。Mac并不见得有多好,但是它不需要很牛的技术,也不需要经常维护,这让我可以让我更专心得使用它。 我并不是一个单一工具的信仰者,我喜欢换来换去的,这样可以让我有更多的经历。现在,我使用 OSX, Emacs, TextMate, Rails, Ruby, SVN, CVS, Rake, make, xsltproc, TeX, MySQL, Postgres, 还有一堆高效的小工具。没人知道我明年会用什么。 Guido Van Rossum Unix/Linux, Python, vi+emacs, Firefox. James Gosling 这些天,我在用 NetBeans. 用它可以干我想干的所有的事,清洁,简单和高效。这是最好的我永远要生活在其中的环境了。 Bjarne Stroustrup Unix, sam (一个非常简单的文本编辑器), 当然,一个好的C++编译器。 Tim Bray 我喜欢 Unix-like 的操作系统,像 Python 和 Ruby 的动态语言,像Java的静态语言(具体说来是Java API) Emacs, 还有, bash, whatever, NetBeans. Q 8: 你最喜欢的编程书是什么? Steve Yegge 大哥,这个问题太难了。也许是”Gödel, Escher, Bach: an Eternal Golden Braid” (作者Hofstadter)?虽然这不是严格意义上的编程的书,如果你要明确意义上的编程书,那么可能是 SICP (mitpress.mit.edu). Linus Torvalds 嗨。这两天我在读一些小说,或是非计算机读物(老的但是有用的 “The Selfish Gene” 作者 Richard Dawkins)。 如果要问我编程的书,我脑子里只出现了唯 一一本真正的经典的编程的书 Kernighan & Ritchie 的 “The C Programming Language”,因为这本书太牛了,可读性强并且很短。考虚虑一下你想学到这世上一门最重要编程语言,并且它很要很薄,而且还有可读性,这真是一个奇迹。 也就是说,其它我很喜欢的书并不是编程的,而是关于计算机结构和硬件的。那显然是 Patterson & Hennessy 的计算机结构的书,但是我个人也许更喜欢 Crawford & Gelsinger 的 “Programming the 80386?,这是我在开始写Linux时用的书。 相似的原因,我还喜欢 Andrew Tanenbaum 的 “Operating Systems: Design and Implementation”. David Heinemeier Hansson 我喜欢 Extreme Programming Explained 其摒弃了一般的编程实践,我还喜欢 Patterns of Enterprise Application Architecture 其出众地说明了抽象和具现的平衡。 Peter Norvig Structure and Interpretation of Computer Programs Dave Thomas 这关系到你所谓的“最喜欢”,也许我最喜欢的是IBM的 “IBM/360 Principles of Operation.” Guido Van Rossum Neil Stephenson的 Quicksilver. James Gosling Programming Pearls 作者Jon Bentley. Bjarne Stroustrup K&R. Tim Bray Bentley的 Programming Pearls |