书评:去他的算法内功基础,对于程序员,实用主义才是王道
时间:2010-09-26 来源:cnblogs
《Coders at Work》书评
文/figure9
很早就在Amazon上看到过这本有些技术八卦性质的书,不过当时更期待的是O'Reilly的Masterminds of programming(中文译名编程之魂),毕竟我对程序设计语言更感兴趣一些,然而被其糟糕透顶的翻译(参照我之前对此书中文译版的评论)折磨了一顿之后,我是再也不会光顾此类书籍的中文版本了,既浪费钱也浪费精力。
不冲别的,就冲这本书后面的那三个Turing Award(Fran Allen, Ken Thompson, Don Knuth),每个自认为是程序员或者对计算机感兴趣的人就应该阅读一下此书,这三位神级的人物,基本奠定了计算机科学几乎所有方向上的基础:编译器,操作系统,程序设计语言,算法,数据结构。
而至于其它的interviewee,不是One-man army型的神级程序员(Jamie Zawinski,Brad Fitzpatrick,Joshua Bloch),就是某个编程语言的创始人(Guy Steele,Joe Armstrong,Brendan Eich)。至于interviewer自己,也是一个资深程序员外加Jolt Award图书的作者。这些都成为了这本书质量的保证。
在看了这本书之后,发现它并不像我当初想象的那样是一本技术人士的八卦图书。书里面讨论的更多的是编程的习惯,对当今程序设计方法或是程序设计语言的讨论,以及这些编程大牛在成为大牛的过程中的各种经历。很多东西都值得程序员或者是有志学习计算机科学的人借鉴。
书中给我印象最深的是第一个人物Jamie Zawinski:典型的实用主义者,老牌黑客,XEmacs和Netscape Navigator的创始人之一。他鄙视C++,认为设计模式就是一坨Crap(reverse,inverse,double-back-flip pattern,you mean a loop?),认为质量第二,进度第一;大学肄业只有高中文化程度,却被Peter Novig称为他所见过的最有天赋的程序员之一;不喜欢去修改别人的代码,认为自己推翻了重来更方便;他并没有阅读过很多计算机图书,也没有多么深厚的数学或是算法基础,绝大多数的计算机知识是自学或者是在项目中学到的,却一点也没有妨碍他成为世界上最顶尖的程序员之一。
所以那些动则就扯什么算法啊基础啊内功啊所谓的大牛们,请闭上你的嘴,条条大道通罗马。算法并不是编程的前提条件,数学也不会阻碍一个人成为优秀的程序员。至少在我看来,什么算法基础内功都是唬人的玩意,多编点能用的实用的程序才是王道,当然如果你是一个pure theroist的话就当我什么都没说好了。
比较有意思的是,书中的人物对C++的评价都是负面的,无论是自学成才的Jamie Zawinski,还是科班出身的Joe Armstrong,甚至是和Bjarne在同一个实验室工作的Ken Thompson,都认为C++是一门差劲的语言。Ken的一句话可以反映出这些大牛对C++的普遍态度:“It certaily has its good points. But by and large I think it's a bad language. It does a lot of things half well and it's just a garbage heap of ideas that are mutually exclusive.”也难怪有传言说Ken和Bjarne一直不和,就拿Bjarne的那几部大作来说,无论是C++程序设计语言,还是C++的设计与演化里面,Bjarne感谢了Ritchie感谢了Kernighan感谢了McIllory,却从来没有提到过Ken。
书里也有一些有趣的信息:身为C创始人之一的Ken因为没有通过Google的C语言能力测试而没有提交代码的权限(原因是Ken认为自己根本没有必要参加这种测试);Erlang的创始人Joe本身是一个学物理的phd,因为实验室没有经费生活无法维持才跑到Ediburgh的Machine Intelligence Lab学习CS。
我并没有买这本书的中文版的打算,根据这几年人邮出版的图书的定价,保守估计这本书的价格不会低于75元,而在Amazon上这本书不到20美刀就可以搞定。
此外,有了先前电子社那本编程之魂的教训,再加上这本书貌似是由多人翻译的,因而我对这本书的翻译没有任何期待。