为什么程序员喜欢在夜间工作?
扫描二维码
随时随地手机看文章
在程序员中一个广为流传的说法就是程序员就是把咖啡因转换为代码的机器,如果随机问一个程序员,他们什么时候效率最高,很有可能他们会说是在深夜。有一个流行的趋势是早上4点起床,就开始完成疯狂一天的某些工作,小部分人则喜欢4点上床睡觉。
当然这一切的前提都是为了避免分心,那时候你除了可以看看房门,你还能干什么呢? 而且当时所有的事情都集中在3件事上,你的日程表、昏昏欲睡的大脑、明亮的电脑屏幕。
程序员的日程表
Paul Graham曾在2009年写过一篇文章叫做the maker’s schedule,里面提到基本上在世界上有两种日程表,一个传统经理的日程安排是一天被划分成几个小时,然后各小时中间是10分钟的休息时间。另外一个就是生产者的日程表———那些专门生产东西的员工的日程表。
他们为某个大型虚拟系统工作,会把整个事件装进脑袋,确保代码运行在一个处理器之前就必须运行在他的思想里。就像不管有多少困难,他都要用水晶构建一个他自己的房子。
这就是程序员一被打扰就会很生气的原因。因为巨大的智力投资,他们根本不可能开始几个小时后又停下来,不然他花了那么多事件在大脑里构建模型,又过一个小时就打断一下,那感觉会让他抓狂。
事实上,你跟许多创始人交流的时候,你就会发现他们老是不确定一天内他们能完成什么事情:接二连三地被打断、突然重要的事情要处理、某封需要回复的邮件,所以他们大部分时间在深夜的时候才有时间完成工作,这时别人都睡着了。
昏昏欲睡的大脑
每一个程序员在晚上都得睡觉,因为我们不是超人,每一个程序员当然在白天更清醒。为什么我们要在大脑昏昏欲睡的时候实行最复杂的工作,而白天在那做些稍微简单的工作呢?
因为累的时候能写出更好的代码?那个时候会让你简单集中在一件事上,因为大脑很累的时候你跟根本没有所谓集中点,没有过剩的脑力让你去分心。一般我们在喝了浓茶或者不合时宜的饮料后反而做了最多的事,这样一下子你就极度活跃,上一秒在检查Twitter动态,下一秒就在看黑客新闻。
有时候你会想,我有如此多的能源、无限的超频脑力,我应该工作地更好,但是相反你因为精力充沛反而集中精力的时间不能超过2秒。如果在夜间,你累了你就挪挪屁股,一个轻度疲倦的大脑甚至让你没时间去刷新Twitter和Facebook,就像互联网不存在似的。
这对于很多程序员是真实的,因为80%的工作他们还是有足够脑力应对的,一般先是写出算法,然后用10倍的代码生成一个环境,并确保它可以运行。即使你做的是最先进的机器学习,大部分的工作是简单的清理数据以及用活泼的方式呈现数据。疲劳也许使你变蠢,但足够应付手头的工作。
明亮的电脑屏幕
这个很简单,在晚上坐在一个明亮的灯光下工作,会延迟你睡觉的时间,甚至直到3点你都没有睡意,然后在第二天11点醒来。而且奇怪地是,时间久了,不到那个点你还睡不着。
最后
总的来说,程序员喜欢在深夜工作,因为你无法预料一件事情完成的时间点,只能以连续性来促进项目进度,在这样一个宽松的心理环境下,你的大脑不会分心、对着明亮的屏幕、手指却在那啪啪地敲着键盘。