本周我读的书是美国Jon Bentley编写的《编程珠玑(第二版)》。说实话,这本书里面所提出的问题,大都需要我去细细思考,仔细揣摩,有时候作者轻描淡写的几句话,我也要思考一段时间来体会其中的算法思想,一星期读完只能说是囫囵吞枣吧,而且再加上有软工结对编程的压力,所以以后还是要细细研读的。这本书使我印象深刻之点就在于,作者总是通过一些程序设计的小问题小例子来介绍编程的思想与技巧,尤其是作者所讲的关于关于编程的思想,关于一些基本的算法,总能让人收益匪浅。
这本书的一开篇作者所介绍的关于磁盘文件排序的问题估计让很多读这本书的人都印象深刻吧。当我乍一看到一个如此大的排序问题时,我也感到难以回答,紧接着跟着作者的思路一路读下去,虽然对于作者提到的一些类似于“位图数据结构”、“多通道算法”的名词不了解,但是我还是被作者从问题中提炼出深刻而有意义的教训的能力所折服。同时,作者所说的仔细分析小问题会带来好处,恰当的问题对解决问题有很大帮助的道理对我们的编程甚至于我们人生处事都是有极大的帮助。这也让我从第一章开始就对这本书有了很大的兴趣。
作者在这本书中提及了一些对于程序员来说比较基础的算法思想,例如二分法、排序、标签等等。我个人感觉作者比较强调二分法,。二分法对于我来说也是很熟悉了,早在c语言的课上就已经学过了。而跟随着作者读下去,仿佛有了更深的理解。作者从第二章“啊哈,算法”引出了二分法并介绍了二分法的好处后,在第四五章又详细地介绍了二分法及其程序实现,而在第九章代码优化中又对二分法的程序进行了优化,可谓是对二分法情有独钟了。而我也在作者的引导下,再一次熟悉了二分法,它也成为我在读完这本书后扎根在我脑海的词之一了。熟悉的同时,我也在牢记作者强调的二分法的灵活的运用,以及算法转化为代码时注意要点,还有测试调试手段的应用,让我收益很大。
这本书的作者擅长用一个个小故事小问题来向我们展示丰富的编程方法和算法思想,不是很难但是十分启迪人思考,的确和书名一样是字字珠玑了。唯一的遗憾是由于翻译的原因,有些地方确实有些晦涩难懂短短一星期的时间确实很难将这本书真正理解,而这一星期的学习让我对这本书产生了十分浓厚的兴趣,看的很入迷,今后有机会定要将这本书在拿出来在细细研读。