有种流传甚广的说法:如果你想将咖啡豆磨成代码,那就去买台“程序员”好了。确实,如果你在一家编程高手云集的互联网公司工作,问问你身边那些程序员们,他们一般什么时候效率最高,点子最好?得到的答案,大部分是半夜——不管前半夜,还是后半夜。有些习惯在早上四点起床,然后工作到日出,还有些人则是习惯在早上四点后才睡觉。
如果只是为了避开无谓的干扰,何不关上门,带上耳机,为何一定要在深夜工作呢?
我认为主要有三条原因:创作者的日程表、困倦的大脑,以及闪亮的屏幕。
创作者的日程表
通常来说,这个世界有两种日程表,一种属于管理者,一种属于创作者。传统的管理者日程表将一天按小时划分,而通常十分钟的打扰,对于程序员来说,可能需要一个小时去重新整理思路。
而创作者的日程表,著名投资教父Paul Graham在2009年也曾就创造者的日程表专门撰文。这个日程表是适用于比如作家或是程序员的。这类人的工作通常需要在内心建立起一个庞大而抽象的系统,不仅如此,在创作过程中,他们还需要不断的与自己的心理作斗争。
有个非常好的类比说,创作或编程的过程就好像拿昂贵而易碎的水晶搭建一所房子,一旦有人来打搅你,你所有的努力都可能会毁于一旦,倾注的所有心血可能就瞬间摔成碎片。
这就是为什么程序员在别人打搅他们时,异常愤怒的原因。
正因如此,他们通常会在确定有一连好几个小时无人打扰的情况下才会开始工作。
事实上,你同一些程序员聊天时会发现,他们自己都会有种白天不能完成工作的感觉。持续不断的打扰、很多重要的事情需要打理、邮件要回等等,都会打乱你的节奏,不能让你安心工作。这也正是他们选择日出而息,日落而作的原因。
困倦的大脑
但就算习惯半夜工作的程序员,他们也是白天精神,夜里犯困。
那么为什么他们会在困倦的时候做非常复杂,需要脑力劳动的事情,而在大脑最活跃、最兴奋的时候,反而做一些非常简单的工作呢?
因为疲倦会让他们成为更好的”攻城狮”。
这跟鲍尔默效应类似,疲倦会让程序员更加专注,因为在大脑疲倦的情况下,就必须得非常专注的做一件事情。你仅存的脑容量已经不足以应付多余的事情了,只能专注于手头的事。
喝太多茶或是在一个糟糕的时间点喝了功能饮料之后,工作效率是最低的。兴奋会让你一会儿看一下Twitter,一会儿瞅一眼Hacker News,在社交网站上跳来跳去。
你可能感觉精力充沛的状态非常适合工作,但真实的情况却是你常常会做一些让自己注意力分散的事,大脑就是无法安静下来,把所有的注意力集中在一件事上。
反而当你有点困意的时候,你只想窝在椅子或者沙发上专心编程。而半夜,安静的不止是周边的环境,互联网也是如此,你会不知疲倦的写上好几个小时的代码,根本不会想到Twitter和Facebook。
大部分程序员都是这样,白天你写出一个算法,然后加上十倍的量来搭建一个可供算法运行的环境。大部分时间里,你都只是做着一些“清理”工作,或是想办法让最终的结果以一种舒服好看的方式呈现。
闪亮的屏幕
这一点就更简单了。
如果你持续的盯着一个很亮的光源,睡眠周期便会往后延,如此即使是在早上三点,你也不知疲倦。而当夜晚再次降临之时,你也感觉不到疲惫,因为你上午11点才起床。这就好像你生活在另外一个时区一样,更有趣的是,一旦你习惯了这种作息时间,你很难再回去了。
当然,即使你4点才睡,你的闹钟还是会调到上午8点,这个世界最常有的偏见就是如果你下午两点才吃早餐的话,你一定是个失败者。