是懒人造就了方法
本章的标题虽然是《是懒人造就了方法》,但在我看来造就方法的人并不是懒人,恰恰相反,他们才是最勤快的人。因为他们在新的困难面前没有墨守陈规,他们思考,他们去寻找新的出路,而那些坚持旧方法埋头苦干的人才是最懒惰的人,他们有头脑、有思想,却放弃它们不去思考,宁愿四肢发达,也不愿打破繁琐、毫无效率可言的“勤劳”。所以,造就方法的人才是最勤劳的人。
李冰、愚公,他们都是项目的引领者。解决问题的方式、办事的效率却天差地别。同样是开山,愚公只知道日复一日地“叩石垦壤”,浪费体力、人力;而李冰却用“积薪烧之”的方法大大节省了时间,提高了人力的利用率。一个团队的领导就是这个团队的灵魂,愚公的辛勤与坚持让人赞扬,但他只能留下愚公的称号,因为他并没有比普通人强多少,他只是在困难面前选择了坚持,在这个浮躁的年代,坚持值得赞扬,但没有人会去效仿。而李冰,一个看似无聊的懒人,在做饭时偶然发觉了“积薪烧石”的方法,或许在“愚公”这类“勤快”的人看来,这只是“懒人”的运气。其实并不是,这才是“懒人”勤快的体现,李冰即使是在做饭的时候都不忘记思考加快开山进度的方法,都不忘记去观察任何可以给他带来灵感的细节,而愚公想的还是“子又生孙,孙又生子”的无限循环、无穷无尽的体力劳动。所以,《大道至简》中被褒奖的是李冰,而不是愚公。
作为“程序猿”的我们,肯定不能像愚公一样做体力劳动,我们现在学到的知识、资源允许我们像李冰一样去思考,去寻找节省时间、空间的方法。但我们是否知道最早的“程序猿”其实就和愚公一样把编程干成了体力劳动。最初的语言没有单元、没有模块,把代码写在一个文件中是编程界的惯例,在编辑器中查找一个函数需要按下上千次的PageUp/PageDown,嗯,想想就让人觉得头大。在这样的重压之下,有一个崩溃的“懒人”站了出来,发誓再也不想重复在一个文件中PageUp/PageDown的无限循环,于是Unit诞生了。
老师最常说的一句话:计算机一点都不聪明。虽然计算机的CPU中装满了各种实用的结构、算法,但它却不懂得去调用。就好比一个身体健全的人却没有思想,一具行尸走肉罢了。这时候就是体现“程序猿”作用的时候——提供算法。程序=算法+结构+方法,在面向对象的模式下,方法才是一个程序的关键。正是因为方法,才可以把一个文件中百万行的代码分散开来,才可以把模块分解成更小的单元,才可以产生多人分工的编程团队。所以,想要成为一个合格的“程序猿”,发现方法是你必须具备的品质。