伟大的程序员怎么想编辑本段回目录
Q1:怎么学会的编程,上学有用么。
Q2:什么是你认为编程中最重要的品质:
Q3:数学和物理知识在编程中是否有用:
Q4:什么是你认为下一个将在计算机科学中的热门领域?面向XX编程?XX语言?量子计算机?
Q5:如果你有3个月的时间来学一门新技术,你会学啥?
Q6:你认为是什么使得某些程序员比另外一些程序员能多干10倍或者更多的活?
Q7:你最喜欢的工具-比如操作系统,编程语言,编辑器,版本控制系统,Shell……
Q8:哪本书是你关于编程方面最喜欢的书?
Q9:哪本书是你关于非编程方面最喜欢的书?
Q10:什么是你最喜欢的乐队/音乐/组合/歌手?
-------------------下面是牛人们的答案
code17 写道 "OCaml.cn报道:在一个百无聊赖的下午,这个叫Stiff的家伙萌生了一个主意:他通过可以公开获取到的电子邮件地址,给那些他认为有趣并景仰的 伟大程序员写信,就10个他所感兴趣的问题进行email采访。他只用了5分钟就列好了这10个问题,因为选择的标准很简单——就是假设可以在生活中和他 们单独谈上10分钟的话他会问些什么,其中有些问题甚至和编程毫无关系。尽管并不是所有人都乐意回答问题,但还是让我们先来看看他成功采访的对象的名 字…… "
* Linus Torvalds - Linux之父,kernel维护者
* Dave Thomas - «Pragmatic Programmer», «Programming Ruby»和其他程序设计书籍的作者
* David Heinemeier Hansson - Rails框架的作者
* Steve Yegge - 一个很受欢迎的关于程序语言的weblog的作者,游戏”Wyvern”的作者,也是个OCaml的fans
* Peter Norvig - 现在是Google的研究部主任,Lisp Guru,著名的PAIP和AIMA的作者,不过他的一篇小品文Teach Yourself Programming in 10 Years或许传播得更广。
* Guido Van Rossum - Python语言之父
* James Gosling - Java语言之父
* Tim Bray - XML和Atom标准的主要贡献者之一
=========================================================
以上引自Solidot,我给这篇文章做了一个非常粗浅的翻译并加了一些个人注解(在括号内)。下面是内容:
Q1:怎么学会的编程,上学有用么。
A1:怎么学的编程牛人们的答案比较千篇一律,都是自己搞了个机器,写了些程序就学会了。上学有没有用的答案还有些差异,
Steve Yegge:有用。
Linus Torvalds:有用。
David Heinemeier Hansson:是在学会了编程后才拿得计算机和商业管理的学位。(这算不算没有正面回答问题?)
Peter Norvig:上了学了,觉得还是自己自学的更多些。
Dave Thomas:这哥们是在上学学计算机时才爱上了编程这份很有前途的工作的。最后一直拿到了博士学位。他对“你怎么学会的编程”这个问题的回答是我还在学习中,活到老学到老云云,感觉有些答非所问,不知所云。
Guido Van Rossum:学校提供的整体知识框架非常有用。
James Gosling:也拿个博士,所以答案不言而喻了(这个问题快成博士xyt了?:))
Tim Bray:他的原话是:“我可能要成为一个数学老师了,大学的数学课目需要一些计算机课程。”,好,这次牛人答非所问的冠军就是你了。此外,对照下面数学和物理知识问题的他的回答,更觉得他比较匪夷所思。
Q2:什么是你认为编程中最重要的品质:
A2:
Steve Yegge:写作和交流的技巧。(嗯,牛人们才需要写作的技巧,俺们更需要copy的技巧)。
Linus Torvalds:品味。(咳咳,这个回答,有够臭屁的)。具体说来就是code写的优不优雅之类的很阳春白雪的事情。
David Heinemeier Hansson:对于价值的感觉,能够判断什么是有价值的且值得做的(这样的人去炒股更合适啊)。
Peter Norvig:专注。(一看到这个词,俺就想起了Carmack)。
Dave Thomas:激情。
Guido Van Rossum:你的问题太空泛太难回答了,我猜早餐时能煎好蛋是很重要的:)(大师啊,俺是煎蛋高手,人送外号“煎蛋王”,让我投入你的靡下吧)。
James Gosling:能自我激励,能尽善尽美,能爱自己从事的事情。
Tim Bray:更相信事实而非直觉。(俺相信Tim大师的debug经验一定超丰富且充满了痛苦而不堪的回忆)。
Q3:数学和物理知识在编程中是否有用:
A3:物理知识就没有牛人认为是有用的,牛人们认为数学的有用也大多着眼在思维方式的影响上。
Steve Yegge:说了一大堆,归结起来就是有用。
Linus Torvalds:认为有个好的数学背景有助于思索。
David Heinemeier Hansson:对于商业编程和web编程屁用没有(Not at all)。
Peter Norvig:是的,很多理论需要数学做基础。
Dave Thomas:或许有用,不过似乎音乐更有用。
Guido Van Rossum:数学有用,尤其是代数和逻辑。
James Gosling:是的,教会我们怎么推理,更为重要的是算法分析。
Tim Bray:对我来说,大学时代的数学知识几乎从没有被用到过。
Q4:什么是你认为下一个将在计算机科学中的热门领域?面向XX编程?XX语言?量子计算机?(这个可能是我们最关心的了,大师们指条明路,我的房贷就全靠各位的“夜观星象”了)
A4:
Steve Yegge:网络应用编程(Web Application)。也就是富客户端,列举了GTK,Java Swing/SWT,QT等界面库。大师还认为这些不会一夕发生而可能要穷十年之力,因为Microsoft和Apple这样万恶的软件帝国必然会尽力阻 扰大部分应用从桌面转向Web,所以象Firefox这样的开源浏览器将会是战斗的关键。
Linus Torvalds:我觉得我们不会看到什么大的跳跃。每天我们都看到各种各样的新软件新技术让生活更便捷,世界更美好,(我怎么觉得是世界更臃肿呢?)所 以我们以后也将继续看到各种各样的语言啊,技术啊,随着硬件的发展让我们更容易使用。(Linus大师真是适合去做美联储主席啊,发言和格林斯潘差不 多)。
David Heinemeier Hansson:我不想预言未来,最好的预言未来的方法就是实现他。(So,大师你是不买股票的喽?)
Peter Norvig:大范围的分布式处理。(嗯,看来Google的火不是没有原因的)。
Dave Thomas:下一个重大的事情会被下下一个重大的事情所掩盖的,我已经厌倦了这样的预言,因为人们往往会过于关注这些而忽视了眼前,忽视了基础。而只有 重视基础,抓住眼前的程序员才有可能开发出真正好的产品来(大师……我好惭愧啊……原谅我吧,我也不过想挣钱的说)。
Guido Van Rossum:我不是一个水晶球魔法大师,我曾在CGI出现五年后预言过他的到来(汗,预个言还要我给你配多拉A梦加时光机么?)
James Gosling:我目前所关注的是并行计算和复杂度。
Tim Bray:不知道。(实在啊,原来Tim大师是实在人)
Q5:如果你有3个月的时间来学一门新技术,你会学啥?(大师的回答一定不是“从无领到白领”了,让我们看看会是什么)
A5:
Steve Yegge: 我正好有三个月的空闲时间,并且正在学Dojo和Ajax高级技术以及DHTML,我的学习方法就是写一个很nb的网络应用。Dojo很cool,并且随着时间的推移肯定会更cool。
Linus Torvalds: 我真的很喜欢FPGA,不过我一直没有时间去学习,我爱死那种直接操纵硬件的感觉了。不需要更多的设计。
David Heinemeier Hansson: Mac上的Cocoa编程(我知道一定有Mac粉丝偷偷笑了)。
Peter Norvig: 我想了解更多的javascript,以及flash。
Dave Thomas: 如果对我个人来说,我更想学钢琴,从技术的角度来说的话,则是那些可以辅助残疾人的技术。(大师受我一拜Orz)。
Guido Van Rossum: 滑雪。(我靠!)
James Gosling: 出于兴趣,我希望学习3d渲染技术,并想写一个照片地图渲染器。
Tim Bray: 安全,加密,数字签名,我很遗憾自己从来没有学过这一块。
Q6:你认为是什么使得某些程序员比另外一些程序员能多干10倍或者更多的活?(这个答案我知道啊,就是“床垫”)
A6:
Steve Yegge:我想你如果停下来想想为什么所有的运动员不是一样的好你就明白了,(嗯,虽然我的马拉松可能会跑30个小时,不过我的100米不会跑100秒的说)。爱迪生有一句关于天才的论断也可作为参考。(同志们,让我们去挥洒青春的汗水吧)。
Linus Torvalds:我真的不知道,我想只是有些人确实能更集中精力吧,而很多我知道的好程序员都是非常年轻的时候就能这么做了。
David Heinemeier Hansson:把困难问题分解成简单问题的能力。
Peter Norvig:能够把整个问题充满自己头脑的能力。(这个,算是专注的另一种说法吧)。
Dave Thomas:他们关心他们所做的。
Guido Van Rossum:遗传性的不同的脑结构。(这个答案我死欢)。
James Gosling:他们思考自己所做的,不会莽撞的行动,而是有一个总体的规划。
Tim Bray:是人类智慧的令人惊异的差异性。(天才天才奈若何)
Q7:你最喜欢的工具-比如操作系统,编程语言,编辑器,版本控制系统,Shell……(要战了么?等我找个沙发先)
A7:
Steve Yegge:
OS: Unix, 也使用linux,cygwin,darwin等。每个程序员都该会使用/bin和/usr/bin下的所有工具。
脚本语言:Ruby,我精通几乎所有的脚本语言。Perl,Python,TCL,Lua,Awk,Bash等,但是我很懒,而Ruby最简单。(唱:Ruby的好,不是勤快人能知道……)
编程语言:没有啥最爱,我觉得都烂透了,我更喜欢java一点,它够强壮,跨平台,并有好的工具和包。但是java要么进化,要么死亡,因为它还不够顶尖。
编辑器:Emacs,现在最好的编辑器(唱:Emacs的好,地球人都该知道)。
版本控制:SVN。Perforce也不错,但是太贵了。(俺们早就不在版本控制上花钱了)
Shell:Bash,因为我很懒,不想学别的。
Database:当然是MySql,没有别的候选的。
其他:我发现GIMP非常好,可是也令人发疯的不直观。我已经使用它很久了,可是还是几乎不能用它做成任何事情,可是我又不能没有它。(真是让人 感慨的一段恩怨情仇啊)。Firefox也很爽,我对过去只能用IE或者Safari的经历如鲠在喉。注意所有这些工具都能扩展,这是对于程序员来说非常 重要的。(对老百姓就未必了,俺要汉化破解傻瓜绿色精简黄金白银典藏包的说)
Linus Torvalds:
我实际上没什么时间让工具玩我,只是我来玩他们罢了,我写了自己的操作系统,还写了自己的版本控制系统(GIT),我用micro-emacs编 辑。当然经过了我自己的定制和扩展。除了这些以外,我惟一在意的只是我的email接收端了,我使用Pine,因为我已习惯了它。
David Heinemeier Hansson:
OSX,Textmate,Ruby,Subversion,Mysql,这就是我的令人愉快的组合,我喜欢那些有着良好的用户体验并且专注于它们所作的事情的软件。(怎么这些mac fans都是一个调调的?)
Peter Norvig:
我不喜欢三个主要的操作系统:Windows,Mac,Linux。(大哥,坑不是这么挖的)我喜欢Python和Lisp,Emacs。
Dave Thomas:
在用了十年多linux后,我在几年前转到了mac上,工具并没有更好用,但是不需要时时调整和维护了,这让我有更多的时间来使用它们。我不依赖 于一种工具,我经常在它们之间切换,所以我使用过很多中工具,目前我使用 OSX,Emacs,Textmate,Rails,Ruby,SVN,CVS,Rake,make,xsltproc,Tex,Mysql,Postgre 和其他一堆小玩意,谁知道我明年会用啥(我知道,至少不是微软的东西了)。
Guido Van Rossum:
Unix/Linux, Python, vi+emacs, Firefox.(大师言简意赅的回答让我这个翻译废物似的)。
James Gosling:
最近我一直生活在Netbeans中,它完成我想要的所有事情。非常简洁有效。是我使用过的最好的环境。(请告知我你持有的Sun公司股份好么?)
Tim Bray:
我喜欢Unix向的操作系统。Python和Ruby这样的动态语言和java这样的静态类型语言。Emacs,Bash和netbeans。
Q8:哪本书是你关于编程方面最喜欢的书?
A8:
Steve Yegge:这问题很难回答啊,或许是那本《Gödel, Escher, Bach: an Eternal Golden Braid *(Hofstadter)》(大哥,我真不知道这个怎么翻了)。但似乎和编程的关联比较少,那么就该是SICP了吧。(就是那本《Structure and Interpretation of Computer Programs》)。
Linus Torvalds:呵呵,我现在更倾向于阅读小说和其他与计算机无关的书。比如《自私的吉恩》。当说到编程时我惟一跃入脑海的就是K&R的那本 《C Programming Language》,因为它是如此的……(实在不想翻译这本书的好了)。除了编程以外,硬件相关的还有Patterson & Hennessy’s的关于计算机体系架构的书,不过Crawford & Gelsinger’s的《Programming the 80386》则是我开始编写linux时所用的书。同样的原因,我也喜欢Andrew Tanenbaum的《操作系统的设计与实现》
David Heinemeier Hansson:我喜欢《极限编程》(《Extreme Programming Explained》)和《企业应用架构模式》(《Patterns of Enterprise Application Architecture》)。
Peter Norvig:SCIP。
Dave Thomas:这在于你怎么定义最喜欢(这个词很难理解?),对于我来说可能是IBM的《IBM/360 Principles of Operation.》
Guido Van Rossum:Neil Stephenson的《Quicksilver》。
James Gosling:Jon Bentley的《编程珍珠》(《Programming Pearls》)(嘿嘿,这书我也喜欢)。
Tim Bray:Jon Bentley的《编程珍珠》(《Programming Pearls》)。
综合大师的回答,可见《SICP》和《编程珍珠》是必读书啊。
Q9:哪本书是你关于非编程方面最喜欢的书?
A9:
Steve Yegge:只是一本书?你问的是一个不可能有答案的问题嘛,我喜欢好多书的。我这个月最喜欢的是Neil Gaiman的《Stardust》和Hofstadter/Dennet的《The Mind’s I》,我最喜欢的作家是Kurt Vonnegut, Jr. 和Jack Vance。(大师还真是博爱啊)。
Linus Torvalds:我已经提到过《自私的吉恩》了,我很少重读书,所以可能记不清了,不过《Stranger in a Strange Land》是我童年时代最喜欢的书。
David Heinemeier Hansson:乔治·奥威尔的《1984》。(Cool)
Guido Van Rossum:Neil Stephenson的《Quicksilver》。(md,这本书到底是不是关于编程的?)
James Gosling:Jared Diamond的《Guns, Germs & Steel》。
Tim Bray:Ivan Denisovich的One Day in the Life。
Q10:什么是你最喜欢的乐队/音乐/组合/歌手?(这个问答系列真是越来越八卦了,怒了,不译了,大家自己看吧)。
A10:
Steve Yegge:
Favorite genres: classical, anime soundtracks, video-game music
Favorite composers: Rachmaninoff, Chopin, Bach
Favorite performers: David Russell (classical guitar), Sviatoslav Richter
(piano)
Favorite anime OSTs: Last Exile, Haibane Renmei
Linus Torvalds:
I’m actually not very much into music, but when I listen to it, I tend to listen to various classic-rockish things, ranging from Pink Floyd to the Beatles to Queen and The Who.
David Heinemeier Hansson:
I like a lot of genres. Beth Orton, Aimee Mann, Jewel, Lauryn Hill. Actually, all those examples would fit under Girls with Guitars ;).
Guido Van Rossum:
Philip Glass.
James Gosling:
I tend to like folk musicians: Christine Lavin, Woody Guthrie, Pete Seeger…
Tim Bray:
Read my blog.