1.10 十年磨一剑
程序员的修炼——从优秀到卓越
Gmail的原开发主管Paul Buchheit曾经说过,Gmail的成功是一个漫长的过程。
Gmail的开发始于2001年8月,在此之后的很长一段时间里,几乎所有人都不喜欢它。有一些人因为它的搜索功能而使用它,但他们也带来了无穷无尽的抱怨。甚至有相当一部分人认为我们应该终止这个项目,或者按照一个企业级的产品重做这个项目——它应该有一个本地的客户端程序,而不是这个异想天开用JavaScript做出来的东西。即使等到两年半之后的2004年4月1日,在这个产品发布之时,公司里的很多内部员工依旧对这个产品不看好。他们觉得这个产品太古怪了,没有人会愿意为之更换邮件服务。还有人告诉我,Gmail的用户数绝不会超过100万。
但是自我们发布产品之后,除了那些因为各种原因而讨厌它的人,总体反响出乎意料得好。然而,Gmail还是被打上了“小众产品”、“硅谷以外无人会用”的标签。
现如今,Gmail已经持续发展了7年半。我看到一篇文章介绍说,去年Gmail的增长率是40%,而相比之下,Yahoo只有2%,Hotmail还降低了7%。
如今,Paul已经离开了谷歌,并且创办了名为FriendFeed1的公司。很多业内人士并不看好FriendFeed。Stowe Boyd甚至认为FriendFeed就是个失败。不过,Paul对于这些负面看法显得很淡定。
通常来说,创造一个伟大的新产品是需要时间的。FriendFeed就像6年前的Gmail一样,需要持续的改进和提高。FriendFeed承诺了很多的功能,但是目前还处于开发状态。
我认为,但凡卓越的成功都需要多年的努力。能够例外的并不多见(除了YouTube,但它其实还没有创造出巨大的财富)。Facebook成长得很快,但它至今也已经过了差不多5年的发展历程。Larry和Sergey是在1996年创办谷歌的,而我在1999年加入这家公司的时候,几乎没人听说过它。
一夜成名的传说容易让人误入歧途,并且遗毒不浅。如果你打算做一个全新的东西,要有打持久战的准备。但是,这不能成为你行动迟缓的借口。恰恰相反,你应该雷厉风行,否则你永远也无法达到目标,因为前面还有很长的路要走。这也是为什么要强调节俭的原因,你应该不希望自己在登顶之前就在半路上饿死吧?
Stowe Boyd用了一张Twitter和FriendFeed对比图,阐述了他对于FriendFeed的观点。在这里,请允许我把Stack Overflow的数据也加到这张图上。
我觉得Paul的观点是振奋人心的,因为我对自己的创业公司Stack Overflow也持同样的态度。我并不指望一夜成名,甚至想都没想过。我的计划是,要花上几年的功夫去磨练,坚持不懈,以求稳步提升。
这个商业计划和我个人的职业生涯发展计划基本一致:成功需要付出多年的努力。这里的“多年”并不是我随口一说,也不像有些人鼓吹的那样“要更巧妙地工作,而不是更努力地工作”。我指的是真真正正的时间——这里的一年就是12个月,就是365天。你必须踏踏实实地在这件事上花费几年的时间去磨练,每天一醒来就开始工作,日复一日地坚持,不断地获取反馈,每一天都比过去做得更好。即使你偶尔会不开心,甚至失去了乐趣,但这些都是为了获取成功所必需的。
这是一个听上去很普通或者说一点都不有趣的建议。Peter Norvig在他的经典文章“Teach Yourself Programming in Ten Years”(花10年时间自学编程)中也曾谈到过这个话题,而且讲得比我好多了。
研究人员指出:在许多领域(诸如棋类、音乐创作、电报、绘画、钢琴、游泳、网球以及神经心理学和拓扑学的研究),想要达到专业水平都需要大约10年的时间。关键是要勤于练习:不是一遍又一遍的简单重复,而要不断地挑战略微超出自身能力之外的任务——努力尝试,并在做的同时以及之后对自己的表现进行评估,然后纠正错误。如此反复。
这看起来并没有什么捷径:即使像莫扎特这样的奇才,他4岁的时候就已在音乐方面崭露头角,但也花费了超过13年的时间才开始创作出世界级的音乐。披头士乐队貌似在一夜之间获得了很多“第一”,并且在1964年的“埃德·沙利文秀” 2上一举成名,但他们其实从1957年开始就在利物浦和汉堡的小酒吧里演奏了。在他们早期成名之后,他们最最成功的唱片《Sgt. Peppers》也是在1967年才发布的。
老实说,我希望在2~3年之后依然做着和现在一样的事情:为Stack Overflow编写代码,努力地做着一个细微的改进或者一个有用的新功能。我们当然想要成功。但是在一定程度上说,因为过程本身充满了愉悦,最后成不成功其实就无关紧要了。尽管我们还有很多的事情要做,但是能够每天做自己喜欢做的事情,甚至身边还围绕着一群志趣相投的人,这本身已经是很好的奖赏了。
写博客也一样。对于那些有抱负的博主们,我常常给他们这样一条重要建议:如果你新开了一个博客,在6个月之内别指望有人会去读它;如果你有那样的期望,我敢保证你会非常失望的。但是,如果你能够坚持一整年,并且每周能够发布1~2篇高质量的博文,到那时候,也只有到那时候,你才可以寄希望于收获很小量的读者群。我是在2004年创办CodingHorror.com这个博客的。我花了整整3年的时间,每周都写3~5篇博文,才使其成为了软件开发社区中较为流行的一个博客。
我渴望能一直在这个博客上以这样或者那样的形式写文章。这已是我生命的一部分。至于那点戏剧性的成就,我不抱有任何幻想。本质上来说,我也就是下图中“那个在互联网上写了那篇博客的人”。
我觉得这也没关系啊!我从来没说过自己是一个聪明人。
无论你这周获得了多少读者,或者页面访问量,乃至于某方面排名很高的指标,请记住,你正在做的事情是真正值得去做的。
如果你一直这样坚持下去,谁知道会发生什么呢?或许会在某天醒来的时候突然发现,你已经一夜成名了。