《大道至简》读后感

发布时间 2023-07-28 22:35:41作者: po3a

北海虽赊,扶摇可接  

                ——读《大道至简》有感

阅读完周爱民先生的《大道至简》,感悟颇深。如果说此前是我一人在软件工程的探索过程中踽踽独行,那么这本书则是另一个结伴而行的思考者,他只是娓娓道来他的想法,幽默的、理性的、实际的,然后一点一点描绘出软件工程最简洁抽象结构。

此篇为我浅薄之见,为能够全方面感悟学习作者的思想,我将我的读后感按目录分为八个部分。

编程的精义part

在编程的精义中,作者借愚公移山,讲述其中的顺序、分支和循环,这是编程的精义——庞大的工程源自于一个个简单的编程。然后作者探讨了会不会写程序的问题,这里让我感到震撼的品质是“折衷”,在此之前,我从未思考过这个品质,甚至一度认为它会对程序设计产生相反的效果。接着,对编程进行剖析,进而语言。

读编程的精义让我感悟最大,此前抽象如迷雾的编程突然向我展现出它最简洁的结构,“所谓编程实际上是把一件事情交给计算机去做”。“编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。”

“‘程序 = 算法 + 结构’。这个公式的精彩之处,在于它没有任何的地方提及到 Code。甚至可以说,在这个公式里,代码是不存在的。 存在的只是思想。”

曾经的我将编程当作程序的主干,缺少了对思维的训练,那么所有的学习岂不与训练反射弧无异,现在想来实在可笑。“悟已往之不谏,知来者之可追”,既然已知方向,那么我会重视对于思想的培养,重点转算法思维和结构逻辑,同时熟练语言,相信能对将来软件工程的学习有帮助。

是懒人创造了方法part

“人的精力终归是有极限的。提出新的“方法”,解决的将是影响做事成效的根本问题。”正如书中如说“程序 = 算法 + 结构 + 方法”,简单地写一大堆程序,不如有一定方法地将其完成,正如“过程”和“单元”能够简化程序设计,我曾经没有“方法”的概念,更没有很好地运用现成的“方法”,在以后我会学着使用“工程”的方法,优化程序设计的效率。

团队缺乏的不只是管理part

团队的基本特性:主从、监督和责任。作者讲了一个精简的团队模型——R模型,阐述了角色的重要性。虽然我还没有过团队经验,但是通过阅读,我对团队的概念有了较为清晰的的了解,在团队中,每个人都有团队赋予的角色,而我们作为这个角色,或管理,或交流,或开发,都不能脱离角色而进行生产活动,同时不做其他角色的工作,明确分工,各司其职,才能成为一个良好的团队。

流于形式的沟通part

这一章作者主要介绍了有效的沟通。读完之后我觉得有效的沟通即是能够解决当下问题的沟通,能够为项目服务的沟通。无论是与客户的沟通,还是团队之间的沟通,抑或后期项目维护,我们需要明白我们的共同努力是共同服务于项目的,要在交流时考虑大局,尽可能使用一些能够让与之交流的对方明白我们言中之物,这样才能做到高效与低耗时。

失败的过程也是过程part

从最开始从我们编程开始我们的目的就是实现一个东西。

我们编程的主旨:不是去完成做这个工程的各个流程,而是借鉴前人成功的经验,运用于自己的团队,最终实在这个项目的功能。简言之,我们需要过程,不需要过程的空架子。若我们做项目只是去重复空架子,而忘记了实现功能的目标,那无异于买椟还珠了。做项目要时刻谨记工程不是做的,是组织的。

从编程到工作part

工具只是工具,工具的产生是为了完成“实现”而存在的,我们工作中的编程工具,抑或是工作中的团队组织模式都可以看成是抽象的、用来实现“实现”这一终极目标的工具。

现实中的软件工程part

除了软件本质力量的推动之外商业因素也推动着软件工程体系的发展。”如果你的角色是项目经理,那么你要去维护团队运作的资本,只有这样才能维持住项目。评价方法好坏的标准只有一个:节约成本。

是思考还是思想part

回归前边所述:程序、方法、过程、工程、组织,这一切都无法脱离软件工程的规律。“明白‘为什么要这样’或者‘为什么不是那样’。这在软件开发中是常见的问题,大多数人不知究竟地使用着技巧和方法,而一旦出了问题,则归究于这些技巧和方法的不好。而真正的问题在于,这些人(我们通常叫做 Copy&Paster) 并不知道这些技巧、技术和方法的原理,因而不知道变通。也不知道回避错误。”

软件工程是活的,但想要知道其真义,需要我们知晓他的基本,才能更好的做软件工程,所以今后应该回归底层,不忘初心。