程序员应该养成写作的习惯

摘要: 在学校里,有文科生和理科生的区分,学习内容不同,思维方式也有差异。我是一名理科生,大学里我的专业是计算机科学,毕业后我的工作是软件工程师。在这个过程中,我发现文理

在学校里,有“文科生”和“理科生”的区分,学习内容不同,思维方式也有差异。我是一名理科生,大学里我的专业是计算机科学,毕业后我的工作是软件工程师。在这个过程中,我发现文理科之间的鸿沟始终无法弥合。我见到的很多工程师害怕写文章,而文科生看到代码就头疼。

我认为,程序员应该养成写作的习惯。因为写文章会锻炼许多对于编程十分有益的技能。

写文章和写代码最核心的共同之处在于它们都需要清晰思考的能力。顶尖的软件工程师往往也是优秀的写作者,他们的文章和代码一样富有逻辑性,行文流畅、优雅。

文章和代码有很多相似之处:二者都是从一个空白的页面开始,把一个想法最终变成完整的产品,推向特定的受众;写文章和写代码都需要你把一系列有逻辑的语句封装进一个个模块中,这些模块可以是函数也可以是文章的段落;好代码与好文章一样都需要言简意赅,不然就会浪费CPU资源或人的精力。

当某个产品快要完工时,软件工程师会像作品快要发表的作家一样焦虑不安。和写文章一样,软件永远不会有彻底完成的时候,工程师需要花更多时间优化代码、开发新功能或者重做某个部分,因为他们担心发布的作品没有展现出自己最好的一面。

软件工程师应该写作因为现在开发协作变得越来越重要。开源项目可以得到来自世界各地人民的参与。开发和运营一个产品常常需要大量工程师(Google Maps有1100个全职员工!)。不论是GitHub评论、代码注释,还是技术文档都需要清晰准确的文字。良好的写作能力方便了人们之间的交流,使得项目更好地运行下去。

可能你觉得有些项目不太需要交流协作,但是写一些关于软件的内容通常对于学习和更进一步的讨论有着促进作用。现在,我们不再需要通过RFC文档或技术手册中学习了,因为网上有其他工程师写的教程。此外,我们还能够从Hacker News评论、推特和各种博客中学到很多内容。

提到博客,再来说两句。好的写作需要时间。我们一开始写出来的文字可能不怎么样,这时就需要再花点时间,多修改几遍,润色一下。如果你觉得自己太忙了没时间写博客,不知道写什么或者担心你的观点被公开记录日后留下把柄,你应该花上点时间读一读Steve Yegge的《你应该写博客》(You Should Write Blogs)这篇文章。即便其中的观点不能说服你,我相信在阅读之后你也会有所收获。

软件工程师需要写作,因为他们可能会享受写作的过程。很多软件工程师都期待自己开发的软件能够“产生影响”,给人们的生活带来改变。实际上,通过写文章,你也能够对人们“产生影响”,譬如说关于管理的博文可以帮助他人激励自己的团队,教授编程的内容可能会引起一个学生学习计算机科学的兴趣,关于职业规划的文章则可以帮助毕业生找到新的职业方向。

即使没人读你的文章,写作的过程也是有益无害。它帮助你理清思路,明确对于某个问题的看法,加强或削弱你的某种观点。把凌乱的想法汇聚成精简的文字非常有价值。

总之,写作有利于提高软件开发的水平,同时更方便开发过程中的协作,即使对一个理科生来说,也是一件非常值得做的事。

时间: 2015-03-20

程序员应该养成写作的习惯的相关文章

为什么软件工程师应该养成写作的习惯?

在学校里,有"文科生"和"理科生"的区分,学习内容不同,思维方式也有差异.我是一名理科生,大学里我的专业是计算机科学,毕业后我的工作是软件工程师.在这个过程中,我发现文理科之间的鸿沟始终无法弥合.我见到的很多工程师害怕写文章,而文科生看到代码就头疼. 我认为,程序员应该养成写作的习惯.因为写文章会锻炼许多对于编程十分有益的技能. 写文章和写代码最核心的共同之处在于它们都需要清晰思考的能力.顶尖的软件工程师往往也是优秀的写作者,他们的文章和代码一样富有逻辑性,行文流畅

优秀程序员的7大高效习惯,你"中枪"了吗?

Facebook首席执行官马克·扎克伯格(Mark Zuckerberg)有一个"怪癖":几乎每天都穿同样的衣服来上班.因为他觉得这样可以节省很多时间和资源,"我每天的工作为超过十亿人而服务,如果把精力全部浪费在穿衣打扮上,我觉得我的工作没有任何意义." 每个成功者的身上都有或多或少的东西值得我们学习,以下权威机构调查的高效程序员的7大习惯,你占了几条? 一.积极主动 生活中许多事情都是不可控的.你可能正在为签证问题失去一个出国深造的机会而烦恼;你的老板是个暴脾气,

可以使你成为更优秀程序员的5个好习惯

我们都希望能够在我们所做的事情中得到成长,在WEB开发领域,我们花费时间最多的就是编写代码.这可能包括HTML, CSS, JavaScript, PHP, Python, ActionScript或者任何其他你构建WEB站点时选用的语言. 这篇文章中,我们将分享一些实际的步骤,使你可以扩充技能,成为一个更优秀的程序员.我们提出五个不同的生活习惯,它们可以使你在你所从事的领域变得更加优秀. 1. 一个时间段内只专注于一种类型的语言 如果你正在设计或开发网站,你将需要同时熟悉多种不同的语言.你可能

让你变成优秀程序员的几个小习惯

作者Jeff Standen,有着21+年经验的软件开发者. 首先开发spike解决方案--这是我早期敏捷/极限编程所养成的习惯之一.spike解决方案是一次性原型,可以帮助你在投入大量时间和精力之前验证你是否走对路. 区别就在于原型,因为你遵循这样一个规则,在你完成研究之后,你最终会扔掉"spike"代码.所以允许你偷工减料,迅速行动,因为它不会出现在产品或代码审查中. 此方法有助于迅速发现设计的哪些部位尚不明确,而不必过早地尝试架构或设计决策. 致力于小而连贯代码块的版本控制--通

国外PHP程序员的13个好习惯

我是一个PHP新手,只有6个月的PHP编程经历,并且是在一位经过认证的zend工程师的指导下完成工作的,每当我编写脚本时,我会注意一些能让我做得更好的细节,也就是本文列举的这14个PHP编码好习惯,如果你有更好的建议,欢迎在本文后面的评论中发表,我这个人是喜欢求知的. 1.使用select从相同的数据库查询信息时,使用一个join语句一次性整齐地获取你需要的所有信息,而不要写多个mysql_query/while/mysql_fetch_array语句. 2.如果你在多个文件中调用了一个数据库连

国外PHP程序员的13个好习惯小结_php技巧

也就是本文列举的这13个PHP编码好习惯,如果你有更好的建议,欢迎在本文后面的评论中发表,我这个人是喜欢求知的1.使用select从相同的数据库查询信息时,使用一个join语句一次性整齐地获取你需要的所有信息,而不要写多个mysql_query/while/mysql_fetch_array语句. 2.如果你在多个文件中调用了一个数据库连接,创建一个connection.php文件保存你的连接变量,在需要的地方将这个文件包括进来. 3.对于小型项目,将你所有的函数写在一个文件中,如果是大型项目就

唐尤华:为程序员量身定制的12个目标

对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前.新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用. 01. 变得有耐心 02. 保持健康 03. 拥抱变化带来的不适应 04. 学习一门新的编程语言 05. 自动化 06. 学习更多数学知识 07. 关注安全 08. 备份你的数据 09. 学习更多理论知识 10. 接触艺术和人文 11. 向新的软件学习 12. 完成一个自己的项目 接下来我会对这些建议逐个介绍. 变得有耐心 程序员们会担

什么原因成就了一位优秀的程序员?

这些年我曾和很多程序员一起工作,他们之中的一些人非常厉害,而另一些人显得平庸.不久前因为和一些技术非常熟练的程序员工作感觉很愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序员那么优秀,糟糕的程序员那么糟糕?简而言之,什么原因成就了一位优秀的程序员呢? 根据我的经验,成为一个优秀程序员同年龄,教育程度,还有和你赚多少钱没有任何关系.关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序员都有一些相似习惯.不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是

[程序员面试题精选100 题]17.把字符串转换成整数

题目 输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析 这道题尽管不是很难,学过 C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题.建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同. 我们需要考虑一下几个方面的问题: (1)正负问题: 由于整数可能不仅仅之含有数字,还有可能以'