在小学,有一些「数学天才」和「语文天才」。你们由于在其他孩子印象中各自的强项而被贴上标签。
我曾是一个所谓的「数学天才」。所以我主修计算机科学并向往去做一个软件工程师。虽然一直以来「数学天才」或「语文天才」这样的称号从来没有真正的磨去,但只要可以把任何事做好就可以了。如今我见过的工程师畏惧写东西,我见过的作家也同样畏惧写代码。
没什么好害羞的!写代码的工程师照样可以写文章。
软件工程师应该写作,因为它会提升你编程技能。写作和编程共同的核心技能是要想得清楚。最好的工程师也都是很好的作家,因为它们的散文也会像代码一样兼具逻辑和优雅。
代码和文章有很多共同点。都是从一张白纸和一个想法开始,以给到目标受众一个分散的产品结束。产品由一系列的逻辑片段组合到的一个个逻辑单元组成 — 函数或章节。如同好的散文一样,好的代码是简明的(富有「表现力」)。不好的代码会浪费 CPU 循环;坏的文章浪费大脑运转。作家的草稿就是工程师的原型。
当产品接近完成时,工程师会像厌倦的作家一样忧心忡忡。如同文章一样,软件永远不会「完成」。还会悄悄的消磨工程师的时间:其它功能需要构建,其它模块需要重构。他/她担心这不是自己最好的表现。别管那么多,发布吧。
软件工程师应该写作,因为我们需要更多的协作。开源代码邀请全世界来参与,业内的产品通常需要一个工程师队伍(Google 地图有 1100 个全职雇员)。不管是在 GitHub 上评论、审查代码或技术文档都要好好去写,来促进清晰、简明的沟通以推进项目前进。
即使一个项目不需要沟通,写一些软件相关的也会促进了解和重要讨论。我们没有从 RFC 规范和技术手册去学习,这要感谢写指南的工程师。在技术讨论中,有很多的意见会被发表到 Hacker News 的评论或推文上。最好要引导到博文中。
博文的主题,要好好的下功夫。写好是需要时间的。写一个草稿是很自然的,接着要通过多次的修改来提高质量。如果你觉得太忙、没什么想法或者担心你的意见成为众矢之的,花十分钟来看看 《You Should Write Blogs》 。如果依然不能说服你,我认为你需要更多阅读。
软件工程师应该写作,因为其实他们会享受写作。很多人都有潜在动机希望我们的软件有「影响力」,来改变人们的生活。
写作就是是影响力的强大媒介。管理层的文章可以帮助经理鼓舞和激励他的团队;编程指南会擦出学生对计算机科学的兴趣火花;职业建议的文章可以启发毕业生追求一个新的职业规划。
即使没有人读你的文章,继续写下去早晚会对你有影响。它将阐明你对某个主题的观点和增强/减弱你对它的看法。把杂乱的想法变成具体的语句这个过程是有价值的。
写作具有和写软件一样带有影响力意义的动机,把这两个连起来会在软件工程中提高有用的技能和促进协作,那么,赶紧写起来看起来是很值得的动作。
甚至对于「数学天才」来说。
在 Hacker News 上阅读评论。