下面是一幅在网上广为流传、关于程序员工作效率的图片:
辛普森爸爸也许会说:这很有趣,因为事实正是如此。
我还没有搞清楚保持高效的诀窍,主要是因为我从没有一贯的高效。周思博(Joel Spolsky)曾在他的一篇博客中说过:
有时我什么事都干不了。
当然,我走进办公室,到处闲逛,十秒钟就检查一次电邮,看网页,甚至干些不用脑子的事,比如支付美国运通的账单。但就是不会回到写代码的流程上来。
这样的低效症一发作一般都要持续一两天。但在我的职业生涯里,作为程序员,曾经好几次一连几个星期什么事都干不了。就像他们说的,我心不在焉,我状态不好,我根本不在状态。
这篇文章我读了五六遍,仍然深感震动,因为这样一个程序员界的标志性人物也会有这样码农的问题。
还好,不只是我有这样的问题。
这里我没有保持高效的秘诀分享,但是我可以告诉你们什么让我的效率低下:
- 开放式房间布局
- 程序员争论Django与.NET哪个好
- 程序员笼统的争论
- 同事过来问:"嘿,我的邮件你收到没?"
- 嚼东西的声音。很明显我有恐音症
- 对于我手上的问题还不理解
- 怀疑这个项目
- 手上有多个任务要完成,它们都是十万火急的
- 有十万火急的事,其他事都别干了
- 手机微博消息提示音
- 电邮提示弹窗
- 任何弹出窗口
- 即时通信软件
- 老婆问:"嘿,可以拿一分钟来帮我做件事吗?"
- build时间很长
- 噪音
- 办公桌前老有人走来走去
- 公司集体活动
- 维基百科(我是说真的,不要点任何链接)
- Hacker News
- 总体来说,互联网都会影响效率
过去这些事让我工作效率不错:
- 安静的环境
- 安静的办公室(个人专用办公室太少见了)
- 理解项目下一步我该干什么
- 对于问题有透彻的认识
- 没有打扰
- 我是认真的:没有打扰
- 远离微博
- 远离Hacker News
- 硬件不出问题
- 热爱正在工作的项目
- build和debug的时间不长
- 不要在网上争论政治
很明显,低效因素中有一半是我自找的,但是有些不是,例如开放式办公室布局。
根本上讲,我们每个人都能控制造成我们低效的因素。我不会和平对抗。我要不就强硬表态,要不就坐着任由其他人在我身边走动。对此我真不擅长应对。所以,我在处理外部低效因素方面没有好建议,但是我知道这一条:控制我能控制的。意思是:
- 关闭我iPhone上的提示(还有个好处就增加了待机时间)
- 连续编码3小时就给我自己一个奖励(通常形式是"上网时间",看看黑客新闻或是微博)
- 当真的真的有事要干才在家工作
- 投资一个性价比高的抑噪耳机
- 在日历上安排"无会"时间,向别人表明你在这些时间很忙,这是我的工作时间。
- 不要卷入办公室程序员的争论;人们有强烈的个人观点,而程序员的特性就是喜欢争论。如果真是有业务问题需要解决,让我们去会议室去,把每种方法的优缺点都摆出来。用数据说话,别只是争吵。
- 把办公桌摆在不会被过路人打扰的地方。
- 先看一遍问题,然后再请另一位程序员为我详细的解释一遍,这样我可以对要干的工作有更好的理解。这样做实现了两点:第一,这使我能掌握形势,使得我至少能对工作的要点有个基本了解。第二,它让我在求助时能问出更聪明的问题。
原文链接: George Stocker
译文链接: http://blog.jobbole.com/73383/