转: 程序员访谈录(9位优秀程序员的Q&A)
from:http://www.infoq.com/cn/news/2012/12/programmer-interview-record
这篇访谈是2006年一位波兰程序员Jaroslaw "sztywny" Rzeszótko (AKA "Stiff")发布的,原文已经下线,2008年澳大利亚一位开发者(twitter是@dodgy_coder)在经过原作者授权的情况下,将这篇访谈再次发布了。
原作者提出了10个问题,问题有关于他认为读者会感兴趣的或尊敬各位优秀程序员所创造的各种事物,最后两个问题则是出于原作者的兴趣。原作者介绍,并不是所有人都回复了他的问题,不过他在这个过程中学到了很多有趣的事情,也是很有价值的经验。
首先我们看看这9位优秀程序员是哪些人:
Linus Torvalds:Linux内核的作者。(编辑注:他的LinkedIn主页在这里)
Dave Thomas:"Pragmatic Programmer", "Programming Ruby"还有其他一些关于编程的优秀书籍的作者,可以从这里学习一下他的编程思想。
David Heinemeier Hansson:一个新热门的web开发框架Rails Framework的作者(注:“新热门的”指的是2006年,即采访原文发布的那段时期),他的博客在这里。(编辑注:David Heinemeier Hansson被称为DHH,这里提到的热门框架即“Ruby on Rails”,他是37signals的合伙人之一,也是《重来》一书的联合作者)
Steve Yegge:也许是这些人当中名气最小的,但是他给出了一些有趣的回复,他有一个非常受欢迎的关于编程的博客,同时,他也是一款名为“Wyvern”的游戏的作者。
Peter Norvig:Google搜索总监,有名的Lisper,关于AI的著名书籍的作者,他的主页在这里。(编辑注:他的LinkedIn主页在这里)
Guido Van Rossum:Python语言的创造者。
Bjarne Stroustrup:C++语言的创造者,他的主页在这里。
James Gosling:Java语言的创造者。
Tim Bray:XML和Atom规范的作者之一,他的博客在这里。
以下是原作者提出的10个问题,我对感兴趣的几个问题的回复做了一些概括:
Q1:你是怎么学习编程的?学校有什么帮助吗?还是你没有在任何学校毕业?
回复:多位程序员提到,主要是自学编程,但是在学校提供的课程还是很有用的帮助,在一些基础概念(如复杂性分析)方面,建议如果有条件的话,最好还是能够取得学位证书。
Dave Thomas回复中提到:“我仍然在学习编程”,好的程序员不是学习一个新的语言和类库,而是年复一年的完善技术实力与实践。 Tim Bray则提到曾经是想当一名数学老师,在大学里的数学课程需要一些计算机课程。
Q2:你认为每个程序员需要掌握的最重要的技能是什么?
回复:书写和语言表达能力、品味、强烈的价值感知、专注、热情、理解问题与解决问题的能力、直觉。
Q3:你认为数学或物理能力对于程序员来说重要吗?为什么?
回复:有些人认为很重要,离散数学。有些人认为完全不重要。
Q4:你认为计算机编程领域的下一个大事件是什么?X-oriented编程、Y语言、并行计算还是什么?
回复:可能是web应用、大规模分布式进程、CG,大部分人认为不会有特别巨大的变化,可能随着硬件的提高编程能够变得更简单。
Q5:如果你有三个月的时间去学习一个相对较新的技术,你会选择什么?
回复:Dojo、FPGA、Cocoa、Javascript、flash、3D渲染、安全、加密、数字签名等。
Q6:你认为让某些程序员的效率10倍甚至100倍于其他人的原因是什么?
Q7:你最喜欢的工具(操作系统,编程/脚本语言,文本编辑器,版本控制系统,shell,数据库引擎,其他你无法离开的工具)是什么?为什么更喜欢这个工具?
Q8:你最喜欢的计算机编程相关的书是什么?
Q9:你最喜欢的与计算机编程无关的书是什么?
Q10:你最喜欢的乐队或表演者或作曲家是谁?
转发的这篇文章有很多评论,讨论David Heinemeier Hansson具有很商业化的思维、Guido Van Rossum的简练回复、Linus Torvalds的回复“好品味”等等。