《大道至简》读后感
读这本书给我的第一感觉,就是很薄。作者在前言中写到他只是想写一本“阐明软件工程的思想核心”的书,也提到他在出版前考虑书薄一点好还是厚一点好。在我看来一本书只要内容充实并且达到了作者出书的目的,便是一本好书。很显然,《大道至简》这本书是一本好书。
我目前处于刚刚入门的阶段,只学过C、C++。匆匆读了一遍后还是有所收获的,有一些词留在了脑海里。这本书共八章都很精炼,作者主要是通过一些例子来阐述他的观点。
第一章 第一章中作者引用了愚公移山的例子来说明编程的精义,他将编程说成是一件劳力活。当我们跟着作者的思路来分析愚公移山这件事,发现确实将其方法放在任何一个项目中,都是一样适用的。做一个工程时,需要了解需求,确定沟通的基本方法,然后确定项目目标。通过愚公移山,可以清楚的看到编程的根本:顺序、分支和循环。愚公移山也证明任何庞大的工程都是可以通过简单的编程来实现,作者也指出这就是编程的精义。
在这章中通过作者简单的阐述,让我感觉编程其实没有那么困难、枯燥。写程序其实并不难,的确除了先天智障和后天懒惰者都可以学会编程。只要我们有清晰的头脑,就可以写程序;在程序前认真思考,就可以写出程序。的确写程序并不一件困难的事。积极工作和勤于思考都要占用时间这句活,我们确实应当记住。
第二章 懒人造就了方法,我觉得其中作者还是在强调思考。其中说到如果你书桌上不乱,就会写程序,说的是学会整理归纳自己所学到的知识。
在后几章中,讲到团队、项目管理等。第四章中,讲到与客户的沟通,强调团队在与客户的沟通中,要采用客户可以看懂的方式沟通。彼此的沟通可以用字符来表示,而字符必须是客户所能理解的同时自己也要精通。比如客户是考古专家时也可用甲骨文来画例图和写用例规约。所以在与客户沟通时,只要采取客户与自己项目组都懂的语言就可。
工程只是实现的途径。做工程时,要记住问题的本质,工程不是过程。从工程最开始,我们就要记得我们的目的是“实现”。通过模型可以很清晰工程实现的过程,但过程并不是一成不变的模型。书中提到v模型和瀑布模型,如果将瀑布模型看作拉直了的v模型,那说明你还只是只知其表理。
作者提到语言知识工具,如果开发人员争论语言的优劣那将是可悲的。语言只是我们用来满足客户需求的工具,只要运用得当任何语言都都是优,而没有劣的说法。还有一点我记住的,软件工程=过程+方法+工具。一个工程的是实现要考虑成本,就如作者所讲的蚂蚁例子一样,即使蚂蚁组织的井然有序,一样会面临失败。
这次读这本书,也许我并没有真正的体会到作者的心得,但是在以后的学习中我还会去读它,我相信每次都会有不一样的收获。