下面是一幅在网上广为流传、关于程序员工作效率的图片:

辛普森爸爸也许会说:这很有趣,因为事实正是如此。

我还没有搞清楚保持高效的诀窍,主要是因为我从没有一贯的高效。周思博(Joel Spolsky)曾在他的一篇博客中说过:

有时我什么事都干不了。

当然,我走进办公室,到处闲逛,十秒钟就检查一次电邮,看网页,甚至干些不用脑子的事,比如支付美国运通的账单。但就是不会回到写代码的流程上来。

这样的低效症一发作一般都要持续一两天。但在我的职业生涯里,作为程序员,曾经好几次一连几个星期什么事都干不了。就像他们说的,我心不在焉,我状态不好,我根本不在状态。

这篇文章我读了五六遍,仍然深感震动,因为这样一个程序员界的标志性人物也会有这样W3C的问题。

还好,不只是我有这样的问题。

这里我没有保持高效的秘诀分享,但是我可以告诉你们什么让我的效率低下:

  • 开放式房间布局
  • 程序员争论Django与.NET哪个好
  • 程序员笼统的争论
  • 同事过来问:“嘿,我的邮件你收到没?”
  • 嚼东西的声音。很明显我有恐音症
  • 对于我手上的问题还不理解
  • 怀疑这个项目
  • 手上有多个任务要完成,它们都是十万火急的
  • 有十万火急的事,其他事都别干了
  • 手机微博消息提示音
  • 电邮提示弹窗
  • 任何弹出窗口
  • 即时通信软件
  • 老婆问:“嘿,可以拿一分钟来帮我做件事吗?”
  • build时间很长
  • 噪音
  • 办公桌前老有人走来走去
  • 公司集体活动
  • 维基百科(我是说真的,不要点任何链接)
  • Hacker News
  • 总体来说,互联网都会影响效率

过去这些事让我工作效率不错:

  • 安静的环境
  • 安静的办公室(个人专用办公室太少见了)
  • 理解项目下一步我该干什么
  • 对于问题有透彻的认识
  • 没有打扰
  • 我是认真的:没有打扰
  • 远离微博
  • 远离Hacker News
  • 硬件不出问题
  • 热爱正在工作的项目
  • build和debug的时间不长
  • 不要在网上争论政治

很明显,低效因素中有一半是我自找的,但是有些不是,例如开放式办公室布局。

根本上讲,我们每个人都能控制造成我们低效的因素。我不会和平对抗。我要不就强硬表态,要不就坐着任由其他人在我身边走动。对此我真不擅长应对。所以,我在处理外部低效因素方面没有好建议,但是我知道这一条:控制我能控制的。意思是:

  • 关闭我iPhone上的提示(还有个好处就增加了待机时间)
  • 连续编码3小时就给我自己一个奖励(通常形式是“上网时间”,看看黑客新闻或是微博)
  • 当真的真的有事要干才在家工作
  • 投资一个性价比高的抑噪耳机
  • 在日历上安排“无会”时间,向别人表明你在这些时间很忙,这是我的工作时间。
  • 不要卷入办公室程序员的争论;人们有强烈的个人观点,而程序员的特性就是喜欢争论。如果真是有业务问题需要解决,让我们去会议室去,把每种方法的优缺点都摆出来。用数据说话,别只是争吵。
  • 把办公桌摆在不会被过路人打扰的地方。
  • 先看一遍问题,然后再请另一位程序员为我详细的解释一遍,这样我可以对要干的工作有更好的理解。这样做实现了两点:第一,这使我能掌握形势,使得我至少能对工作的要点有个基本了解。第二,它让我在求助时能问出更聪明的问题。

原文链接: George Stocker

译文链接: http://blog.jobbole.com/73383/