大道至简第二章读后感
如果解决一个问题可以用最简单的办法,我们就可以说,我们找到了最好的办法。对我们写代码的人来说,一味的埋头苦干取编程不可能解决所有问题,我们应该学会试着变懒一些,把更多的时间放在对算法的思考上,寻找更好的方法来解决这个问题,有句话不是这样说的嘛“磨刀不误砍柴工“,,先把自己的小脑袋打磨打磨,当然醉翁之意不在酒,我想说的是武装大脑,勤于思考。对于我们初学者来说,我们不可能一步到位,慢慢来,写完一个程序之后再去进一步优化。
大量的代码如果放在一个文件里,不只是可读性差,而且没有调理,杂乱无章。很快单元文件出现了,有了单元文件,也就很快出现了一个新的概念:模块。把一个大模块分成小模块,再把小模块分成更细的小小模块,一个模块对应于一个单元。于是我们可以开始分工作了,一部分人写这几个单元的代码,另一部分则写那几个。源代码就可以分开了,结构化的编程就此开始。
如果生活是有调理的,那么你可能会养成一种习惯,归纳整理的习惯,在学习的时候我们也应该把知识分类整理在自己的大脑中。我们学的知识要知道是干什么用的。编程序首先要知道自己实现什么功能,然后分解成一个一个的小功能,逐步去实现。
面向过程的方法是可以实现任意复杂的功能的,在没有面向对象时,航天飞机同样也成功上天了。而面向对象是想把问题简单化,面向过程是对“流程“、“结构”和“编程方法”的高度概括。面向对象本身只解决了“结构”和“编程方法”的问题,而并没有对“流程”加以改造。 程序本身就是顺序的,cpu就是按照指令一步一步执行的。“程序=数据+算法+方法”,数据是用来参与运算的,是基础,算法是解决问题的关键,也是对我们的核心代码有很大帮助的,方法就是最后的封装。在面向过程的开发中,过程是cpu提供的,单元是编译器提供的,程序员可以不用再想什么“方法”,就可以夜以继日的进行“愚公式的开发”了。如果不出现面向对象的话,这样的开发可能就一直延续了。
在我们的程序开发中,方法不止一个,对于缺少经验的我们来说,更是不可能一下子就找到最好的方法,我们首先要做的是写一个程序把那些功能基本实现,最后再进行优化。每个人的思想都是不同的,在解决同一个问题之后,跟朋友交流沟通一下思想,有的时候思想的碰撞是可以擦出火花的,而且一般情况下每个人的思考问题的方式是有差别的,这样就逐渐丰富了我们自己的思想。
爱迪生说天才大概是百分之一的灵感加上百分之九十九的汗水,而那百分之一的灵感就来自于我们的大脑。”懒人“并非真的懒,只是把更多的精力放在了脑力劳动上了。