65.9K
CodeProject 正在变化。 阅读更多。
Home

四小时程序员的日常

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.97/5 (24投票s)

2012年1月17日

CPOL

10分钟阅读

viewsIcon

92136

四小时程序员的日常

引言

大家都知道常规的作息,早上9点上班,坐在电脑前,一整天都在写代码,然后下午5点回家。现在,多亏了像Tim Ferris这样的人,我开始重新思考我的工作方式以及什么能让我在软件开发方面更有效率。

最近,我对我周一到周五的日程做了一些大的改变。很长一段时间以来,我做的事情和我知道的很多其他程序员一样。但在2011年下半年,我开始尝试,看看什么样的日常安排能让我效率最高。这仍然是一个进行中的项目,而且我不会按军事化精确执行——比如,我可能会早起20分钟或晚起20分钟——但这是我目前的日程安排。

上午4:30至上午7点:冥想、写作、目标回顾、家庭早餐

早上4:30起床实际上并不难。每个人都有点不同,但身体通常需要7到9个小时的睡眠。知道自己是否睡够的方法是,不用闹钟也能醒来。起床后,我立刻喝16盎司的水——不喝咖啡!我很久没喝咖啡了,而且我也不太想念它。事实上,不喝咖啡我感觉更好。然后我洗个澡;我想让一天有个清爽的开始。

我每天早上冥想30分钟。最好在日出前或日出时冥想,所以西方世界的人们可以在上午6点前完成。我不会解释为什么冥想对你有好处;网上有很多研究。如果你想要一本关于冥想的好书,我推荐冥想入门。尽管名字如此,这是我读过的最好的书之一。

之后,我花30-45分钟为我的博客/书籍写作。我试图写500到800字。我的注意力缺陷多动障碍(ADHD)可能会让高度集中变得极其困难,但我发现如果我在冥想后立即做这项任务,我就可以做到。另外,大脑在我们睡觉时会一整夜工作,所以在进行其他脑力任务之前,最好进行一次“头脑风暴”。关于写作的一个建议:用这段时间进行初步的头脑风暴。不要试图在稍后进行研究、编辑等。

然后是待办事项列表时间。我查看我的电子邮件、Twitter、LinkedIn等,并分配任务。说到任务,我遵循GTD方法,并围绕Omnifocus软件来安排我的生活。我在我的iPad、iPhone和MacBook Air上运行它(好吧,我确实是个苹果迷)。是的,Omnifocus对于一个待办事项管理软件来说有点贵,但因为我的整个生活都围绕它展开,所以它很值这个价。我浏览我的列表,并将其与我的目标进行比较——从今天的微小目标到长期目标。列表中的每个项目都应该与一个目标相关。如果不是,我就删除它。

接下来是早餐。关于何时吃早餐以及应该吃什么,有几种不同的观点。我尝试过很多不同的东西。我发现富含纤维、低碳水化合物、高蛋白的食物对我来说效果最好。试过燕麦片配花生酱吗?完美!我还喜欢加入新鲜水果和茶。另外,我们尽量全家一起吃早餐。有时我们会做到,有时不行。我的目标是今年100%做到。

上午7点至上午11点:我的四小时程序员时间

这是我用来写代码的时间。每天4小时听起来可能少得可怜,但我发现这4小时里我能完成的代码比大多数人一周完成的还要多。研究表明,有固定时间表的人比工作时间表随意的人表现更好。对我来说,每天都是从上午7点到11点。在这段时间里,我只做写代码,别无其他。有几个基本规则:

首先,关闭所有通讯——手机、电子邮件、聊天等。你不能有任何干扰。你可以给少数几个人一个联系你的方式,以防万一有非常紧急的事情。那些可能在紧急情况下联系我的人知道如何做到,而且我还没有遇到过有人使用它。我甚至训练了我的妻子,她以前总是期望得到立即的答复,让她尊重这4小时的时段。

其次,你应该专注于一个项目。不要试图同时处理5件不同的事情。不要休息去查邮件、上网或其他任何事情。原因如下:

在一小时内,我可以写完x行代码。我发现,如果我连续工作四个小时,我交付的工作量不仅仅是4倍,而是8到16倍。当你100%专注于一个目标,并且不考虑其他事情时,你就会体验到这一点。这就是我们所说的心流(Flow)精神状态。我计划在未来的博客文章中写更多关于心流状态的内容。

那么,为什么不把同样的原则应用到8小时工作日呢?因为人类的生产力是有限的。大脑就像肌肉。你能连续8小时在跑步机上跑步吗?像我们的肌肉一样,大脑也需要偶尔休息。这个限制对每个人来说略有不同。通过反复试验,我发现4小时是我的极限。

还有一点值得一提的是,我不会设置闹钟在上午11点停止。我会在感觉大脑疲劳、生产力下降时结束工作。有时我工作3小时,有时工作5小时;4小时是平均数。

我选择在家工作以避免干扰。如果你在办公室环境,看看管理层是否允许你在效率最高的时间在家工作。每天通勤到办公室可能会抵消瑜伽和冥想的好处。当你经历了拥堵的交通,听到了办公室里的各种噪音后,你的大脑可能会感到非常疲惫,以至于冥想的好处消失了。在家工作你可能会更有效率。

上午11点至下午1点:健身、午餐和购物

我每天都去健身房。John J. Ratey的书《Spark: The Revolutionary New Science of Exercise and the Brain》为日常锻炼提供了有力的论据。不要每天都尝试同样的锻炼,甚至去同一个健身房。我每周去瑜伽馆做3天瑜伽,去旋转工作室做2天动感单车,去我的健身房做2天力量训练,那里有位教练。有人督促我是最好的动力。

我喜欢健身房,因为它提供额外的服务。你可以拿5条毛巾,没有妻子在旁边抱怨。你可以享受30分钟的淋浴,外面没有人等着喊“你好了吗?”……在我家里这种情况经常发生。

我还会坚持每天购物买菜,通常是在离我家步行距离的Whole Foods。为什么要每天购物?在许多国家,尤其是在亚洲,人们每天都购物,而不是一次买两周的食物存放在冰箱里。这样,你只买你需要的,减少浪费。你有多少次在冰箱或冷冻室后面发现了无法识别的东西,并想知道它是否已经放了半年以上了?我会在外面吃午餐。Whole Foods有一个不错的沙拉吧。我喜欢日本菜,所以有时我会去我最喜欢的餐馆吃寿司或便当。

下午1点至下午6点:学习和交流时间

我尽量把我的约会安排在一起,这样我就不必每天开车去工作。通常,这段时间包括会议、面试候选人、演示、指导开发人员、代码审查等。除非有紧急的bug修复或需要处理的紧急事务,否则我在这段时间内不做任何编码。

我还投入大量时间学习。我花很多时间阅读别人的东西,从书籍到博客,再到与技术和神经科学相关的代码库。我每天都试图学习新东西。保持动力和步调一致的最好方法是记下每个主题的几行笔记,然后收藏任何参考资料。像EverNote这样的软件就很适合这项工作。

同时,也要看看市场上的其他产品。最高效的软件开发人员是那些能用零行代码解决问题的人。如果别人已经做了这项工作,我不想重新发明轮子。这就是花时间在CodePlex、GitHub和Component Source上的好处。

我从我妻子医学实习的经历中吸取了一个教训。每天早上,新来的医生都会花时间与病人交流。然后在下午,他们会聚集在一起讨论遇到的并发症以及他们如何解决问题。就我而言,我试图对我的活动进行事后分析。我分析了早上写代码时卡在哪里,我在追逐一个bug时的情况,或者我如何做一个演示,如何处理一个会议等等。我试图从我的错误中学习,避免重复它们。

下午6点至晚上8点:家庭时间

我妻子是一名医生,工作很忙,但我们尽最大努力把这段时间花在家人身上。我们尽量一起做晚餐。然后我辅导我的孩子做作业。二年级学生作业量之大真令人惊讶。

晚上8点至8点30分:反思和大脑工作

我晚上不冥想。取而代之的是,我坐下来反思一整天。如果你花15分钟在一个安静的地方反思你的一天,你会学到和改进多少,这真是令人惊讶。

接下来,我为我的大脑创造一些工作。这是一个众所周知的事实:大脑在我们睡觉时也在工作。所以最好给它分配一些工作。对我来说,以下方法一直效果很好:

我列出我早上需要写的东西的要点。我把它们想象成标签。我发现写下来比在电脑上打字效果更好。

或者,我看一下一些编程/算法问题。同样,我写下来或画出来。令人惊讶的是,第二天早上我经常能找到解决方案!对于这些任务,我有一个漂亮、无横线、信纸大小的笔记本。在空白白纸上书写总能激发我的创造力。我会在晚上8:30到9点之间睡觉。越早越好。

这就是我的日常安排。当然,旅行时它会改变;我经常出差。我也没讲到周末我做什么。但这些内容将在以后的文章中介绍。

关于 Jay Janarthanan他将成为软件开发人员生产力专家作为目标。2011年,他创办了博客http://www.jayonsoftware.com,分享他的学习心得,并指导其他开发人员提高自己的生产力,最终目标是出版一本书。

© . All rights reserved.