码迷,mamicode.com
首页 > 其他好文 > 详细

《像一个程序员一样思考》读后感

时间:2016-06-19 15:26:39      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

这学期,我阅读了由斯堡尔(V.Anton Spraul)写的《像程序员一样思考》这本书。事实上由于时间不是很充裕,我只认真的阅读了第一章,后面的章节我大致的浏览了一下。但是,仅仅通过第一章,我觉得这本书已经让我学到了很多的东西。因为这章中的很多东西我之前都没有认真的思考过。从整体上来看,我觉得这本书其实可以被看做是一本高级程序设计语言的教材。不过相比于我们所用的教材,这本书给了我很不一样的感觉,我想对这本书和我们的教材做一个对比。

我觉得这本书最大的特点是更加注重对于思想方法的培养,就像这本书的书名中说的一样。这本书的第一章名叫《解决问题的策略》。在这一章中,作者给出了几个例子,并对他们的解决方案进行了讲解。我们的教材中也有与之类似的一章,不过被放在了最后的一章。通过这两章的对比,这本书注重思想的特点就非常的明显了。在书中作者给出了狐狸、鹅和玉米问题,瓷砖滑块问题、数独问题和Quarrasi锁问题这四个问题和他们的解决方案。事实上,如果在接触编程之前来看这本书,很难看出第一章和计算机编程之间会有什么关系。通过这几个问题的解决,作者给出了解决问题的一般的几个思想,即形式化描述的思想、怎样对问题进行细分、寻找问题约束性最强的部分入手、及类比的思想(分别对应上面的四个问题)。我们用的教材在对应的一章中也通过几个例子来进行了讲解。分别给出了天平检测假金币、二分法求解方程、八皇后问题、快速排序和矩阵连乘积这五个问题,然后总结出了穷举法、局部搜索法、回溯法、分治法和动态规划法。通过对比可以发现,《像程序员一样思考》更加的偏向于一般的思想,而我们的教材则比较偏向于具体的方法了。在这本书中对于瓷砖滑块问题的解决方法(作者称之为“串链”的方法)让我感到非常的有趣,我之前从来没有想到可以这样解决。

在这本书的后面的章节中开始进入了编程语言的部分(以C++作为讲解的语言),对数组、指针、动态内存和类等部分进行了讲解。这些部分在我们的教材中当然也进行了讲解。但相比于我们的教材,这本书感觉更具有讲述的性质,就是感觉是有一个人在跟你对话一样,而我们的教材则感觉看起来有点像说明书了。在这本书中每个部分所举的程序的例子并不多,但是作者对每个例子的思路和解决的方法都进行了比较详尽的分析,相比之下,我们所用的教材在举例子的时候则显得对例子的分析不是很充分,只是给出了代码和其中重要的语法知识。不过我感觉这本书和我们的教材都有一个共同的问题,就是感觉所举的例子有些偏向抽象化(都是求平均值之类的问题)。举个例子来说,当我学完高级程序设计语言这门课之后,我并没有理解数组到底有什么用。直到后来我在慕课网上看了一个关于编写2048游戏的视频教程之后,发现他用二维的数组来表示棋盘之后,才知道原来数组可以这样用。实际上,这个问题应该是对于一个事物进行编码表示的问题,我觉得在教材中应该增加一些这个方面的介绍,可以使人更容易的意识到这些数据结构的作用。

在这本书靠后的部分还有一章介绍了通过代码的复用来解决问题。我觉得这也是本书的一个特点。在这一方面我做的相当的不好。在我们的高级语言编程的课本中没有这部分内容,虽然老师在讲课时经常强调代码的复用性、阅读性和风格,但我还是经常把程序写的乱七八糟,因此我认为这部分内容还是很有必要的。

整体来说,这本书感觉比起我们的教材更加的易读一些,同时也要有趣一些。也可能是因为我已经有了一定的编程经验所以觉得这本书更加的易读。我觉得通过这本书我学到了很多东西,以后会把后面的章节都认真的阅读一遍。

《像一个程序员一样思考》读后感

标签:

原文地址:http://www.cnblogs.com/niuyudong-1234/p/5598004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!