2010年7月6日星期二

读《Coders At Work》前三章

我水平比较低,看了前几章就感觉学到了许多,不由得想写一写,为自己总结一下。

人在不同的时间、环境和机遇下所渴望得到的知识是不同的,这些只是现在的我所体味到的好东西。但书中还讲了很多,但也许我以后再读才能品出其 中的滋味,也许你现在就能品出来。这也就是一本好书的魅力所在吧

第一章出场的大牛是Jamie Zawinski。对他的采访给我印象最深刻的地方是他的成长。他高中接触计算机之后通过参加地方性的 User Group聚会认识了卡耐基梅陇大学(CMU)的老师,然后屁颠屁颠的跑去“实习”。Jamie在CMU读了本科,然后仍然是依靠这位老师找到 了自己的第一份工作。之后他又遇到了Peter Norvig,并跑到Berkerly去了。他的学会的第一门计算机语言是Lisp,他写出了 XEmacs,他从不信任gdb,他是Netscape的主要开发者之一,我们每天看到的XScreenSaver也是他的习作。这需要怎样的天分、机遇 和努力,才能成就这一切呢?现在的Jamie是一家夜店的老板,已经不再写程序了。这似乎真的有一丝“哥已不在江湖,而江湖上还流传着哥的传说”的意味啊

第二位出场的大牛是Brad Fitzpatrick。对他的采访给我印象最深刻的地方是他的创业历程。LiveJournal从无到有,从小到大,都是他努力的成果。他可以今天写 Javascript,第二天却考虑Linux内核的网络算法。Things are always on fire! 今天经验不足的程序员时常会犯过 度设计的毛病,而那时的他却没有任何可以参考的东西。他也提到如果知道自己的网站能有这么大的发展和负载,肯定会好好的考虑架构啊算法啊之类的东西。但是 世界是没有如果的,他的网站很幸运的生存了下来。这就是一个产品是如何进化的。

第三位出场的大牛是Douglas Crockford。对他的采访给我音像最深刻的地方是他对代码阅读的强调。什么是好代码?在他看来,好 代码的第一要义就是可读性(readability),其次是正确性(currectness),最后才是效率(efficiency)。当然,这可能和 Javascript的特性有关,毕竟这的确是一门非常难以驾驭的语言。他谈到了他和他的同事们是如何进行code reading的,也谈到了他在面试 时对面试者有怎样的偏好。我在看这本书之前由于Javascript的缘故就看过几部Douglas的演讲,他是一个非常可爱的白胡子老头。即使你没有时间,至少也应该看看他的《The JSON Saga》 的分享,非常有意思。

这三篇采访都提到了一些共有的话题,其中一个是问你是如何设计一个系统的,是top-down,还是bottom-up,抑或是 middle-out?不同的人有不同的习惯。我对这么问题的印象这么深是因为在我注意到它之前,有人问过我一个类似的问题,而我的回答很悲剧。回头再读 此书看到这个问题,不由的生出“从前有一份答案摆在我的面前,而我没有珍惜……”的哀叹啊