是懒人造就了方法
--------读《大道至简》第二章有感
为什么《列子·汤问篇》里的愚公移山就要“碎石击壤”,而李冰凿山就已经懂得“积薪烧之”了?
原因很简单,愚公是个坚毅又勤奋的人,所以他愿意耗费所有的时间去积累自己体力的果实,一点一点不辞辛劳地去挖掘,但是越是勤劳,他就越没有时间去思考,然而人的精力是有限的,他并不能突破这个极限。所以,他无法找到一个决定事情成效的方法,而恰恰很多时候,找到一个省力的途径才是最重要的。就像爱迪生曾说过,天才等于百分之一的灵感加上百分之九十九的汗水,而那百分之一的灵感才是最重要的,甚至比那百分之九十九的汗水更重要。相反地,李冰就懂得这个道理,在一个具有成百上千人的团队中,如果他像愚公一样夜以继日的只知道碎石,那么他必然食难下咽,睡无安枕,那真是一件浪费精力和人力的事。而正是李冰懒得像愚公那样勤奋,所以他去看火能不能把石头烧爆,最后发现垒灶的鹅卵石被烧得爆裂开来,遇水尤甚,由此就找到了碎石的捷径。可见,是懒人造就了方法。
将这个例子类比于我们的编程,像愚公一样,程序员可以将一百万行代码写在同一个文件里,而这也成为了一个习惯,此后无论程序有多大,只要有机会,他们还是喜欢把代码写到一个文件里。此外我们也下意识的认为,不单程序可以写到一个文件里,而且编译器、编辑器等等也都必须要支持,这才是正统的软件开发。然而却没有人在那时提出单元文件的开发方法。但最终还是有人提出了,因为这是懒人的懒方法,历史的发展决定了它的出现。终于,结构化编程的时代开始了。
大一一年我们学习了C++,那么现在,我们是否知道从哪里开始,这些知识是用来做什么的,或者它们可以用来做什么?大量的知识和资讯扰乱了我们的思想,所以分类显得如此重要,如果我们把既有的知识整理一下,就会达到应有的效果,自然而有效率。
我们一直都讲,程序=算法+结构,因为在面向过程的开发中,程序员不需要再造就什么方法就可以直接进行愚公式的开发工作,一样可以做出任意大型的程序,所以我们忽略了方法。但在面向对象出现之后,为了简便和顺利,还是出现了“面向对象程序设计”的方法。在此得出,程序=算法+结构+方法,与其无关的是,“工程”却因为“过程”和“单元”的出现而出现了。
总而言之,一件事的成败关键在于方法,找到了捷径,结果才能变得有效率。像愚公那样仅仅是消耗自己的精力,我们一生只做“一件事”甚至是一件都无法完成。而如李冰一样,因为“懒”而找到捷径,我们一定能在相同的时间内,轻松而又自然地提高做事的效率。