`
mlzboy
  • 浏览: 701699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

登录 注册

豆瓣首页

去他的算法内功基础,对于程序员,实用主义才是王道

2010-09-25 19:08:38   来自: figure9
Coders at Work的评论 5 star rating5 star rating5 star rating5 star rating5 star rating 5
提示: 有关键情节透露
  Coders at work 书评
  很早就在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美刀就可以搞定。
  此外,有了先前电子社那本编程之魂的教训,再加上这本书貌似是由多人翻译的,因而我对这本书的翻译没有任何期待。

你认为这篇评论: 有用 21 没用 4

19人推荐 推荐

2010-09-26 10:08:43 晨星
  偶也被译文“咬”过,十年过去了,现在对所有中译本还有种怕怕的感觉。
2010-09-26 10:37:54 刘江
  图灵的翻译是有保证的,因为对质量重视。多人翻译是因为涉及太多方面的知识,每一块选择背景合适的译者。翻译过程中,我们吸取了开源的方法,有多人讨论、审读、修改。也欢迎你参加:http://groups.google.com/group/turingbook
  PS:说“Fran Allen, Ken Thompson, Don Knuth基本奠定了计算机科学几乎所有方向上的基础”太偏颇了。计算机科学是一部英雄辈出的史诗啊。
2010-09-26 10:48:18 alanguo
  程序员都喜欢这么偏激的说话,正常,我指的是楼主
2010-09-26 11:26:55 大又鸟又鸟
  我也讨厌C++,被折磨够了
2010-09-26 11:31:49 一生何求
  程序 = 设计 + 算法。。。
2010-09-26 12:25:55 要不要这么绝望
  不得不说LZ这题目取得有标题党嫌疑
2010-09-26 12:44:50 春晓的晓
  15美刀怎么也得100元吧,100>75吧。。。
2010-09-26 12:52:04 figure9
  @刘江
  quote<PS:说“Fran Allen, Ken Thompson, Don Knuth基本奠定了计算机科学几乎所有方向上的基础”太偏颇了。计算机科学是一部英雄辈出的史诗啊。>
  多谢指正
  单看这句话的话确实有问题,所以我在后面把他们的方向写了下。
  个人认为,以Fran对编译器的贡献,Ken对操作系统、程序设计语言的贡献,Knuth对算法,数据结构的贡献,说他们奠定了这些领域的基础并不为过。
  对您说的那个group很感兴趣,以后会多关注的,Thanks。
2010-09-26 12:59:20 figure9
  @晨星
  quote<偶也被译文“咬”过,十年过去了,现在对所有中译本还有种怕怕的感觉。>
  看有些中文译版的图书,需要把译文按字面意思翻译成原文,再把原文按自己理解翻译回来。
  偶尔这么折腾一下还可以,但如果每页都有那么几处几十处需要这么整就太崩溃了。
  所以有时看原版书会比看翻译版书的速度快,毕竟少了那个逆向翻译的过程。
2010-09-26 16:47:32 OxFAN
  不知道高爷爷看了此书会作何感想..
2010-09-26 18:49:27 AKW
  我觉得是算法好不一定会成为大牛,但是大牛一定数学好。不管是自学成才还是科班出身,真走到了那一步,应用数学绝对都是一流的
2010-09-26 20:13:11 figure9
  @OxFAN
  这本书里访问的最后一位人物就是Knuth,有时间的话可以阅读下
2010-09-26 20:31:32 figure9
  @AKW
  很难说数学对编程的作用到底有多大(当然某些领域里确实需要大量的数学知识,比如计算机图形),没有什么证据能表明良好的数学基础和优秀的编程能力这两者是相关的
  很多所谓的大牛都推荐Knuth的TAOCP,说是把那本书看了就天下无敌之类云云,然而这Coders at work书中的大牛们,除了Knuth本人,没有一个人把TAOCP看完过,他们认为比起清晰的表达能力和对问题的理解能力,数学并不是那么重要。援引Armstrong的话来说:“If you're not good at English you would never be a good programmer”
2010-09-26 20:47:05 AKW
  但是你尽管放心Armstrong的应用数学一定是程序员中的一流水准,他只是认为英语是成为优秀程序员的充分条件,我的意思是数学水平好是优秀程序员的必要条件。
  我相信那帮牛人虽然没看完TAOCP,但是他们的算法素养一定是一流的,不需要再看了
2010-09-26 21:07:41 OxFAN
  那得看一下..
  ls的说法偶比较赞同..
2010-10-08 16:03:24 adora
  嗯。。比较赞同@AKW
2010-10-10 01:02:51 leo
  我感觉算法是在需要的时候才产生的,而不是用算法去解决所遇到的问题。细节问题,算法也解决不了,不信就看看算法导论,哪一个算法能够直接运行起来?现在的算法就是历史实践的总结。
2010-10-14 15:41:53 Liber
  越看越迷茫。85后的程序员生错时代了吗?````
2010-10-20 15:31:21 天井
  不能用个例能证明标题啊。。。作为一个普通程序员,不熟悉数据结构,算法连份好工作都难找。计算机科学越深入研究会越发现数学的重要性,不然大部分资质普通的人只能沦为码农
2010-11-02 17:01:59 rosemarychen
  我感觉算法是在需要的时候才产生的,而不是用算法去解决所遇到的问题。细节问题,算法也解决不了,不信就看看算法导论,哪一个算法能够直接运行起来?现在的算法就是历史实践的总结。
2010-11-13 12:46:15 figure9
  @rosemarychen
  恩,非常赞同。
  我这篇文章的意思就是反对刻意的去学习算法。
  基础的算法在实践的同时自然就会了,高级的算法可以在有需要的时候深入研究。
2010-11-23 23:19:49 知北游
  程序=指令+数据结构
2010-11-28 18:25:32 guancheng
    我要站出来批评一下这篇评论的标题:“去他的算法内功基础,对于程序员,实用主义才是王道”
  这个观点绝对是错误的。表面上这句话好像抓住了“实用主义”的大旗,但是楼主却借此抨击算法等基本功的重要性,太误人子弟了。就拿Google Fellow Jeff Dean来说,他绝对算得上是实用主义的大师了吧?可是如果你去看看他关于Google整个系统架构演变过程的讲座,你就会发现把Google的那些诸如MapReduce、GFS之类的看家法宝化繁为简之后都可以还原成最基本的算法、数据结构之类的问题!Google整个架构的发展也是根据需求的变化而产生的,MapReduce之类的不就是在遇到需要解决大规模并行编程这个问题时产生的实用的解决方案吗?没有扎实的基本功它能被设计出来么?哪一个大师没有扎实的基本功?哪怕是你说的Jamie Zawinski,如果他算法基本功没有十分纯熟他能被称为大师么?别以为他标榜实用他就没有扎实的基本功了。
    我的观点是,想真正成为杰出的程序员,没有扎实的基本功是绝对不可能的,因为你会发现当你需要解决一个没有现成答案的问题时,你的基本功就是最可信赖的武器。所以,如果你不想只做一个码农,好好学好算法打好基本功是绝对值得的!当然,如果你只像做一个只能靠google搜索答案过活的程序员,就当我这话没说。
2010-11-28 20:42:01 AKW
  首先ls说得不错。
  ==========================
  2010-11-13 12:46:15 figure9
  我这篇文章的意思就是反对刻意的去学习算法。
    基础的算法在实践的同时自然就会了,高级的算法可以在有需要的时候深入研究。
  ====================================================
  平时不注意学习算法,加强基本功,没有一定的数学基础等遇到问题的时候再去刻意钻研所谓的“高级算法”是根本来不及的,甚至是不可能的。
2010-11-28 23:36:44 figure9
  回LS的两位:
  你们所编写的实用程序中都能用到什么算法呢?除非你是算法工作者,否则9成以上的"算法"都是数组+排序+查找吧?用这些东西的时候你会自己写还是直接调类库?你能保证写出一个准确的bsearch或是qsort出来?
  我的意思是在编写程序中学习算法,我也不否认算法的重要性,我只是认为没有必要把算法作为编程序的先行条件。
  你们一直说要学习算法,加强基本功,好吧,那你们是通过什么途径来学习算法,加强基本功的呢?
2010-11-29 00:34:40 guancheng
  诚然,80%的程序员只需要调用现成的算法库过活。当你面对的问题已经被前人通过算法库的形式解决了时你自然会觉得不用自己写qsort,不用自己写红黑树。但是,对于有志成为那前20%顶尖程序员的人来说,你会说算法、数据结构不重要么?
  回到这本书的主题,毫无疑问这是一本大师传授经验的书。我想这本书的读者大都是有追求编程更高境界的诉求的,而你这个标题显然违背了本书的主题,所以我建议你改掉你这个标题。
  中国的程序员普遍浮躁,难得有这样一本好书出来可以帮助大家知道国外的顶级程序员是什么样子的,怎么修炼出来的,你却在这里大声说”算法这些基本功不重要“,情何以堪?!虽然你评论本身内容不错,可是标题太误人子弟!你看看这本书,哪个大师不是编程十几二十年以上的?他们的基本功可能差么?!
> 我来回应

本评论版权属于作者figure9,并受法律保护。除非评论正文中另有声明,没有作者本人的书面许可任何人不得转载或使用整体或任何部分的内容。

在哪儿买这本书? · · · · · ·

>Coders at Work

Coders at Work
作者: Peter Seibel
副标题: Reflections on the Craft of Programming
isbn: 1430219483
定价: USD 29.99
出版社: Apress
装帧: Paperback
出版年: 2009-09-16
书名: Coders at Work

figure9的其他评论 · · · · · ·

>全部评论(6)

© 2005-2010 douban.com, all rights reserved 关于豆瓣 · 在豆瓣工作 · 联系我们 · 免责声明 · 帮助中心 · API · 手机豆瓣 · 品牌俱乐部

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics