果然,随便问问一个程序员他们什么时候做得最好,他们很有可能会承认很多深夜。有的早些,有的晚些。一个流行的趋势是凌晨 4 点起床,在一天的疯狂开始之前完成一些工作。有些人喜欢 去 在凌晨4点睡觉。
所有这些的要点是避免分心。但是你可以把门锁上,晚上有什么特别的?
我认为它归结为三件事:制造商的日程安排、昏昏欲睡的大脑和明亮的电脑屏幕。
创造者的时间表
Paul Graham 在 2009 年 写了关于 创造者的日程安排——基本上这个世界上有两种类型的日程安排(主要是?)。传统经理的日程安排将您的一天分割为几个一小时的时间段。而让您分心十分钟,最多只会浪费您一个小时的时间。
另一方面,您有 PG 所谓的创造者日程表——我们这些生产者的日程表。在大型抽象系统上工作涉及将整个事物融入您的脑海中——有人曾经把这比作用昂贵的水晶玻璃建造一座房子 ,一旦有人分散了你的注意力,它就会迅速倒塌并破碎成一千块。
这就是为什么当你分散他们的注意力时,程序员会如此恼火。
由于这种巨大的脑力投入,我们无法开始工作,直到我们可以期待几个小时而不会分心。在你的头脑中构建整个模型然后在半小时后将其拆除是不值得的。
事实上,与很多创始人交谈时,你会发现他们觉得他们在白天根本无法完成任何工作。一连串的干扰、要处理的重要事情和要回复的电子邮件根本不允许这样做。因此,当其他人都在睡觉时,他们会在晚上完成大部分“工作”。
昏昏欲睡的大脑
但即使是程序员也应该在晚上睡觉。我们不是某种超人种族。即使是程序员在白天也会感到更加警觉。
那么为什么我们在大脑想要睡觉的时候做最复杂的工作,而在大脑最敏锐和最聪明的时候我们做更简单的任务呢?
因为疲倦会让我们成为更好的程序员。
类似于鲍尔默峰,疲倦可以让我们更好地集中注意力,因为当你的大脑疲倦时,它 必须 集中注意力!没有足够的剩余脑力来承受失去注意力。
在喝太多茶或喝了不合时宜的能量饮料后,我似乎做的工作最少 。让我太活跃了,一秒钟我在查看推特,下一秒钟我在看黑客新闻,我似乎到处都在嗡嗡作响。
你会认为我会工作得更好——如此多的能量,如此多的无限超频脑力。但相反,我总是被自己绊倒,因为我一次无法集中注意力超过两秒钟。
相反,当我稍微累了的时候,我就趴下写 代码。大脑有点疲倦,我可以连续写几个小时的代码,甚至不用考虑查看 twitter 或 facebook。这就像互联网停止存在。
我觉得这适用于大多数程序员。对于我们处理的大约 80% 的任务,我们有太多的脑力——面对现实,编写一个多汁的算法需要十倍的代码来生成一个可以运行的环境。即使你正在做可以想象的最先进的机器学习(或其他东西),很多工作只是清理数据并以可爱的方式呈现结果。
当你的大脑没有满负荷工作时,它会寻找可以做的事情。累了会让你变得愚蠢到手头的任务就足够了。
明亮的电脑屏幕
这个很简单。晚上一直盯着明亮的光源,你的 睡眠周期 会延迟。你忘记累到凌晨 3 点。然后你在上午 11 点醒来,当夜幕降临时,你根本不累,因为嘿,你从上午 11 点才起床!
如果有足够的迭代,这基本上可以将您拖入不同的时区。更有趣的是,它似乎并没有继续滚动,一旦你进入了在凌晨 3 点到 4 点之间睡觉的平衡,你往往会呆在那里。
或者,也许这只是 闹钟 在做他们的事,因为社会告诉我们,如果我们在下午 2 点吃早餐,我们就是肮脏的邋遢邋遢者。
结尾
总而言之,程序员在晚上工作是因为它不会对您何时必须停止工作施加时间限制,这让您更轻松,您的大脑不会一直在寻找分心的事情,而明亮的屏幕让您保持清醒。
注意:Teller 写了一本书 “夜猫子:为什么程序员在晚上工作”是因为他收到了这篇文章的回复。