给想提高自己编程效率的程序员一些个人建议

       我是一个程序员、设计师和企业家,也是 Asana 的联合创始人。许多知名公司(如:Uber,Pinterest,Dropbox)都在使用这款提升团队生产力的软件。我在 Facebook 做开发经理时,设计过一个用于提升团队生产力的工具,Facebook 至今仍在使用该工具。


  简单来说,我在思索如何提高效率上面花了很多时间。


  下面是我总结的提高效率的一些建议,每个建议都是关于优化下列三个方面的:环境、思维和流程。


   改善环境


  避开所有打扰



  「多任务处理」使人感到更有效率,但研究表明,它使我们变得更加低效。我们经常去查看邮件,这种频繁的打断使我们思维变得迟缓 ,我们需要花费比预期更多的时间回到原来事情上。所以当你需要集中注意力时:


  将手机设置为勿扰模式。在 iPhone 上:从屏幕的底部向上滑动,然后点击月亮图标。


  关掉所有与当前任务不相关的网页。


  如果你的工作需要写邮件,写邮件时不要看到新邮件。在 Gmail 中的 Gmail 书签(过滤掉所有内容)可以实现这一点。


  关掉计算机上的新邮件提醒。


  退出聊天软件。


   发现你的时间流


  如果一天中你不断地被会议打断,你很难进入时间流、处理复杂任务的状态。


  在日程表上标注自己有一个三个小时的「会议」,你是会议的唯一参与人员。这样同事们在安排会议时会避开这段时间,你可以在这段时间里不间断地将工作完成。


  如果可以话,每周选择一天作为全公司的无会议日。在 Asana,我们设有「无会星期三」。


  跟踪了解你一天中不同的活动的高效时间。在你的高效时间完成工作最难的部分。下图是我用来确定我的高效时间的方法,我的高效时间是上午 10 点到中午。相关阅读:寻找你的超人时间。


   精通你使用的工具


  如果你一整天都在使用电脑,每次你伸手去拿鼠标的时候,都会降低一点速度,阻碍你的时间流。你操作计算机的速度应该跟上你思维的速度。这样做你需要学习常用软件的快捷键。


  每次需要使用鼠标时候,看看是否可以使用快捷键代替。通常你可以在菜单项中找到对应快捷键,或当你把你的鼠标光标放到按钮上会显示出快捷键提示。在 Mac 上:? 是 Command,? 是 Option,? 是 Shift, ^ 是 Ctrl。


  使用软件 SizeUp,可以迅速重新排列软件窗口,不需要使用鼠标。


   优化思维


  这方面我最喜欢的书籍之一是托尼·施瓦茨的《全心投入的威力:管理精力而非时间》。 仅仅是这本的书名就有很大启发性。


   定时休息


  通常我们以为,在工作上花费的时间越多,完成的任务也就越多。事实并非如此,人类不是机器,我们的大脑需要时间恢复。人类不是机器人。我们的头脑需要时间来充电。研究表明,工作 90 分钟,休息 15 分钟,有助于在更少的时间里完成更多的工作 。相关阅读:少既是多。


   冥想


  我是如何养成一个日常习惯的。


   照顾好自己的身体


  多喝水。 每天早上,我都会在办公桌上放 5 大杯水。我每天下班时,都已经把水喝完了。看到桌上放的这些水,会提醒我喝了多少水。


  改善饮食。 碳水化合物过高的午餐会使你下午精力不足。


  运动: 每周两次有氧运动可以帮助提高效率。


  总之,使用的工作外的时间来修养身心,工作时会更加精力充沛。


   直面困难、克服拖延


  我们拖延,不是因为懒惰,而是因为任务的重要性会使我们感到焦虑。发生这种情况时,你应该做以下的事:


  诚实面对你焦虑的原因。把导致焦虑的事情写下来,或者告诉你朋友。你为什么感到如此害怕?


  寻找一个容易执行的下一步。


  关于这方面,我写过一篇文章:《如何通过面对焦虑克服拖延》。


  如果你现在没有精力去面对恐惧,那么至少做你的清单上的第二优先的事情,而不是去查看 Facebook。多产的斯坦福大学教授约翰·佩里把这种做法称为「结构化的拖延症」。在网站 StructuredProcrastination.com 上,他把自己的成功归结于这种做法。


   优化流程


  设定清晰的计划。许多低效源于没有分清事情的轻重缓急。你没有搞清楚哪些事情有助于实现你的目标、什么是最高优先级的事情。


  在下一步计划没有完全明确,并且整个团队达成一致之前,不要开始行动。


  先思考这些事情:我们的目标是什么?我们为什么想要达成该目标?达成该目标需要哪些步骤?每一个步的负责人是谁?这些步骤的顺序是怎样的?什么是所有去实现它所需的步骤?每一步骤由谁负责?这些步骤将按照什么顺序执行?


  相关阅读:《如何制定一个清晰的计划》。


   团队合作


  有些人喜欢独自工作,但是,处理复杂任务时,我一般觉得困难、容易分心。


  找一个愿意合作的队友。有时候,花费我两天的任务可以在 2 小时内与合适的伙伴完成。 「结对编程」是软件行业很常见,但它其实适用于任何领域。


  或者,你可以进行自我对话,问问自己那些问题是重要的,然后把问题和答案写到文本编辑器或者笔记本里。我在电脑上以随意的形式写过一些长篇的对话,这些对话都是富有策略性的,有成效的。


   公开声明最后期限


  将同伴的压力转化为你的优势。如果一项重要任务没有固定的最后期限,我会自信地告诉别人:「我会在周五下班时送给你一份作业副本」。我不想在同事面前表现得很可笑,所以我会努力确保事情在周五完成。


   使用软件来跟踪你的工作


  毫无疑问,我认为 Asana 在这方面是最好的。它不仅为维护你的待办事项清单;它同时还管理整个团队的工作流程,所以你们不需要无休止的会议来保持同步。Asana 让大家在工作的地点面对面的交流,这样你就不需要一直通过电子邮件去获取信息。


   花点时间反省


  每一天结束用几分钟考虑一下:什么地方做的好,什么地方做的不好。你的整个工作流程是否有可以改进的地方?如果你每天都可以提升 1% 的效率,一年后你的效率将有 15 倍提升。

你可能感兴趣的:(给想提高自己编程效率的程序员一些个人建议)