关闭

《Algorithms 》书评《大家好,我是译者 》

标签: 算法javaapi编程语言
566人阅读 评论(0) 收藏 举报
分类:
中文译稿我刚刚交上去不久。至于这本英文版,我绝对力荐。这是一本非常适合于自学以及作为教材的算法书。和它相比,清华的什么算法教材简直就是给原始人看的。它有什么特点呢?
  1、基础而全面:前两天看到Quora上的一个问题:你觉得最天才的算法有哪些(http://www.quora.com/What-are-some-of-the-most-ingenious-algorithms-in-computer-science)?大家仁者见仁智者见智说了很多。但如果你真的想弄明白他们说的这许多算法的过人之处,这本书会给你答案。
  2、图示清晰易懂:随便翻开这本书的一页,你会看到什么?图,图,还是图。这本书之所以厚,示意图多是一个主要原因。看完全书,纸上全是字的页码非常的少。和国内教材的枯燥说教相比,这本书的图示可以让你从一个全新的角度理解以前你可能已经学习过的许多算法。
  3、代码量少:Java成为新一代的教学语言是有原因的。Java的面向对象以及垃圾收集等特性使得读者和学生可以最大限度的将注意力集中到算法本身上去。这本书中的所有代码都不超过一页,只有很少的几处会有连续两、三页的代码,但每一页也都自成体系。这一点我非常欣赏,因为翻页会中断读者的思路。
  4、数学要求低:看过《算法导论》么?看过《计算理论》么?里面的证明是不是很让人抓狂?这种事情在这本书里不存在。这本书是从一个“实用”的角度来看算法。什么是证明算法有用好用实用的最好办法?除了理论上的保证之外,实现的简洁、运行时间的数字才是王道。这本书里用的最多的就是数学归纳法,因为很多代码都是递归的。很少的地方用到了概率论。只有最后一章讲了一个比较深奥的Cook-Levin定理。不过说实在的我觉得作者并没有讲清楚,读者记住结论、领会精神也就好了。
  5、API设计:书中所有的算法都有一份自己的API。作者在书中实践了“契约式”编程,并向读者展示了这种方式的妙处。关于API设计,作者也总结了一些原则,并用Java的标准库中的一些类做为例子进行了分析。这些分析无论是对刚刚入行的新手还是对老程序员都是非常有价值的。
  6、科学方法:这一点才是这本书的精髓。为什么这么说?因为中国学生缺少的正是这些。不要觉得第一章有250页,而其他讲解具体算法的任何一个章节都没有第一章长,就觉得第一章是在浪费版面。作者在第一章之中为全书打下了基调,而科学的方法就是其中最重要的部分。所有算法的讲解方式,都遵循了“猜想-实验”的循环。这是人类探索自然的方式,也是科学研究的方式,也是我们所缺少的“科学精神”。
  
  不足之处:
  1、大部头,太厚了。英文版有900+页,中文版肯定也不会薄,让读者第一眼就有点泄气。
  2、有时候有点罗嗦,但这一点在中文版中会得到改善。
  
  总之,这是一本Amazon上的五星书,价值毋庸置疑。Amazon上的另一份书评(Kevin P. Murphy写的)也很好的总结了这本书的特点。如果你想学习算法而又不知道从何开始,或是已经有一定基础但又不愿意纠结于数学细节,我强烈的向你推荐这本书。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:935217次
    • 积分:12122
    • 等级:
    • 排名:第1196名
    • 原创:227篇
    • 转载:706篇
    • 译文:8篇
    • 评论:69条
    文章分类
    最新评论