作为一个准大二的软件工程专业学生,假期之初专业课老师让我们读一下《大道至简》这本关于软件工程学科的书,并且写出自己的读后感。
老师是从QQ上传文件过来的,看书之前看了看目录,然后感觉可能是出书的时间比较早,所以里边提到的一些东西比如——Delphi、Coder等不是太了解,甚至可以说是都有听说过。
开始读之前我是不认为这本书能够把软件工程这门学科讲完讲清楚的;不过,读完后发现整本书可以说几乎没有一句废话。全书周先生很少引用编程的实例为大家进行举例,而是全是感悟与心得。(
然后说一下读完这本书总体学到的几个方面知识的心得:
- 编程的精义:看到编程从面向过程到面向对象的变化,从复杂拖沓到简单精确。突然发现确实如周先生所说:编程无非就是对循环、顺序、分支的利用,来来回回在复杂的程序也确实就是这三方面组成。
- 是懒人造就了方法:这里提到的“懒人”并非现实中真正的懒人,在我认为应该是肢体上的懒惰但是确实脑力上的勤劳,正是由于这些人的善于思考才允许他们肢体上有少于常人的劳动,但是到最后却能做到事半功倍效果。
- 团队缺乏的不是管理+流于形式的沟通:书中在对团队的阐述中提到“三人成众”的团队理念,一个人或者一个从(两个人)、孤胆英雄或者双飞侠客往往只有在小说里出现,而真正的成功却离不开团队。
- 失败的过程也是过程:俗话说失败是成功之母。书中提到真正的“大牛”也不能保证在工程完成的期限时准时交工,我认为这也是非常人性化的,因为在写程序的过程中都会出现或多或少的错误,而我们需要做好的是不断将其改进完善。或许有人可以做到一遍就过,但是毕竟是极少数,而且我认为这种作品出来也不会比那些经过精雕细琢的作品要好。所以失败的过程也是过程,是迈向成功的过程。
- 是思考还是思想:关于书中提到的这一点我认为并不矛盾。前文中也提到了编写作品时要有自己思考的过程,而思想我认为就是经过i+1次的思考过后形成的自己做事的方式方法。
然后说说我的个人感受部分吧,在之前我学习编程的一段时间内吧,遇到问题的时候总是看看之前有没有遇到类似的问题,然后就慢慢的习惯了机械式的学习。看了这本书之后我感觉这样学习的方式是不对的,它会慢慢的让我的思考能力丧失。之后我再书里找到了解决的办法。里面提到这一点。“编程=算法+结构”。对,这公式巧妙的把代码绕了过去,一个好的编程重要的是思考的过程其次才是涂鸦式的代码。算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体。这样在拿到一个程序后,第一反应就不应该是“诶,这道题我没见过,我不会做”或者说“这道题之前不久就讲过,我懒得去做”,而是重新去思考,实现这一程序要求需要哪几步,每步需要用到用到什么算法等等。
以上仅代表我个人对此书的看法。总的来说,我认为《大道至简》这本书是对软件工程这门学科整体思想的一个概述。