不喜欢8小时外写代码的就不是好开发?[转]

有人在stackexchange上提问

我看到许多Blog和网上的建议都说,要想成为一个好开发,只在工作时间写代码是远远不够的,你需要用你的业余时间参与开源项目,或是开发自己的手机App,但是我每天的闲暇时间就那么几小时,我实在不想将他们浪费在电脑上面,这是不是说明我不是个好开发?

下面是最受欢迎的一个回复:

在我看来之所以有人会这样想,只是因为他们的工作实在太烂,并且缺乏时间管理的能力,如果你的工作只是每天重复的编写Web form,那么你应该考虑先去换个更有挑战的工作,或者自己找点事情。

事实是这样的,即使是最顶级音乐会的乐手(大提琴/钢琴或者随便其它什么),他们每天的练习也不会超过6个小时,大多数可能还要更少。

你可能听过这种说法,只有写更多的代码才能学到更多,那完全是扯淡,实际上每天8小时已经过量了。

人的大脑的学习曲线并不是线性的,而是对数型的:

如果一个音乐家每天练习超过3个小时,原因只是他为了想要得到那额外的1%,如果你认为这也适用于你,那就试着去重新解决那些CS在20年前就已经解决的问题吧,这样你就已经走上了自找麻烦之路。

我以前曾在几家高压锅式的公司工作过,但相比37signals这样严格限制工作时间的公司,他们的实际产出并没有高多少:http://37signals.com/svn/posts/996-why-i-love-working-with-family-people

所以情况其实很明显,你或许可以在电脑前坐上10-12小时,在办公室多待2小时,但这并不包含90分钟午饭,2小时闲逛,以及一小时玩办公室的桌上足球和其它什么游戏的时间。

现在看看那张图,再看看你自己。

实际上你完全可以通过参与一些更有趣的活动来扩展你的脑容量,比如学习一门乐器,一个外语,或者是走出去进行一些运动,和生活中的其他人建立联系。

生产力的对数特性

在1993年,通过对一群年轻小提琴家的观测,效率研究专家Anders Ericsson发现,那些最好的小提琴手几乎总是使用相同的练习方式:每天早晨,进行3次不超过90分钟的增量练习,每次间隔进行适当的休息,并 且,Ericcson发现这一模式也同样适用音乐家,运动员,棋类选手以及作家等等。

对于真正的生产力而言,少真的意味着更多。

这条原则在商界几乎人人皆知,我很吃惊很少有程序员知道这一点。

Ericcson还有一项研究,你或许听到过,只要通过10年,1万个小时的练习,你就可以成为某个领域的专业人士。

但是我们都知道,如果你只是不断的重复使用你的第一年经验。。。这样的10年并不会让你变得出类拔萃,根据Ericsson的研究,要想变得出类拔萃,只有通过刻意的练习(deliberate practice)才能达到。

他发现这个原则对运动,音乐,写作,象棋,以及数学都适用,并且他进一步定义了什么是刻意的练习,刻意练习就是,你需要付出100%的努力,即使你 是最顶尖级别的,每天也只能进行最多4个小时的练习,否则你的身体就会因为过量训练而受到伤害,并且,即使是这种刻意练习所带来的提升也是逐渐减少的。

作者在最后还给出了2条如何寻找更有挑战工作的建议:

1. 你的工作是否具有挑战,其实取决于你自己,事实上,任何工作你都可以找到各种有趣的挑战,如果你讨厌每天重复的编写CRUD,那就想个办法来自动生成他们。

2. 不要坐等机会来找你,这样永远也等不来。

posted @ 2011-06-26 13:11  charleszhou  阅读(256)  评论(0编辑  收藏  举报