你能从这本书中学到什么?
2012-11-05
本人才疏学浅! 正如书名,珠玑编程中的精华部分!我必须承认有句话叫仁者见仁智者见智!我不想驳斥任何人的观点,所以不喜勿评!先说点题外话本人是个前端开发人员对C/C++这等底层语言很是崇拜,可能不如写这类底层语言的大牛小牛你们专业。书回正传,我曾google百度下这本书想真正的传达什么思想?如果真的是本算法书籍!我想书名肯定不会这么叫,我发现很多评论或者读后感都在讲这书如何如何牛X,如何如何字字珠玑!我想正在看评论的你会问“楼主,你怎么看?”。
本书三个部门,1、基础 2、性能 3、应用。别着急我慢慢分析书中内容,咱先说基础部分,基础部分5章(开篇、啊哈算法、数据决定程序结构、编写正确程序、编程小事),当我第一次看目录的时候我也觉得每章之间没有任何关系,可以挑你喜欢的看,但我本人的习惯就是从头到尾,当我读完第一部分的时候,先不说里面有些算法如何精妙,我对第一部分最大的领悟就是它在教你怎么针对一个编程问题写好一个正确不冗余的程序。开篇我们可以理解就是正确沟通前提下正确的理解问题,如果一个问题你理解有一点失误可能导致的就是后续所有工作功亏一篑。在理解正确的前提下,你要考虑一个精妙的算法,‘懒’程序员往往不会先动手去编程,他们往往会想出至少两个解决方案,第三部门就是明确算法之后我们要用一种数据结构或者多种数据结构的组合来设计程序结构(数据结构决定程序结构),注意到现在我们还没有开始具体的代码实现,一切可以用伪代码勾勒在你的纸上,下一步就是写代码了(你最喜欢的一部分),第四章tell你如何写出正确的程序(具体内容例如断言等技巧),既然写完了初步程序你需要保证程序的正确性!第五章就讲了如何利用脚手架测试你的程序,书中经典的二分算法就是其中例子!第一部分到底讲什么呢?自己总结下吧!
第二部分,首先我还要说我是一个前端攻城师,性能这章我觉得就是告诉你在程序正确性保证的前提下,我们要考虑如何高性能的跑起来!老实说作者当年所处的时代是个内存低,CPU差的时期!性能这块是个硬伤!在这个随处可见8G内存的时代(当然32系统的用户咱不敢恭维,当初串个机器的时候见一哥们买了两个4G内存,说回家装个XP,另外XP上的IE6容我fuck一下),CPU随处可见双核甚至4核(你电脑不是双核你都不好意思出门跟人家打招呼)。性能已经不是程序猿的主题了!加上商业时代,雇主也不会多花精力搞这个,赶紧卖出去就完事!不过你还是多看看怎么实现时间和空间双盈的算反,没准microsoft、google让你面试呢。
第三部分,扯犊子扯了半天第三部门章节误导了一些高人!他们看了目录就认定这就是TM的算法书籍你看看,11章排序(这不明显是搞算法的嘛?)12章取样问题(这不是算法跟数学的巧妙结合吗?)13章搜索(这不也是算法问题嘛),等等。我想说第三部门主题是应用!它告诉你用前面思考编程方式在具体每个章节实现,用他前面教会你分析问题,定位问题,选择一个实现过程和一个好的数据结构,编写代码,测试and so on。
所以我认为本书形散神不散。