《大道至简》读后感
经过一周左右时间,读完了《大道至简——软件工程实践者的思想》,这本书与其他编程类的书籍不一样,没有繁杂的代码,非常“薄”,但是所述内容以及对编程人员的作用不输其他任何书籍;我觉得由于时间较短阅读不细以及自身所学广度受限,未能对全书所有内容理解透彻,但还是让我受益匪浅,虽然对团队、工程、项目部分章节理解不是很深,但是对于编程部分让我对编程有了全新的认识。
开篇第一章周爱民先生把“愚公移山”和编程进行了对比,直观阐明了编程的根本:顺序、分支、循环,以及编程的精义:把庞大的工程通过简单的编程加以实现,正如我们的建民欧巴反复强调的:编程是要把复杂问题简单化,简单问题顺序化。
原来我在学习C/C++时,如果编一个简单的小程序,只需要几行最多十几行代码时可以根据课本上的例子“改编”出来但是一遇到较大的程序,需求增多,就会变得毫无思路,这就是因为没有掌握编程的精义,还停留在简单问题套模板,复杂问题不会编的阶段,所以必须掌握其精义。
在会不会写程序的问题上,周爱民先生解释除了先天智障或后天懒惰者外,都是可以学会写程序的,我想到最初的自己怀疑自己能否学会编程以及一些因为惧怕编程而称自己学不会的同学,都是自己对自己的放弃,只要肯学,就一定能学会。
最初用C/C++写代码时,最先的反应就是这个需求老师有没有讲过,课本上有没有相近的例子,有的话万事大吉,没有的话就只能……,周爱民先生提到了一个公式:程序=算法+结构,书中有这样一段话“算法是对一个程序的逻辑实现的描述,而结构是逻辑依附的数据实体。只要开发人员将程序的算法设计出来,把结构描述出来,那么程序就已经定型了,剩下的事,简言之,就是劳力活。”这就是对公式解释,所以编程的第一要务就是先把事情分析清楚,事情先后的逻辑关系和依赖关系搞清楚,再去用代码加以实现。
对于编程语言,没有会不会的问题,只存在喜不喜欢的问题,因为任何一门语言的底层函数库都是相似的,只要学会了一种语言,其他语言学起来也就很容易了;还有就是语言的优劣问题,经常有同学说C/C++重要,Python/Java好用,现在编程语言种类繁多,我也犹豫过应该学习哪门语言,但是事实上语言并没有好坏之分,只是不同语言的适用范围不一样罢了,所以对语言的选择要根据自己想要从事的领域去选择。
周爱民先生在第二章中,我认为主要传递给我这样一个思想:要勤于思考,用愚公和李冰作对比诙谐的指出,这个世界上,有勤快人就必然有懒人,有懒人也就必然有懒人的懒办法。正是这些懒办法促进了社会的进步。
二是学会把所学到的知识分类,归纳整理,放在脑子里;正如书中提到的那位学员一样,许多同学学习编程,理论课学的特别好,但是一动手编程就会无从下手,就是因为知识是学进去了,就是不知道这些知识是干什么的。所以我们在学完后,要对知识加以整理、归纳。
整体来说,这本书还是让我学到了不少的东西,时间仓促且还未进入职场,对于部分内容还难以理解,在以后,还会对此书进行反复阅读,以求更大的收获。