在小学里,有“数学孩子”和“英语孩子”。根据你在每个科目实力印象,被分类为另一类孩子。

我是一个数学孩子。所以我主修计算机科学,决定成为一名软件工程师。一路上,“数学孩子”/“英语孩子”的指定从未消退。如果有什么的话,它会更强烈。今天我遇到的工程师,他们在想到写一篇文章时就畏缩,同时我遇到的作家,他们在想到写代码时就畏缩。

多丢脸!一个编写代码的工程师也应该写文章。

软件工程师应该写文章,因为它提升了许多在编程中需要的相同的技能。这两个学科的核心技能是一种清晰思考的能力。最好的软件工程师是优秀的作家,因为他们的文章和他们的代码一样具有逻辑性和优雅性。

代码和文章有很多的共同点。以一张白纸和一个想法开始,然后以用于目标受众的不同产品结束。产品是一个逻辑语句的序列,打包成模块化的单元——无论是函数还是段落。像好的散文,好的代码是简洁的(想想“表现力”)。坏代码浪费CPU周期;坏文章浪费大脑周期。作家的草稿就是工程师的原型。

当接近一个成品,工程师和疲惫的作家一样会感到不安。与文章一样,软件从来没有“完成”的感觉。它需要工程师更多的时间:又一个功能要构建,又一个模块需要重构。他或她害怕它不会是他或她的工作最好的展示。噢,好吧。发布它。

软件工程师应该写作,因为我们工作需要越来越多地协作。开源项目邀请全世界参与,同时行业产品通常需要一大批工程师。(谷歌地图上有1100名全职员工!)好的写作——无论是在GitHub评论,代码审查,或技术文档,便于这些项目在清晰、简洁的沟通中前进。

即使一个项目不需要交流,软件写作总体上促进学习和重要的讨论。我们不需要学习RFC规范和技术手册,感谢其他工程师编写的教程。在技术讨论中,才会有这么多意见可以充斥在Hacker News的评论中和Twitter的推文中。其余的请求导向到一篇博文。

在博文的主题,花一些时间在上面。好的作品需要时间。写一个“草率的副本”是很自然的,然后几次修改来提高质量。如果你觉得发博客太忙,缺少主题,或者担心你的意见被公开记录,花十分钟读读Steve Yegge的《你应该写博客》。即使它不会说服你,我认为你会喜欢读。

软件工程师应该写作,因为他们实际上可能喜欢写作。我们中的许多人是出于这种动机,即我们的软件有潜在的“影响”,足以改变人们的生活。

同样,写作是一个功能强大的影响工具。管理博客帮助经理鼓舞他的团队的动力。编程教程激发学生对计算机科学的兴趣。职业建议文章激发一个毕业生追求新的职业道路。

即使没有人读你的文章,写它也会影响你。它将澄清你对一个话题的意见,加强-甚至削弱你的信念。将乱七八糟的想法转化成具体的文字的过程是有价值的。

写作对促使一个工程师编写软件提供了同样的影响。将如何在软件工程提升有用的技能和促进协作结合在一起,突然发现写作似乎是一个有价值的活动。

即使是“数学孩子”。