Coders at Work (二)

Ken Thompson:印象中很少见到这位老大接受什么采访,这次能读到这么长的一篇专访着实不容易。这位大牛是必须崇拜的,必须的,据说连DMR都敬他三分,可见其功力到底如何了,呵呵。人家不光编程牛,下国际象棋都很牛,于是下着下着就搞出了下国际象棋的计算机乐……

在书中的采访中你可以读到很多关于当年Unix的故事,以及大牛当年的故事,比如这位大牛是读EE出身的,曾热衷于搞电子的玩意儿,在进贝尔实验室之前是教书的,等等。最让人震惊的是,这位大牛自己爆料,他当年去贝尔实验室面试工作纯属意外,其实他只是想借去面试的机会去免费旅行,到那边探望一个朋友,根本就没想找工作的事儿,结果呢,不小心真面上了,于是才有了后来精彩的故事!历史啊,有时候就是喜欢开玩笑,设想如果当年贝尔实验室因为听说他对工作不感兴趣干脆不要他了,那我们现在可能连Unix都没有呢!更别说 Linux 了!感慨万千……(本人省略数百字感慨。)

在谈起编程的问题时,Ken 老大终于亮出了他的杀手锏,本人早就有所耳闻,那就是他编程都是自底向上的!!这一点很牛B,一般人做不到的,包括本人在内的多数人都是习惯从上到下,无论读代码还是写代码。我也尝试过自底向上写,结果写得一塌糊涂,我那程序还不算大,要是大的程序那简直没法写了……唉,看看人家,还能写出那么牛的操作系统,编译器等等,境界和咱这种小菜就是不一样!不服不行!

在被问道调试的问题时,他就更牛了,人家不光不用调试器,就连用print都是和咱不一样的。像咱也就调试时加几个print吧,可人家是在编代码时就已经想好该在哪里放print了,保证程序跑起来调试时有足够的print可用。瞧瞧,这就是咱和牛人的差距!啥也别说了,学习吧。

作者问他如何找到有才华的程序员时,他认为程序员最重要的素质是热情,呵呵,其实何止是程序员啊,很多工作必须的。大牛还顺带提了他是如何面试别人的:

It’s just enthusiasm. You ask them what’s the most interesting program they worked on. And then you get them to describe it and its algorithms and what’s going on. If they can’t withstand my questioning on their program, then they’re not good. If I can attack them or find problems with their algorithms and their solutions and they can’t defend it, being much more personally involved than I am, then no. At the same time you can get a sense of enthusiasm. It’s not something you ask directly, but in the conversation you’ll come with this enthusiasm-ometer, and that is tremendously helpful for me. That’s how I interview. I’ve been told that it’s devastating to be on the receiving side of that.
估计能通过他面试的人这个世界上还真没多少个……不过人家这种面试的方法确实值得国内很多面试官们好好学习一番乐!

大牛现在在 Google,貌似地球人都知道。不过据他说他在 Google 根本就不提交代码,虽然他在 Google 的工作是做 Infrastructure 的。Google 就爱养这样的牛人,他们的工作可能对 Google 没有任何直接的好处,但 Google 就是乐意供着他们让他们做研究,嘿嘿,这才是真正的高瞻远瞩啊!