作为一名软件开发人员,你该如何磨快你的锯子?
“磨锯子”实际上是一个代名词,泛指一切编程以外的活动(不必编写代码),而这些活动(理论上来说)能使你成为一名更出色的程序员。这个词源自于Covey的一本书:《高效能人士的7个习惯》(《The 7 Habits of Highly Effective People》)。
译者注:Stephen R.Covey(史蒂芬·柯维)是一位管理学大师,曾被《时代》杂志誉为“人类潜能的导师”,并入选为全美25位最有影响力的人物之一。他在领导理论、家庭与人际关系、个人管理等领域久负盛名。《高效能人士的7个习惯》自出版以来高居美国畅销书排行榜长达7年,在全球70个国家以28种语言发行共超过一亿册。为了顺应21世纪的转变,Covey还在2004年撰写了续篇:《高效能人士的第8个习惯:从效能迈向卓越》。
有个人在山间漫步,偶遇一位伐木工。他便停下来观察这位伐木工,看他热火朝天地锯一棵很大的树。他发现这位伐木工干得大汗淋漓,不停地锯来锯去,但是没有丝毫的进展。这个过路人注意到伐木工所使用的锯子已经和黄油刀一样钝了。于是,他就对伐木工说:“不好意思,伐木工先生,我看着你已经很使劲地在锯那棵树了,但为什么进展不大呀?”伐木工回答道:“是呀……我也知道。不过,看起来这棵树不好对付啊!”此时,汗正从他的眉毛间滴落下来。过路人于是提醒道:“伐木工先生,这不是树的问题,是你的锯子太钝了。这么钝的锯子什么东西也锯不断的!”“我知道。”伐木工回答说,“但是,我连锯树都忙不过来,哪有时间磨锯子啊!”
大家都知道,如果想要在某方面有所提高,最好的办法就是勤加练习。但是,如果你只顾着埋头写代码,连讨论、反思或者学习的时间也没有了,其实你得不到真正的进步。你必须在磨练工艺与思考如何提高工艺之间找到一个适当的平衡。
我们应该鼓励开发团队里的每个成员都先去磨快他们的锯子。正所谓磨刀不误砍柴工。在这方面,Scott Hanselman有一些很不错的建议。其实还有个更简单的方法,就是你现在正在做的事情:阅读编程相关的博客或书籍。如果你有一个开放的心态,你可以用这种方法来磨快你的锯子,正如Reginald Braithwaite所述:
我们通常是这样做的:每当读起一篇博文,我们会把我们认同的内容一点一点读下去,而只要有一个论点不符合我们自己的世界观,我们就会很较真。如果整篇文章的主题都跟我们的成见相左,我们就会大骂作者是个白痴。老实说,如果让我们去做销售,结果会一塌糊涂,因为我们一碰到不认同我们的人就会匆匆放弃。
我建议我们要向销售人员学习。当我们读一篇帖子,或者一本书,或者在学习一门新的语言时,我们应该假定它的某些部分(甚至绝大部分)并不新颖。让我们假设我们肯定会讨厌它的某些部分。与此同时,我们也要从自身利益出发去考虑:如果我们能从中找到哪怕只有一点对我们有用的东西(它能让我们变成更好的程序员),我们就已经赚了。
这就是我们对一篇博文应有的期待。明白这一点很重要!如果一篇帖子中能有一个有价值的东西,我们就赚大了。其实我们不该这么贪心——如果我们在读了100篇帖子后能学到一样有价值的新东西,我们就已经赚大了。
如果你正在寻找优秀的编程博客来磨快你的锯子(或者至少能激发你的潜力和兴趣),我可以给你推荐两个很棒的专门针对编程的链接聚合网站,相信它们一定可以帮助你。
第一个是Hacker News(http://news.ycombinator.com)。我强烈推荐这个网站。
Hacker News是Paul Grahm想出来的,所以这个网站多多少少反映了他在YCombinator的投资兴趣,以及他对诸如创业公司、企业事务之类的关注。Paul对网站内容的审阅是非常认真的,因此除了那个很有代表性的摇滚(Diggy-style)投票机制外,还有一个由他亲自挑选的编辑们组成的秘密集团(我喜欢把他们想象成忍者黑帮,“没有人会承认他们仍然存在!”),他们会删除标记过的帖子。更重要的是,这个网站上关于文章内容的讨论都非常理性,几乎没有任何嘈杂声和骂战。
译者注:Paul Grahm(保罗·格雷厄姆)是著名程序员、风险投资家、博客和技术作家,是一位在美国互联网界如日中天的教父级人物。他以Lisp(列表处理语言)方面的工作而知名,也是最早的Web应用Viaweb的创办者之一。后来,Viaweb以近5000万美元的价格被雅虎收购,成为Yahoo! Store。2005年,他创办了著名的创业投资公司YCombinator(简称YC)。迄今为止,YC已经投资过了500多家创业公司,改写了创业家和硅谷投资者之间的旧秩序,塑造了创建技术公司的新范式。他的创业公式是:搭建原型、上线运营(别管bug)、收集反馈、调整产品、成长壮大。
译者注:《忍者黑帮》(《The Octagon》)是一部1980年代的美国动作影片,剧情概要是:某个由忍者集结的黑帮组织,专门训练国际恐怖分子;一位退休的功夫冠军挺身而出,单枪匹马迎战这个组织,并对抗一群东方杀手的杀人密令。
另外一个网站是programming reddit(http://www.reddit.com/r/programming)。相比之下,那里的讨论更加杂乱,像狂野的西部,任何事情都变得很敏感,而且它仅靠社区里或顶或踩的投票机制来把关。不过,我们往往能从这个网站发掘出各种各样的、程序员特别感兴趣的链接。
当然,过多地磨锯子,或者随意的、没有目标的磨锯子,会变成另外一种形式的延误。然而,如果一个程序员对这些完全不感兴趣,那也是一个巨大的危险信号。就像Peter Bregman说的那样,“痴迷可以是一件好事”:
人们成功常常不是因为他们克服了自己的机能障碍,反而是这些障碍成就了他们。痴迷是通向成功的一个最明显的风向标。如果理解了一个人的痴迷,你就会理解他最自然的动机——他会为之坚持走到世界的尽头。
对磨锯子有些痴迷是没有问题的,前提是,你的痴迷是指:你积极地在类似Hackers News的网站上提交和讨论编程相关的文章。
作为一名程序员,你对如何磨快锯子有更好的建议吗?