专栏名称: 程序人生
程序人生,不止一面。关注程序员生活,汇聚开发轶事,奉送各种福利。
目录
相关文章推荐
程序猿  ·  模仿一下领导说话的样子 ·  3 天前  
程序猿  ·  字节跳动因代码抄袭,被判赔8266.8万元 ·  昨天  
程序员小灰  ·  DeepSeek俱乐部,最后一天优惠! ·  3 天前  
OSC开源社区  ·  AI的三岔路口:专业模型和个人模型 ·  4 天前  
OSC开源社区  ·  8G的容器Java堆才4G怎么就OOM了? ·  4 天前  
51好读  ›  专栏  ›  程序人生

如果想将咖啡豆磨成代码,那就去买台“程序员”好了

程序人生  · 公众号  · 程序员  · 2017-07-29 22:22

正文

喝的是咖啡,挤出来的代码。

随便找个有上进心的程序员问问,就会发现他们多半都会在深夜活动。有的早起,有的晚睡;有的凌晨 4 点起床,有的凌晨 4 点入睡。


这么做的关键还是为了集中精力。但实际上,你完全可以闭门静思,那样跟半夜工作又有什么区别呢?


程序员为什么喜欢夜间工作?


我认为这取决于三个因素: 创作者的日程、沉睡的大脑和明亮的电脑屏幕。



创作者的日程



保罗 · 格雷厄姆(PaulGraham)2009 年撰文描述过创作者的日程——从根本上讲,世界上主要有两种日程。传统的管理者日程以小时为单位来划分,10 分钟的干扰最多只会浪费你 1 小时的时间。


但与此同时,格雷厄姆还总结了一种 “创作者的日程”——也就是我们这些搞创作的人所遵循的日程。从事一个庞大的抽象系统,需要把全部精力都投入其中——曾经有人将此比作用昂贵的水晶玻璃来搭建房屋,一旦有人分散你的精力,整个工程都会土崩瓦解成无数的碎片。


正因如此,程序员对干扰他们工作的事情才格外厌恶。



由于这是一笔重大的脑力投资,所以,除非能连续工作好几个小时而不被打扰,否则我们根本无法开始工作。费尽心思在脑海中搭建出了整个模型,但却在半小时后土崩瓦解,绝对是件得不偿失的事情。


事实上,如果你有幸与很多企业创始人进行沟通,就会发现,他们很难在白天完成任何工作。因为在白天,他们要面临各种干扰,需要处理各种重要事情,还要回复各方邮件。所以,多数人都选择在夜深人静,其他人都入睡时,再来干正事。



沉睡的大脑



但就算是程序员,到了晚上也该睡觉——程序员也是人,他们到了白天也会感觉更加清醒。


既然如此,我们为什么还要在大脑想要入睡时完成最耗脑力的工作,反而在大脑最亢奋、最清醒的时候完成相对简单的任务呢?



因为越是疲劳,就越能写出好代码。


与鲍尔默峰值类似 (ballmerpeak),疲劳反而能让我们更好地集中精力,原因很简单:因为大脑很疲劳,所以不得不集中精力!没有多余的脑力让你分神。


当喝茶过多或者在不恰当的时候摄入能量饮料时,我的工作效率往往最低。这会导致我异常活跃,一会儿刷 Twitter,一会儿看新闻,思维总是东奔西跑,无法聚精会神。


我本以为这样可以更好地工作——精力充沛,脑力富足。但恰恰相反,我始终在牵绊自己的进程,无法集中精力超过两秒。


相反,当我略感疲惫时,我会集中精力编程。由于大脑略感疲惫,所以我能连续好几个小时编程,而不会分散精力去刷 Twitter 或 Facebook,感觉就像互联网消失了一样。


我认为这适用于多数程序员。我们的脑力对于 80% 的工作而言都是过剩的——面对现实吧,要写出一段生动的代码,需要编写 10 倍的平庸代码来为它营造良好的运行环境。即使你从事的是最先进的机器学习(或其他技术),很多工作也只是清理数据,以及用令人愉悦的方式呈现结果。


当你的大脑没有全负荷运转时,它就会寻找其他可做的事情。疲劳会让你变得迟钝,集中精力处理手头的工作,无暇顾及其他。



明亮的电脑屏幕




这一点很容易理解。在夜间盯着明亮的光源,你的睡眠周期就会推后。你会不知疲倦地工作到凌晨 3 点。然后,你会一觉睡到上午 11 点。而夜幕降临时,你也不会感觉疲劳,因为你 11 点才刚刚起床。


经过足够的反复后,你相当于进入了不同的时区。更有趣的在于,这种状态似乎不会反弹:一旦你进入了凌晨三四点入睡的均衡状态,就会始终保持这种节奏。


或者,当周围的人都告诉我们,下午 2 点吃早餐实在是太懒惰了,那么我们或许就会让闹钟来改变自己的作息时间。


综上所述,程序员之所以在夜间工作,是因为在这样的环境下,工作时间不会被施加任何限制,这就给了你更大的灵活性。而且,你的大脑也不会反复地分心,而明亮的屏幕也会让你保持清醒。




你可能还想看







请到「今天看啥」查看全文