《大道至简——软件工程实践者的思想》读后感
世界“虽变化万端,而理为一贯”,作者用幽默风趣的语言,在短短一百多页书中,体现了对软件开发的思考与研究。能使用来解决问题,并且明白其中道理的,或许这才是学术研究的最高境界吧!
作者在“编程的精义”中,提到“除了先天智障或后天懒惰者,都是可以学会写程序的”,这似乎把编程说的过于简单,但作者的说法我是完全同意的,勤奋的确可以弥补天分的不足。对于“程序=算法+结构”的了解,让我在读完这本书之后,认识的更加深刻了,公式里没有代码,存在的只有思想。在关于李咏和愚公的对比中,作者强调了在有限的精力中,提出新的“方法”,解决问题是极能提高做事效率的,于是有了文件。关于作者对程序中包不包括方法的思考与讨论,提出了“单元”和“模块”才是做程序的关键,以及“工程”的出现,让我对写程序这件事有了更深刻的认识,也试着去思考。
另外,在书中提到的那个成员的困惑,正是我现在的窘境。学习编程已经有了一年的时间,虽然不敢说做过多少题,但真真切切是一直在努力尝试着去多方面了解它、走近它,结果对“怎样写程序”还是一知半解,没有清晰的概念和思路。就像书中所写的那样,学了,也把知识学进去了,就是不知道这些知识是干什么的,或者,不知道各种知识都可以用来干什么,脑袋昏乎乎的,不知道从哪里开始,也不知道如何做程序。作者的解答,以及后面书中提到的方法:将知识分类、归纳,都对我很有启发。
在团队做项目中,作者也进行了深入的分析。前期预估、团队合作、环节监督、及时改进都是做项目的关键步骤,并不仅仅只有管理。当然,公司规范的管理和健全的体制同样重要,但组织中团队成员的角色定位和明确分工,同样是机构运行中,减少错误的重要保障。另外,在开发人员与客户的沟通问题中,作者也有独到的见解。“最简沟通”给我留下了很深刻的印象,一个月只沟通三次,并且只有一次面谈,却又不会减少沟通,而是提前做好全方位的了解之后,对客户进行提问,这种做法显然是可以提高工作效率,同时又减小了项目失败的可能性。作者提到的对代码的历史记录,我认为对个人而言,这是一个好习惯,对团队而言,这种做法对合作是很有利的。
工程只是一种实现途径,而不是死模型。编出程序、解决问题、完成项目才是目的,并不是流于形式的做工程。书中提到的过程模型中,瀑布模型和V模型的形式虽然不同,但本质一样。所以说,做项目应该是在大致方向中摸黑前进。在作者第一次正视“软件工程”这四个字时,列出了代码、方法、过程、工程与组织的关系,总结竟是一句“语言只是工具”,我想,这就是学习到一定阶段之后的通透吧!
软件工程体系的层次图,形式看似简单,却都是精髓所在。出于对软件开发的本质需求——实现的需要,而设计的物理模型中,将结构分为过程与单元的出现和记录与对象的出现,这一点可以看出:方法是对既有行为的归纳总结。
因此,在之后的学习中,我要坚持将知识分类、总结、归纳,不懒惰,做到知其然,也知其所以然。在这本围绕思想进行阐述的书中,我学到了很多深刻而精髓的知识,受益匪浅。对下一步的学习有了更精确的目标,在努力学习的同时,不能固步自封、过于死板,要及时改进,灵活运用所学到的知识,来解决更多的问题。这是一本很有价值的书,其中的很多地方,还是现阶段的我所不能理解的。所以,若干年后,我一定会再拿起它来思考。