大道至简第二章感悟

是懒人造就了方法。这句话咋一听起来令人感觉有些困惑,但是如果你仔细想想你就会感觉到这句话确有其正确性。有懒人则必有勤快人,如果懒人来创造方法,那么勤快人在干啥呢?勤快人之所谓勤快人,是因为他压榨了它的时间全部用来工作,如果转化成为编程中的话,那就是勤劳的程序员每日每夜的敲键盘,敲代码。愚公也是如此,然而他的方法却是最原始的。而史记中记载“蜀守冰凿离堆”,太守李冰的方法无疑高明多了。愚公的碎石乃是“斧钺以凿之”,而李冰的方法为“积薪以烧之”,显然这个方法无论在效率和成本上都比愚公强。这就是方法的便利与利处了。

将愚公与李冰的处理问题的方法搬到编程之中,你会发现,如果一个程序员跟自己说我每天比昨天多敲点代码,那么我的工作效率就会直线提升,然而一个人的精力是有限的,只是勤劳的工作,效率根本不会无限上升,总有一个极限。而且人是感性动物,怎么可能会一直永无休止的工作下去呢?所以我们在编程中要勇当懒人,永无休止的勤劳只会让你错失那些真正让你提升效率的方法。

早期写程序是将代码打到穿孔纸带上让计算机读取,后来有了汇编语言,再后来出现了c、Pascal之类的语言。如果程序大了,将代码都写到同一个文件,那么查找一个函数将会非常麻烦,懒人是不会想这样慢慢找的,所以单元文件出现了,于是模块的概念开始深入人心,于是结构化编程的时代来临,新的编程方法出现并广泛应用,而这场巨大的改革只不过是某个突然变懒的一个程序员,于是整个编程改变,编程的效率也提升了。编程的学习过程中,有各种知识需要学习,毕竟编程语言都有好多种。然而当各种各样的知识充斥于我们的脑海中时,我们需要的是将这些知识分门别类的在我们脑海中分开,知道这些知识可以做什么,什么时候用。毕竟我们需要一个严谨的大脑,而不是一个混乱的。

实际上结构化编程的基本单位是“过程”,所谓“面向过程开发”,其实是对“结构化程序设计”在代码阶段的一个习惯的说法。前面说过程序=结构+算法。在面向过程中,没有方法上的存在,因为有了“单元”和“模块”的概念后,勤劳的程序员也可以做出他们想要做出的大程序,但是谁知道他们又花了多长时间呢?在面向过程中,程序员不需要在开创出什么方法就能“斧钺以凿之”了。

    懒人其实并不懒,只不过他们并没有将所有的精力花在敲代码上,因为如果能开发一种提高效率的方法,何乐而不为呢?

原文地址:https://www.cnblogs.com/hzxsg0919/p/4840343.html