《大道至简》是周爱民写的一本书,但不是一本系统的阐述软件工程的书,是一本结合自己的经验和思考来阐明自己对软件工程的理解的书关于软件工程的一些感想,这本书是作者从事十年开发工作的总结,虽然不厚,却闪烁着独立思考的光芒。这本书虽然不是教你项目管理,软件工程或者编程技巧的书籍,但他是一本闪烁思考光芒的技术散文集。
在编程的精义中,作者引用愚公移山的典故深入浅出的讲解了其中的道理,明白了编程的根本:顺序.循环和分支,庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来实现的。这就是编程的精义了。
就会不会写程序的问题,跟本来说其实在于自己想不想学的问题,只要不是先天智障或后天懒惰者,都可以学习编程。
对于“程序=算法+结构”。这个公式的精彩之处,在于它没有任何地方提到Code。甚至可以说,在这个公式里,代码是不存在的,存在的只是思想。算法是对一个程序的逻辑实现的描述,而机构是逻辑实现所依附的数据实体。只要开发人员将这个程序的算法设计出来,那么程序也就定型了。在所有的算法结构中,有且仅有三种执行逻辑:顺序分支和循环。简单若顺序表,复杂如树,图,他们的算法都是用上面三种执行逻辑来描述的。编程作为一种行为,只需要看清其逻辑方法就可以了。同时我们也应当分析清楚事件先后的逻辑关系和依赖关系,然后再用代码实现,勤于思考也应当占用相应的时间。
语言方面,到目前我们所学到的c++,java等,正如周爱民老师所说的对于任何一种语言,当你熟悉一门语言之后,你会发现,编程语言只有喜欢和不喜欢的问题,没有会不会的问题。任何一种语言,你都可以掌握并开始熟练的编程。因为任何一种语言,他们的底层函数库都是那么的相似,而他们API都是那么的依赖于操作系统。但总的来说都要熟练地掌握一门自己非常熟练编程的语言,要有自己的一技之长,不能贪多嚼不烂。在没有工程的时代中,上面所说的便是一个程序员的全部。掌握一门语言,懂得了一些生活种常见的逻辑,他们用程序的方法思考和学习了一些算法。
我认为这本书是需要反复阅读的书,书中是作者在实践中总结的经验和道理。以及作者对软件工程相关的问题有许多感悟,并且能够生动的表达。这些实践当中的总结十分宝贵,可贵的是思想而不是生动的小例子。我从这本书上学到的一点就是思考问题需要思考的是事物的本质,只有掌握和搞清楚了本质,其他的形才容易掌握。