也谈1万小时定律
有段时间没写东西上来了。借口当然很多,一则是忙,二则是想让王宇的那个庆国庆的帖子多top些天:-)
其实想写的内容还是很多的。先和大家分享一个所谓的“1万小时定律”吧。
这个东西是有一天从报纸上看到的,<解放日报>,是的,老雷经常看解放日报,上海出的党报:-)
回到正题,这个定律来自一本名为Outliers的书,作者叫Malcolm Gladwell。简单来说,定律的主要内容是:
如果想要练成一门功夫,那么就要肯花1万小时;如果肯花了1万小时,那么功夫也就炼成了。不论是什么功夫,从体育,到音乐,到各行各业......普遍适用。
搜索了一下,发现一个名为旧雨楼的先生写的中文博客解释的也很好。
为什么要和大家分享这个定律呢。因为,老雷觉得很有道理。拿老雷本人来讲,天资很笨,唯一的长处就是有耐力,肯花功夫,顺着一条路跑到黑:-( 如果用老雷的情况来写这个定律,可能是十万小时,哈哈哈。
拿软件调试来说,看看老雷花了多少小时了?
从老雷学习编程算起,快20年了,但是特别注意和花心思在调试技术上应该是从2003年开始的。2003年之前,写代码和调试是家常便饭,至少是积累了很多感性认识,就算做每天一小时吧,从正式工作(96年)到03年每天一小时,因为老雷一直有周末写代码的习惯,所以不用刨除周末,因此,那7年大约有365*7=2555小时。
然后算写《软件调试》那三年,周一到五,平均每晚不少于3小时(一般晚8点到晚11点),周末平均每天10小时(早8点到夜里11点)。粗略统计一下,写《软件调试》的三年少说花了3750小时在调试上,这段时间里,每天想的是调试,几乎没有哪一天不调试。
《软件调试》都是在业余时间写的,再说说2003年后的工作时间,这段时间里,面对的主要是系统软件,调试做的更多了,这正如Matt Pietrek写给《软件调试》的赠言说的:
Indeed, a debugger is an essential tool to master if you’re going to do any sort of system programming.
平均来看,日常工作大约有四分之一时间是在调试,这样算来每年50周*每周5天*平均每天3小时*6=
lkd> n 10
base is 10
lkd> ? 50*5*3*6
Evaluate expression: 4500 = 00001194
瞧,就连做这个简单计算,老雷想到的不是计算器,而是调试器:-)
三个数字加起来:
lkd> ? 2555+3750+4500
Evaluate expression: 10805 = 00002a35
哦,刚刚过了1万小时!
老雷自以为在调试上下的功夫不少了,其实也只刚刚过了1万小时。如果按适用于老雷的十万小时定律,那么还要再努力十年,才把这个功夫炼成:-)
十年太久了,尤其是在今天的快餐化时代。这是可以理解的。但是有些人肯花的时间的确太少了,三分钟热血,遇到点困难就后退了,努力几天就坚持不下去......
革命不是请客吃饭,老雷觉得学会调试功夫是可以改变命运的,所以它就不可能像请客吃饭那么容易。
写了不少了,就此打住,最后特别要强调一下,先要明确方向,找准了方向再花1万小时,否则白白浪费青春好时光,老雷可没钱负责:-)