是懒人造就了方法 :战国时期的李冰凿了一座山。 如果李冰也象愚公那样日复 一日地督促着他的团队凿石开山,那他一定没有时间来学 习、寻找或者观察,当然也不会发现“烧”这种方法可以 加快工程进度,使得一大座山短时间就被哗啦哗啦地给 “碎”掉了。 要知道李冰的团队可是成百上千人,要修堰筑坝,还 要“凿离堆”,当然还要吃喝啦撒睡。所以李冰如果忙起 来的话,他必然是“受命以来,夙夜忧叹”,必然食难下 咽,睡无安枕。反之,李冰一定是个闲人,可以闲到没事 去看火能不能把石头烧爆。 这么大个工程里,如果有一个人会闲到看火烧石头, 那他一定很懒。那么多事堆着不去做,去看烧石头,你说 他不是懒是什么。 正是一个懒人造就了“烧石头”这个“碎石”的方法。 愚公太勤快了,勤快得今天可以比昨天多凿一倍的石头。 或者在愚公的项目计划案的首页里就写着朱笔大字:“吾 今胜昨倍许,明胜今倍许,而山不加增,何苦而不快。” 但是越发的勤快,愚公将越发没有机会找到更快的方法, 人的精力终归是有极限的。提出新的“方法”,解决的将是影响做事成效的根本问题。而愚公可以多吃点饭, 多加点班,但突破不了人的精力的极限。 

所以我们要学会创新,寻找快捷简便的方法,才能节约时间,事半功倍。

   一百万行代码是可以写在一个文件里的 :早期写程序,都是将代码打在穿孔纸带上,让计算机 去读的。要让计算机读的纸带当然是连续的,这无需多讲。 其实我也没有那样写过程序,真实的苦楚我也不知道。 后来有了汇编语言,可以写一些代码了。这时的代码 是写在文本文件里,然后交给一个编译器去编译,再由一 个链接器去链接,这样就出来了程序。 第一个写汇编的人,可能写的是有名的“Hello World” 程序,那个程序写在一个文件里就行了。所以后来就成了 习惯,大家都把代码写到一个文件里。早期的汇编语言里, GOTO 语句是用得非常非常频繁的,将一个语句 GOTO 到另一个文本文件里去,既不现实也不方便。所以大家习 以为常,便统统地把代码写到一个文件里。 再后来出了高级语言,什么 C 呀,Pascal 呀之类的。 既然大家已经形成习惯了,所以很自然地会把一个程序写 到一个文件里。无论这个程序有多大,多少行代码,写到 一个文件里多方便呀。 直到如今语言发展得更高级了。可是程序员的习惯还 是难改,一旦得了机会,还是喜欢把代码写到一个文件里 的。所以我们要封装代码,不同的类代码放到不同的文件里;这样我们就能快速准确的找到错误。千万不能写一个文件里。  

  你桌上的书是乱的吗:几周之前,在一所电脑培训学校与学生座谈时,一个 学员问我:“为什么我学了一年的编程,却还是不知道怎 么写程序呢”。 我想了想,问了这个学员一个问题:“你桌上的书是 乱的吗?” 他迟疑了一下,不过还是回答我道:“比较整齐。” 我当时便反问他:“你既然知道如何把书分类、归整 得整整齐齐地放在书桌,那怎么没想过如何把所学的知道 分类一下,归纳一下,整整齐齐地放在脑子里呢?” 如果一个人学了一年的编程,他的脑袋里还是昏乎乎 的,不知道从哪里开始,也不知道如何做程序。那想来只有一个原因:他学了,也把知识学进去了,就是不知道这 些知识是干什么的。或者说,他不知道各种知识都可以用 来做什么。我们应该知道如何学好,并学会如何使用学到的知识。

  我的第一次思考:程序 = 算法 + 结构 + 方法 :所谓“面向过程开发”,其实是对“结构化程序设计” 在代码阶段的一个习惯性的说法。而我忽略了这个阶段的 “方法”的根本原因,是即使没有任何“方法”的存在, 只需要有了“单元(Unit)”和“模块(Module)”的概念, 在面向过程时代,一样可以做出任意大型的程序。在那个 时代,“方法”问题并不会象鼻子一样凸显在每一个程序 员的面前。 面向过程开发中,“过程(procedure)”是 CPU 提供的, “单元(unit)”则是编译器提供的(机制)。程序员不需要(至 少是不必须)再造就什么“方法”,就可以进行愚公式的开 发工作了。 如果不出现面向对象的话,这样伟大的工程可能还要 再干一百年⋯⋯ 而与“面向对象”是否出现完全无关的一个东西,却 因为“过程”和“单元”的出现而出现了。这就是“工程 (engineering)”。

  我读后收获了好多,一定要学好java等语言。

 

posted on 2016-09-25 23:19  暗黑迪迦  阅读(131)  评论(0编辑  收藏  举报