大道至简 知易行难
复杂的事情简单去做,简单的事情重复去做,重复的事情用心去做,长期坚持,自然功成。——引言
在老师的建议下,我利用暑假前两周的时间系统的阅读了周爱民先生的《大道至简》,这本书的宗旨正如作者在书中提到的那样,他只想写一本“阐明软件工程的思想核心”的书。这本书要让读者很容易就读明白,还要很容易就想通,还要很容易就知道:工程其实很简单,只是大家把它做复杂了。
书中写的是作者在实践中总结的经验和道理。作者对软件工程相关的问题有许多感悟,并且能够生动的表达。这本书中最可贵的就是思想,仔细体会就有不一样的启发。我在这里列举书中的几个观点:留下历史记录,记录下自己的决策过程等,方便后来者;经验,是源于对过去的思考,而不是对过去的复制;不要压抑你团队成员的激情,他们提出自己的想法之后,要鼓励与引导,即使你认为不合理,或有错误,也要以引导的形式,或者干脆让他去犯这个“小错误”,从而让他在这个上面有更深刻的认识与印象。
由于自己还没有接触过公司的团队合作,没有参与过大型团体项目的开发,所以对于书中提到的“团队“的认知还较为浅显,在这里只是稍微提一下自己对于”团队“的理解。一个团队不但要有远期的目标,即共同的愿景;而且对短期的目标也要清晰,即里程碑。一个团队要注重整体目标,从全局把握上,某一局部出现问题之后,要能尽快发现,并迅速调整。
接下来我想提一下自己对于书中提及的”程序算法思想“的理解,目前我们已经系统的学习了C和C++,正处于自学JAVA阶段,对于计算机的编程语言也算是有了初步的了解。正如周爱民先生所说的那样:编程的根本——顺序,分支,循环;程序=算法+结构。所以编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。积极工作和勤于思考都要占时间。算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体。
大一所接触的代码虽然较为简单,但是也有了一定的编程基础,正在逐步养成自己的编程习惯,《大道至简》这本书中提到的编程思想对我们来说无疑是指路明灯。对于大的编程算法——化繁为简,循序渐进。这意味着,也许可以,从这些小单元开始,启发式的构建逐步复杂化的过程,在头脑中有自己的清晰的逻辑思路,从而能够循序渐进的学习算法,完成算法。而不是一开始就直奔大型算法而去。
接触的编程语言多了之后,难免会将之进行比较,比较哪一种编程语言编写代码更为便利。在《大道至简》这本书中便给了我们答案:语言最重要的是设计目标。 设计目标决定了它用来做什么效率最高。而从程序员的角度来看,选择语言的标准,就是能够最高效的表达自己的思想。所以语言不分好坏,只是哪一种更适合罢了。
总之《大道至简》这本书总结的非常好,其中的一些想法一看就是多年经验的沉淀,虽然目前自己阅历较少,不能完全理解书中的某些观点,但是对于自己的算法思想还是有了很大的改变。大道至简,知易行难,明白认知事物的规律道理是一回事,能够做到做好是另外一回事,让我们在今后做人做事过程中,时时记住并体会。