致仍然还没有睡的你:程序员为什么喜欢夜间工作?
有人说,程序员是一种神奇的动物:喝的是咖啡,挤出来的是代码。
此言不虚,随便找个有上进心的程序员问问,就会发现他们多半都会在深夜活动。有的早起,有的晚睡;有的凌晨 4 点起床,有的凌晨 4 点入睡。
这么做的关键还是为了集中精力。但实际上,你完全可以闭门静思,那样跟半夜工作又有什么区别呢?
我认为这取决于三个因素:创作者的日程、沉睡的大脑和明亮的电脑屏幕。
创作者的日程
保罗 · 格雷厄姆(PaulGraham)2009 年撰文描述过创作者的日程——从根本上讲,世界上主要有两种日程。传统的管理者日程以小时为单位来划分,10 分钟的干扰最多只会浪费你 1 小时的时间。
但与此同时,格雷厄姆还总结了一种 “创作者的日程”——也就是我们这些搞创作的人所遵循的日程。从事一个庞大的抽象系统,需要把全部精力都投入其中——曾经有人将此比作用昂贵的水晶玻璃来搭建房屋,一旦有人分散你的精力,整个工程都会土崩瓦解成无数的碎片。
正因如此,程序员对干扰他们工作的事情才格外厌恶。
由于这是一笔重大的脑力投资,所以,除非能连续工作好几个小时而不被打扰,否则我们根本无法开始工作。费尽心思在脑海中搭建出了整个模型,但却在半小时后土崩瓦解,绝对是件得不偿失的事情。
事实上,如果你有幸与很多企业创始人进行沟通,就会发现,他们很难在白天完成任何工作。因为在白天,他们要面临各种干扰,需要处理各种重要事情,还要回复各方邮件。所以,多数人都选择在夜深人静,其他人都入睡时,再来干正事。
沉睡的大脑
但就算是程序员,到了晚上也该睡觉——程序员也是人,他们到了白天也会感觉更加清醒。
既然如此,我们为什么还要在大脑想要入睡时完成最耗脑力的工作,反而在大脑最亢奋、最清醒的时候完成相对简单的任务呢?
因为越是疲劳,就越能写出好代码。
与鲍尔默峰值类似 (ballmerpeak),疲劳反而能让我们更好地集中精力,原因很简单:因为大脑很疲劳,所以不得不集中精力!没有多余的脑力让你分神。
当喝茶过多或者在不恰当的时候摄入能量饮料时,我的工作效率往往最低。这会导致我异常活跃,一会儿刷 Twitter,一会儿看新闻,思维总是东奔西跑,无法聚精会神。
我本以为这样可以更好地工作——精力充沛,脑力富足。但恰恰相反,我始终在牵绊自己的进程,无法集中精力超过两秒。
相反,当我略感疲惫时,我会集中精力编程。由于大脑略感疲惫,所以我能连续好几个小时编程,而不会分散精力去刷 Twitter 或 Facebook,感觉就像互联网消失了一样。
我认为这适用于多数程序员。我们的脑力对于 80% 的工作而言都是过剩的——面对现实吧,要写出一段生动的代码,需要编写 10 倍的平庸代码来为它营造良好的运行环境。即使你从事的是最先进的机器学习(或其他技术),很多工作也只是清理数据,以及用令人愉悦的方式呈现结果。
当你的大脑没有全负荷运转时,它就会寻找其他可做的事情。疲劳会让你变得迟钝,集中精力处理手头的工作,无暇顾及其他。
明亮的电脑屏幕
这一点很容易理解。在夜间盯着明亮的光源,你的睡眠周期就会推后。你会不知疲倦地工作到凌晨 3 点。然后,你会一觉睡到上午 11 点。而夜幕降临时,你也不会感觉疲劳,因为你 11 点才刚刚起床。
经过足够的反复后,你相当于进入了不同的时区。更有趣的在于,这种状态似乎不会反弹:一旦你进入了凌晨三四点入睡的均衡状态,就会始终保持这种节奏。
或者,当周围的人都告诉我们,下午 2 点吃早餐实在是太懒惰了,那么我们或许就会让闹钟来改变自己的作息时间。
综上所述,程序员之所以在夜间工作,是因为在这样的环境下,工作时间不会被施加任何限制,这就给了你更大的灵活性。而且,你的大脑也不会反复地分心,而明亮的屏幕也会让你保持清醒。
公司同事说:“年轻时身体像铁一样,等过了30岁,通宵一晚上要痛苦3-4天才能缓过劲来,若年轻时不珍惜好,过了30多岁,啥病都找上门来了,赚的可能没给的药费多。”
啧啧我一个刚刚入行的小白很慌,很慌,在疫情期间白白拿来三个月工资就更加慌了,啥也不会,啧啧。