周爱民先生的《大道至简》一书以精简的语言概述了作者对软件工程的思想和见解,给了我很深的感触。本书共分八个章节,涵盖了编程、工程、沟通以及现实工作等各个方面,其独特的思考与见解,是我以往学习未成接触过的,因此,我从此书学到了许多。结合自身实际,我得到了以下收获:
一、关注逻辑关系,深度思考。
《大道至简》一书中有许多关于逻辑问题的探讨,如第一章有关愚公移山故事的解读:作者将愚公移山一事看作程序,从其故事的逻辑分析,得出其“不会是一个死循环”的结论。并进一步引出“程序=算法+结构”的思想,指出在此公式中不存在代码,只存在思想的观点。作者后续在此观点的基础上进一步完善,又提出了“方法”的概念。如书中所说,愚公“平山”的方法可以是“凿之”也可以是“烧之”,现实生活中,解决问题的方法也绝不单一,而此方法是否高效便取决于做事之人的思考了。由此来看,逻辑关系可以说是找到解决问题的方向的“捷径”,而思考便决定你的方法是否合格。现实生活中的问题常复杂得多,其表现在许多方面,这往往会给我们带来许多挑战。万事开头难,复杂的问题常常使我们搞不清方向,故而手足无措,此时便不妨想想从逻辑的角度去分析,相信一定会得到满意的结果。因此我认为要更加关注事务的深层含义,并多加思考。
二、敢于尝试,灵活变通。
这本书中讲到“要做过程而不是工程”,认为编程的目的是实现,而工程只是其中的一种工具罢了。这对我来说是一个很新的观点,因为我在编程时,总会在第一时间从脑海中寻找一个适配问题的模板,少有的在意其实现的过程。正如书中所言“过程不是死模型”,我们在生活中遇到的问题从来不是一成不变的,往后我们遇到的问题只会对我们的能力有越来越高的要求,而模板这一死物很显然不能应对这种变化。“失败的过程也是过程”这句话更点醒我们不要害怕失败,要敢于突破舒适圈,只有在不断探索中成长才是真正找到了自己的“活路”。
三、对立思考,高效沟通。
编程的学习离不开“沟通”。这一“沟通”并不仅仅代表与团队成员的沟通,它还可以表现为我们与用户群体的沟通。对于前者,与团队成员的沟通决定了我们在工作中完成任务的时效性。书中提到:做管理不等于做伯乐。明确分工,使各个成员各施其职才是最为重要的。而对于后者,有言“隔行如隔山”,我们做项目的更是要考虑用户的体验,c++和java等语言都有面向对象的课程,这与我们的观点是同一个道理。
四、结合实际,切实分析。
读完此书,再回顾自己以往的学习,更发现以前自己在学习上的不足。我很少做到结合实际情况分析、解决问题,以前所做的课业都只能算作“题目”,与现实毫无联系。代码仅仅是代码,它的实现只是为了答题。没有结合实际,没有思考,这样的练习在我们真正需要借助知识解决实际问题时,带来不了任何作用。因此,如何将知识与实际结合是我要思考的一个重要问题。
《大道至简》这本书给我带来了许多,其中的想法、思考给了我巨大的帮助,它让我对软件开发有了新的认识,让我能够真正以开发者的角度看待问题。