如何培养写作习惯
高效能程序员的修炼
我得忏悔一下:程序员同胞们,从某种程度上来说,我创办的Stack Overflow网站“耍”了大家。
在你找来棍棒准备揍我之前,请允许我先解释一下。
在过去的6年时间里,我越来越坚定地有了这样一个想法,那就是:成为一名杰出的程序员其实跟写代码没有太大的关系。做程序员确实需要一些技能,当然,还要有坚韧不拔的精神。但除此之外,更重要的还是要有良好的沟通技巧。
杰出的程序员跟勉强过得去的程序员之间的差别,不在于他们掌握了多少种编程语言,也不在于他们谁更擅长Python或Java。真正的关键是,他们能不能把他们的想法表达清楚。杰出的程序员通过说服别人来达成协作。通过清晰的注释和技术文档,他们让其他程序员能够读懂他们的代码,这也意味着其他程序员能够重用他们的代码,而不必重新去写。要不然,他们所写的代码的价值就大打折扣了。
以上是我的合伙人Joel Spolsky说过的一段话。我对他的这个观点非常赞赏!
程序员们可能会争辩道:与人沟通本来就不是我们的长项;我们并不是因为热爱跟别人聊天才做软件开发这一行的。然而,沟通从来就是个问题,书面沟通尤其困难。既然我们选择了这个行业,还是想想如何在这方面有所提高吧!我觉得写博客是个好方法:
人们需要花一生的时间去学习如何有效地写作。这事没有捷径。这东西你也买不来。你必须自己去提高。
这也正是那些担心自己写作不行的人应该开始写博客的原因。
这是一种锻炼。不管现在的你多么不靠谱,只要你每周练习几次,就一定会有所提高。博客不用太长,坚持每周写几个,你一定能越写越好。但如果你因为写作恐惧症而不这么做,那么,你很可能永远就这样了(别想成为杰出的程序员)!
大家都知道我抱有极大的善意,但只是单纯地对一个人说“你应该写博客”,他是不会理你的。对此我有切身体会。并不是所有的人都适合写博客。对于一个普通程序员来说,要他写一篇哪怕是很短的文章,都是一项不可能完成的任务,就像要他的命一样。那么,我该怎样让广大程序员自觉地写博客、培养起写作习惯呢?
连哄带骗呗,别无他法!
大家来看看我曾经收到过的这封信吧:
我不知道你有没有意识到Stack Overflow的边际效应,不过,这个网站确确实实教会了我很多有效写作的方法,比我从以前听过的任何课程、读过的任何书,或参加过的任何其他活动中学到的都要多。
我想不出还有什么其他工具,可以用来检测我写的东西,并且如此迅速地对它的质量给出反馈。当我在Stack Overflow上回答问题的时候,特别是做一些高质量的技术纠错时,我能看到其他人也在努力,所有的回复放在一起,差别自现。大家的投票是不会骗人的。他们给了我信心,让我确信将来我发给同事的电子邮件会在多大程度上被接受,也有助于我把商业企划做得更好。
在过去的5个月时间里,我可以察觉到自己写的回复在质量上的稳步提升。如果我的回复没被选为最佳答案,我会去看别人的回复,然后去研究原因。我会想:也许我写得太啰唆了?也许太简练了?也许我没有抓住问题的关键,或者没有一针见血?
我记得你曾经说过,这么多年来你一直在Coding Horror发表博文,这极大地提升了你的写作能力。我想告诉你,Stack Overflow对于我来说起到了相同的作用,因此我要由衷地感谢你。我决定效仿你,开设一个我自己的关于编程的博客。今天我刚刚完成了域名注册。我希望它能像Stack Overflow一样出色。没有哪个评论家会像程序员那样,对每个细节都刨根问底,拼命地想从你说的话中或者语法结构中找出纰漏。如果你写的东西能够被广大程序员接受,那么你将能经得起任何读者的考验。
Joel和我一直把Stack Overflow以及其他所有的Stack Exchange问答网站定位为轻量级的、专注的、不失趣味的写作型网站。
没错,凭良心说,我们是在“诱导”你成为一个更棒的写手。事实证明,这很奏效!Stack Overflow拥有很多非常明显的像游戏一样的元素,能为你的进步助力,也能使互联网变得更加美好。更重要的是,它使你变得更为出色!看着广大程序员跟他们的同伴们聚集在一起,在专设的专家问答社区里自然而然地提高了他们的书面沟通能力,我真是无比自豪!
还有其他的一些兄弟社区,它们同样对编程以外的写作推崇备至。在那里,你可以自由地锻炼你的文笔。我们也有这样的网站。
如果你是一名作家、编辑、评论员、博主、撰稿人,或者有志于任何方面写作的人,职业的或非职业的,都可以去看看writers.stackexchange.com。不管你是做什么的,有效写作都是推进你的职业生涯发展的一种基础性技能,必须加以重视!
再说一遍,你应该写作!我觉得Jon Skeet总结得非常好:
每个人都应该大量地写作,不管是撰写博客、写书、回复Stack Overflow上的问题、写电子邮件,还是写其他的什么东西。写下来,然后回过头去斟酌一下。依我的经验,这种书面沟通有助于理清我们的思路。当你要向其他人详细解释某样东西的时候,你会惊讶地发现你自己有多无知。于是,你不得不开始一个全新的探索过程。
写作的过程真的就是一次探索之旅,而且它会贯穿人的一生。至于你是在写一篇小说、写印刷评论、回复Stack Overflow上的问题、创作漫画故事、写博客、写一段注释、写技术白皮书、写旅游日志或者是写关于写作本身的文章,这些真的都无关紧要。动手吧,开始写起来!