这篇访谈源自2006年,最先发布在波兰程序员 Jaroslaw “sztywny” Rzeszótko (AKA “Stiff”) 的博客上。但是这篇博文现在找不到了。非常感谢他能授权我重新发布这个博文。
在一个炎热无聊的下午,我突发奇想。我想通过电子邮件的方式对那些我非常感兴趣和非常敬重的程序员问10个问题。准备这10个问题我只花了5分钟,这些都是我个人想问他们的问题,所以,我基本上没想太多要问他们什么。最后两个问题和编程没有什么关系,我就是想问题这些人的一些兴趣爱好。另外,不是每一个人都想回答我的,这是我第一次做“访谈”,所以,我犯了一些错误,一些问题没有得到回答。不管怎么样,我得到了很多很有意思的内容,所以,这对我绝对是一次很有意义的经历。
并不是每一个人都回了我的邮件,也并不是每一个人都同意回答我的这些问题,也许在我发布这篇文章后我会得到那些回答,但是我已经迫不及待想把这些东西发布了,所以,我可能会更新这篇文章(更新:2006年3月8日,我收到了Bjarne Stroustrup的回信)
– Jaroslaw
介绍
Linus Torvalds - Linux kernel 作者。
Dave Thomas – “Pragmatic Programmer”(注:douban) 和 “Programming Ruby”(注:douban) 以及其它一些优秀书籍的作者。 你可以在 这里 读读他对编程的一些想法。
David Heinemeier Hansson – Rails Framework 作者- 一个目前最新最热的Web开发框架。他的blog在 这里. (陈皓注:他也是37signals的领导人之一)
Steve Yegge – 他可能并不那么知名,但是他给了很多有意思的回答。他有一个很火的关于编程的 blog,他也是游戏 ”Wyvern” 的作者。(陈皓注:他最火的是去年在google+上对google和amazon的吐槽,06年他应该在google了)
Peter Norvig – Research Director at Google, 知名的 Lisper,AI书的著名作家,个人主页。
Guido Van Rossum – Python 发明者。
Bjarne Stroustrup – C++发明者, 个人主页。
James Gosling – Java 发明者。
Tim Bray – XML 和 Atom 规格说明书作者之一 个人博客 。
Q 1: 你是怎么学编程的?是从学校里学的吗?或者你没有上过学:) ?
Steve Yegge
在我17岁的时候,我在HP的计算器中用他们的RPN 栈语言自学编程的。在这之前,我尝试过学习编程一两次,但都没有学成。HP 28c 和 48g 的科学计算器是一个很牛的东西,而且还有不错的文档。我搞了一本3D图形的书,并很费力地把其中的Pascal语言转成RPN栈语言,并用48g画了一个 3D的线框架图。运行的还不错,在我买了PC和Turbo Pascal之后,我开始认真地学习编程。在我进入大学计算机科学专业之前,我已经是一个不错的程序员了。
我在华盛顿大学拿到了计算机科学学位,这绝对是有价值的,所以,我建议所有的程序员都应该得到计算机科学专业的学位。
Linus Torvalds
我没有在学校里学过编程,我在主要是读我自己想读的书,或是就直接去编程 (一开始在 Commodore VIC-20 学编程, 然后是 Sinclair QL上编程)。
当然,我觉得上大学非常有用。我没有去一个工科大学,我上了赫尔辛基大学,这是一个比较偏理论的大学,所以,那里的教育并没有那么多的编程的东西(编程只是很少一部分),这里大多数的课程都倾向于教一些基础概念的东西,如:复杂性分析。看上去很无聊,甚至有点浪费时间,但是我还是觉得这些课有用,我对大多数课都还比较enjoy。所以,我觉得我可能在这些方面是一个比较好的程序员。
David Heinemeier Hansson
我学编程是从用HTML做我的第一个网页开始的。那时,我想当我的网页能动态地显示一些内容,所以,我选择了ASP和PHP。在做完这个网页后,我知道了怎么去编程,于是我开始我的计算机科学和商业管理学位的学习。
Peter Norvig
我是从高中和大学课程中学编程的,但是我还是觉得我自己学得更多。
Dave Thomas
我是在高中学编程的。我完全地迷住了,我对编程爱得无法自拔,然后,我开始挑选那些提供软件开发课程的大学。最终,我去了伦敦大学的帝国学院。第二年我就开始学习软件开发的课程了,那绝对是非凡的,学生和教员在一起工作把教材做得更好,每一个人都可以从中学到很多。这些课程给了我难以置信和非常雄厚的软件开发背景。我在那里读到了博士,最后去创业了。
关于“我是怎么学编程的”这个问题,我的回答是“我现在还在学编程”。我认为好的程序员一生都在学编程。这并不是去学一门语言或是一个代码库,好的程序员会对他们的编程技艺一年又一年地精益求精。
Guido Van Rossum
我去的那个大学有一个大型主机和很多不同的计算机课程。这对我很重要。
James Gosling
起初,我是自学的。在我去上大学之前,我就找到了一份程序员的工作。但是我很高兴我去了大学,在那里有很多乐趣,最终我学到了博士。
Bjarne Stroustrup
我先上的是Aarhus大学, 然后是 剑桥大学(Cambridge),这两个大学教了我很多很有用的东西,这些东西为了以后的工作打下了基础。另外,我对编程和钱的关系学得非常好——知道了真实世界的问题,正确性,维护性,准时交付,等等,这些比教育可能更重要。
Tim Bray
我本来想去做一个数学老师的。但是,那个学数学的大学要我去学几个计算机的课。
Q 2: 你们觉得对程序员最重要的事是什么?
Steve Yegge
沟通能力(写和说)。除非你可以让你的想法更有效率地传递出去,否则你不可能做得比编程更多的事。程序员应该疯狂地阅读,锻炼写作能力,参加一些写作培训课程,甚至锻炼在公开场合演讲的能力。
Linus Torvalds
It’s a thing I call “taste”. 有一件事,我把它叫做“品味”。