《大道至简》读后感
第一次听说这本书时,根据它的书名,我先入为主地认为是和《道德经》、《论语》类似的、而且应该是那种据理而谈、晦涩难懂的书籍,这样想,还没看已经感到头大了。当我想在网上购买一本便于翻阅时,发现没有。书中也解释了没有出版的原因:书本厚度不够,没有出版社愿意做亏本的买卖,可能我理解也有误,但大概就是这个意思了。于是我打开了电子版,开始阅读。
这是一本关于软件工程实践者的思想的读物,由“思想”可见书中应该不会有很多难懂的代码,再根据大道至简的意思:最根本、最高深的道理,往往是最简洁明了的,"大道"指的是宇宙万物的根本规律或最高真理,"至简"意为极其简单、朴素,这样看来,这本书不会是太复杂的,那么软件工程是不是也是“至简”呢?答案就在最后。
翻开目录,从整体脉络来看,这本书的逻辑非常清晰:从个人编程精义,到团队组织管理,再到工程与思想本质,循循善诱,层层递进。书本首先探讨编程的精义,作者借用“愚公移山”的典故,指出编程的核心精义不过是顺序、分支、循环这三种基础结构。在此基础上,有一个极其核心的公式:“程序 = 算法 + 结构”,并强调执着于语言优劣的争论是可悲的,随后,进一步探讨了“方法”的由来,提出“是懒人造就了方法”。我相信,很多人应该都会把懒视为缺点,而这里却从另一个角度看待。然后,全书的视角过渡到团队层面,作者指出,团队缺乏的往往不只是管理,而是对“组织”和“角色”的清晰认知,在工程开始做之前要先把角色定位好,同时要避免流于形式的沟通,保证每一次交流的有效性。接着进入工程阶段,作者指出,做过程不等于做工程,工程的真正目的是“实现”;最后,知律而变,做灵活的软件工程。
其实书中也有些比较难懂的部分,但大部分都是可以理解的。最令我印象深刻的就是“你桌子上的书是乱的吗”,看似简单平常的问题,作者却引出了更为深刻的工程哲理:“你既然知道如何把书分类、整整齐齐地放在书桌上,那怎么没想到如何把所学的知识分类、归纳一下,整整齐齐地放在脑子里呢?”在过往的学习中,我没有明确的规划和整理,都是今天讲了什么,我学什么,写题碰到了什么,我翻书看什么。一遇到复杂的难题,我就像无头苍蝇,不知道用什么知识,从哪下手,最后都是向AI索要思路。这就导致我的知识体系如同一个杂乱无章的仓库,各种概念、语法相互堆砌。表面上看我学了很多,但真正需要解决问题时,却往往大脑一片空白。书中讲到:正如CISC指令集搅乱了一代程序设计师的思路一样,大量的知识和资讯搅乱了学员的思想,我把精力耗费在了查找上,自认为有了知识就可解决问题,却忽略了没有整体感知连起步都做不到。杂乱无章的知识储备,不仅极大地增加了我的认知负荷,更让我在面对复杂工程时失去了全局观,丧失了独立思考与变通的能力。为了避免再次掉入这样的陷阱,我尝试从以下两个方面重构自己的学习体系:首先,进行归纳和整理。就像整理书桌一样,每学完一章,要进行整理,最后要将学到的知识点进行分类,常用的要特别标记。其次, 在动手敲代码之前,强制自己停下来思考,尝试用简单的思维去拆解复杂的问题。
在读这本书之前,我一直将软件工程想得很复杂,导致自己不敢去做,回到第二段的问题,正如作者所说:工程其实很简单,软件工程并非高不可攀的空中楼阁,它的底层逻辑,不过是我们最熟悉的“顺序、分支和循环”,不必再想复杂的实现,大道至简,只要有自己的逻辑,然后专注眼前,敢想敢做,把庞大的目标拆解成简单的小目标去执行就好。

浙公网安备 33010602011771号