你能成为软件天才吗?
在整个计算机领域,有一些老外的名字如雷贯耳:冯诺依曼,图灵,比尔盖茨、Anders Hejlsberg,在中国,诸如“求伯君”、“柳传志”、“李开复”等名人的故事也是众人皆知,虽然我们拿不到其智商测试的分数,但相信他们个个都是聪明人。
“高智商”其实是成为“天才”的必要条件。相应的另一个结论就是:普通人再怎么努力,也成不了天才。
天才在各自领域内所达到的高度,大多数普通人是永远达不到的,比如如果有某人告诉我:你只要努力,就可以比Anders Hejlsberg还牛。我一定会认为他在开一个让我很生气的玩笑。
个体间智商的差异是客观存在的。但成为不了天才不能成为躺倒不干的理由。因为这里有一个引发了巨大争论的问题。
智商重要还是努力重要?
国外心理学的统计数据明确无误地说明了智商的重要性,但这里有一个问题:就算是具有“天才”浅质的人在总人员的比例很少,但人类有数十亿之多,“天才”应该不少啊?怎么数千年来,公认 “天才”的就是牛顿等那几个?
1973年,诺贝尔经济学奖得主、人工智能研究的开拓者Herbert Simon和William Chase在研究国际象棋大师的成长规律时发现:再大的天才,也需要10年修炼成器。
音乐天才莫扎特似乎打破了这个“十年定律”。5岁做曲,10岁登台演出,一生创作了数百部传世之作。尽管如此,西方学者们还是发现,莫扎特6岁时就已经和 父亲一起训练了3500个小时,他第一部达到大师水平的作品,创作年纪是21岁,实际上已经经历了18年的严格训练。
聪明的脑瓜是必要的,但仅有它也是不够的。
我引用了这么多的资料,其实只为了说明一个结果:不经“十年寒窗”,“天才”不可能出来。本身具有高智商的人是这样,在平均智商上下的人更应该努力。
现在很好解释当下的一些现象了:
1. “程序员”为何是“IT民工”?因为这些所谓的“程序员”本身就没有具备从事软件开发的基本知识与基本技能,加上人数众多,可替换性强,怎么会不成为“IT民工”?
2. 计算机专业学生为何就业难?很简单,一个计算机专业本科生,四年下来至少应该有4~6万行的代码量,但就我观察,达到这个要求的不到10%。
尽管软件开发行业需要较高的智商,但在平均学历为本科的软件开发行业,从业者已经过高考的筛选,智商并不是问题关键,之所以“IT民工”多和计算机专业学生就业难,主要问题是“懒”和“训练不得法”。
下图是我总结的一个靠技术吃饭的“程序员”知识与能力增长路线图:

▲
这个图不是针对“天才”设计的,而是针对一个普通的计算机专业大学生可能的主要人生经历绘制的,虽然经过了大量的简化,但主线还是很清楚的。
我成不了天才,那成为“人材”,可以吗?
我们需要解决的问题是“如何努力”的问题。
薛涌先生在书中介绍了一种名为“处心积虑的训练(deliberation practice)”的天才训练方法,这种方法是由天才研究的权威人士Ericsson教授提出的,简称为“深练(deep practice)”,其意思是一般人练得浅,水平自然平庸,天才则练得深,所以能超出凡人之上。
普通人如果能科学地深练,虽然不能成为天才,但成为“半个”天才是完全可能的。
有关“深练”的介绍,朋友们可以自行去看《天才是训练出来的》这本书。就我多年自学软件技术和8年的教学经验,我并不觉得“深练”有何奇特之处,我将“深练”总结为以下几句话:
1. 织网:分解软件技术的大块知识为多个小的知识点,各个击破,将新知识与老知识联系起来,构造一张完整的可动态扩充的知识之网
2. 训练:将开发技能给拆分为多个小的步骤或子技能,针对每个步骤或子技能反复地严格地训练,然后再这些步骤或子技能组合起来,以达到职业的水准。
3. 探究性的学习与实践:要将被动的学习转换为主动的探索,要通过开发实践把一切给“激活”。
原文链接:http://www.cnblogs.com/bitfan/archive/2010/12/30/1921291.html