“磨锯子”实际上是一个代名词,泛指一切编程以外的活动(不必编写代码),而这些活动(从理论上来说)能使你成为一名更出色的程序员。这个词源自于Covey的一本书:《高效能人士的7个习惯》(《The 7 Habits of Highly Effective People》)。
有个人在山间漫步,偶遇一位伐木工。他便停下来观察这位伐木工,看他热火朝天地锯一棵很大的树。他发现这位伐木工干得大汗淋漓,不停地锯来锯去,但是没有丝毫进展。这个过路人注意到伐木工所使用的锯子已经和黄油刀一样钝了。于是,他就对伐木工说:“不好意思,伐木工先生,我看着你已经很使劲地在锯那棵树了,但为什么进展不大呀?”伐木工回答道:“是呀……我也知道。不过,看起来这棵树不好对付啊!”此时,汗正从他的眉毛间滴落下来。过路人于是提醒道:“伐木工先生,这不是树的问题,是你的锯子太钝了。这么钝的锯子什么东西也锯不断的!”“我知道。”伐木工回答,“但是,我连锯树都忙不过来,哪有时间磨锯子啊!”
大家都知道,如果想要在某方面有所提高,最好的办法就是勤加练习。但是,如果你只顾着埋头写代码,连讨论、反思或者学习的时间都没有,将得不到真正的进步。你必须在磨炼工艺与思考如何提高工艺之间找到一个适当的平衡点。
我们应该鼓励开发团队里的每个成员都先去磨快他们的锯子。正所谓磨刀不误砍柴工。在这方面,Scott Hanselman有一些很不错的建议。其实还有个更简单的方法,就是你此刻正在做的事情:阅读编程相关的博客或书籍。如果你有一个开放的心态,你可以用这种方法来磨快你的锯子,正如Reginald Braithwaite所述:
我们通常是这样做的:每当读起一篇博文,我们会把我们认同的内容一点一点读下去,而只要有一个论点不符合我们自己的世界观,我们就会很较真。如果整篇文章的主题都跟我们的成见相左,我们就会大骂作者是个白痴。老实说,如果让我们去做销售,结果会一塌糊涂,因为我们一碰到不认同我们的人就会匆匆放弃。
我建议我们要向销售人员学习。当我们在读一篇帖子,或者一本书,或者学习一门新的语言时,我们应该假定它的某些部分(甚至绝大部分)并不新颖。让我们假设我们肯定会讨厌它的某些部分。与此同时,我们也要从自身利益出发去考虑:如果我们能从中找到哪怕只有一点对我们有用的东西(它能让我们变成更好的程序员),我们就已经赚了。
这就是我们对一篇博文应有的期待。明白这一点很重要!如果一篇帖子中能有一样有价值的东西,我们就赚大了。其实我们不该这么贪心—只要我们在读了100篇帖子后能学到一样有价值的新东西,我们就已经赚大了。
如果你正在寻找优秀的编程博客来磨快你的锯子(或者至少能激发你的潜力和兴趣),我可以向你推荐两个很棒的专门针对编程的链接聚合网站,相信它们一定可以帮助你。
一个是Hacker News(http://news.ycombinator.com)。我强烈推荐这个网站。
Hacker News是Paul Graham想出来的,所以这个网站多多少少反映了他在Y Combinator的投资兴趣,以及他对诸如创业公司、企业事务之类的关注。Paul对网站内容的审阅是非常认真的,因此除了那个很有代表性的摇滚(Diggy-style)投票机制外,还有一个由他亲自挑选的编辑组成的秘密集团(我喜欢把他们想象成忍者黑帮,“没有人会承认他们仍然存在!”)他们会删除标记过的帖子。更重要的是,这个网站上关于文章内容的讨论都非常理性,几乎没有任何嘈杂声和骂战。
另外一个是programming reddit(http://www.reddit.com/r/programming)。相比之下,那里的讨论更加杂乱,像狂野的西部,任何事情都变得很敏感,而且它仅靠社区里或顶或踩的投票机制来把关。不过,我们往往能从这个网站发掘出各种各样程序员特别感兴趣的链接。
当然,过多地磨锯子,或者随意地、没有目标地磨锯子,会变成另外一种形式的延误。然而,如果一个程序员对这些完全不感兴趣,那也是一个巨大的危险信号。就像Peter Bregman说的那样,“痴迷可以是一件好事”:
人们成功常常不是因为他们克服了自己的机能障碍,反而是这些障碍成就了他们。痴迷是通向成功的一个最明显的风向标。如果理解了一个人的痴迷,你就会理解他最自然的动机—他会为之坚持走到世界的尽头。
对磨锯子有些痴迷是没有问题的,但前提是,你的痴迷是类似Hackers News的网站上积极地提交和讨论与编程相关的文章。
作为一名程序员,你对如何磨快锯子有更好的建议吗?