阅读笔记——《大道至简》1
放假前,我们主任向我们推荐了《大道至简》这本书,可以说这本书是每个软工人必读的一本书,它更简单通俗的阐述了编程的含义。比如,书中说“有且仅有三种执行逻辑:顺序、分支、循环。”极简单的一句话,甚至于那一瞬间我对这个观点是质疑的,于是我想要找出一个反例来,但是想半天也没想出来。毋庸置疑,这句话可以说是极为准确的,在复杂的编程也不过是这三种逻辑的叠加、嵌套。所以从这里我体会到了《大道至简》这本书的第一个特点“精”。除此之外,这本书也是比较通俗易懂的。由于专业名词太多,我一直觉得编程是一个比较抽象,但是这本书将愚公移山的例子引用其中,将程序与愚公移山一一对应起来,却毫无违和感,这对我之前的认知有很大的改变。这些也是我对书中影响最深的部分了。对于之后的项目管理工程等的部分,由于我还未接触过,所以我只是有基本的理解。
“愚公移山”虽然是一个可执行的程序。但是只靠“凿”的话,效率肯定不会太高。而李冰却积薪而烧之,不仅效率高,而且相对于愚公的“凿”来说,劳动力度可以说是大大的减少了。这就是“懒人创造了方法”。在我看来,愚公的方法类似程序设计中的面向过程,而李冰的方法类似于程序设计中的面向对象。在我们的课程中,先学习的C语言,然后才学习的C++。c语言是面向过程的语言,c++是在c语言基础上增加了面向对象的部分。我以为是我先入为主的概念,所以即使学习了面向对象,但我还是偏爱通过面向过程的方法来解决问题,即使大多数时候面向过程比面向对象要麻烦些。就比如之前的小学期的作业,如果脑子中没有刻意的想到“类”,我就容易直接忽略,记得当时我的“剪刀石头布”、“下棋”这两个游戏类都没有用类来封装,老师知道后,又让我把这两个程序重新写了一遍。但是这过程中,我自己是明显觉得用类封装的方法不如之前的顺手,因为过程中出现了几处错误,经过了好几次调试才出来,直到这时,我意识到我喜欢用面向过程来解决问题,与其说是先入为主,不如说是因为我根本就没有掌握类的使用。而这个类的使用或许就是所谓“懒人的方法”。
个人感受:在我们这个阶段,程序还没那么复杂,所以或许类的优势没那么明显,但是,以后的工程中动辄就几万行代码,这个时候在通过面向过程来解决就是非常不明智甚至是愚蠢的行为了。所以掌握面向对象是非常重要的,从现在开始,我就主要锻炼这方面的能力。要求能熟练的掌握并运用类这一捷径。这也是这本书给我最大的教训与反思,也是我最大的收获。