[新闻]为什么工程师总是喜欢在三更半夜写程式?

楼主: maurice0219 (阿广.Maurice)   2014-12-30 17:46:44
另问卦:有没有其他职业/工作一定要在晚上工作的呢?(除了服务业)
建议看原文原址:
http://ppt.cc/T8V5
Swizec Teller 是一名自由工程师兼连续创业家,有超过 17 年以上的程式
开发经验,自称“戴帽子的宅男”(A Geek with a Hat)。几年前因为在
部落格上发了一篇文章《Why programmers work at night》,解释为什么
大部分工程师,包括他本人,总是遵循着“吸血鬼的生活作息”来写程式。
结果这篇文章大受欢迎,Swizec Teller 的部落格因此暴增了 50 倍网站流
量。文章发出后的第四天,他一共得到了 627 个 Google + 赞数、288 个
Twitter 追踪者、475 个 Reddit 最新回应、7000 个 Facebook 赞数,以
及超过 89000 名部落格当日访客(以往他的部落格一个月累积起来顶多达
到 30000 名访客)。
《Why programmers work at night》最后还写成了一本书,可以在 Swizec
Teller 的网站上购买电子书或实体书籍。书的内容主要是其文章的延伸,
加上他担任工程师以来的个人经验、采访其他工程师的心得、以及针对工程
师的心理学研究。
在这里将 Swizec Teller 的文章《Why programmers work at night》分享
给大家,本文并非逐字翻译,笔者加了一些细节帮助大家理解内容,有兴趣
的话可以阅读文章原文,或线上阅读这本书。
Why programmers work at night?
很多人笑说:“工程师是可以将咖啡因转换成程式码的机器。”
毕竟很多工程师会告诉你,他们工作最有效率的时段是在夜深人静的时候。
有些人比较早,有些人比较晚,最常见到的作息时间大概是这两种:凌晨四
点起床做事的,跟凌晨四点做完事去睡觉的。
这种作息时间的用意就是为了减少分心的机会。不过你可能会问,锁上房门
不是可以达到一样的效果?何必熬夜伤身写程式?
深夜工作的关键就在于三件事:创作者的时间表、困倦的大脑、明亮的电脑
萤幕。
创作者的时间表 The Maker's Schedule
Paul Graham 在 2009 年写了一篇文章《Maker's Schedule, Manager's
Schedule》,他认为基本上世界上主要分成两种时间表,一种是“管理者的
时间表”(Manager's Schedule),适用于总经理、总监、产品经理等“管
理者”;另一种则是“创作者的时间表”(Maker's Schedule),适用于软
体工程师、设计师、开发者、作家等“创意工作者”。
首先先简单介绍“管理者的时间表”,这种时间表是以“一小时”为基本划
分单位,每小时都有不同的事情需要处理,大部份的人都是在这样的时间表
下工作。Paul Graham 认为这是一个适合“下命令”的时间表(Schedule
of command),因为时间可以弹性安排、拆开再重组,所以这个小时去开
会、下个小时要整理会议记录、再下个小时去拜访厂商,即使不小心分心
了,十分钟的分心顶多耗掉一个小时的时间,每件事情都可以立即处理。
另一种则是“创作者的时间表”,也就是我们这些工程师所遵循的时间表。
Paul Graham 认为对创作者而言,每个时间单位至少要有半天这么长,因为
工程师不可能在一个小时内写完一个程式,一个小时可能还不够他们“准备
开始”写程式,毕竟“创作”是需要时间酝酿的。
这样的时间表就像在一个庞大的抽象系统中投入大量的精力工作,有人比喻
成用昂贵的水晶玻璃来盖房子,一旦有人分散你的注意力,整项工程就会瞬
间崩塌,碎成千万片。这就是为什么工程师非常讨厌工作时被别人打断或分
心。
也因为工程师非常需要集中精神来工作,所以除非能连续好几个小时不被打
扰,不然我们根本不想开始工作。好不容易在脑子里勾勒出设计流程、进入
状况,一旦被打断,一切都得卷土重来。
事实上,如果你和创业家们讨论这个问题,就会发现他们在白天里根本没办
法完成任何开发工作。最普遍的障碍就是受到一连串的干扰,像是临时出现
许多急事需要处理、重要的电子邮件需要回复等等。因此创业家大部份都选
在深夜里、其他人在休息的时候,再进行这些开发工作。
困倦的大脑 The Sleepy Brain
不过工程师们晚上也还是得睡觉,毕竟我们又不是什么不用休息的新新人
类,而且白天的精神一定还是比晚上好上许多。那为什么我们要把这些复杂
的开发工作留在大脑困倦的时候做,然而头脑最敏锐清晰时,却做些相对简
单的事情呢?
因为“累”是让工程师 Code 更好的诀窍。
听过 Ballmer Peak 吗?一点点的微醺可以让工程师发挥超人般的 Coding
技巧,然而一点点疲倦也可以达到一样的效果。当你的大脑开始累了、困了
的时候,根本没有多余的精力可以“分心”,你不得不集中精神完成工作。
以我个人的经验来说,在喝了太多茶或能量饮料、精神最充沛的时候,我工
作反而最没效率。照理说,有这么多的精力跟脑力,应该能用来写程式、找
bug,但事实上因为大脑跟身体“太嗨”,我根本静不下心来好好做事,一
下子上 Twitter、一下子看 Hacker News,没办法专注在同一件事情上两秒
钟。
相反的,当有点累时,我才会把屁股好好的黏在椅子上开始写程式。在大脑
稍微有点疲倦的情况下,我可以写程式连续写上好几个小时,根本不会想到
Twitter 或 Facebook,完全忘记网络的存在。
而且我发现大多数的工程师、开发者们都有和我一样的情况。日常生活中百
分之八十的事情,都不需要大脑全力运作就能解决,因此在脑力过剩的情况
下,你就会去找其他事情做。疲倦会让你“笨得刚刚好”,没有多余的脑容
量塞其他东西,脑力只够把手边的工作做完,根本没办法分心。
明亮的电脑萤幕 Bright Computer Screens
这点倒是很好理解,晚上长时间地盯着电脑萤幕工作,会延迟你的睡眠周
期,让你忘记疲倦,直到凌晨三、四点才去睡觉,然后睡到隔天中午才起
床。然而当夜晚再次来临时,你会感觉精神很好,这是当然的!毕竟你睡到
中午才起床啊。
重复这样的作息一阵子后,你的身体会适应这样的规律,活在一个不同的
“时区”。更有趣的是,我发现这样的睡眠周期不会一直向后延,而是在凌
晨三、四点左右达到一个平衡,然后停留在这个时区里。
这可能是因为,如果一直向后延,睡到下午、甚至傍晚才起床的话,其他人
会认为你是个无可救药的大懒虫,这种“社会压力”逼得我们不得不停留在
四点入睡、中午起床的时区里,毕竟再更晚睡的话,中午肯定是起不来啦!
结语
总而言之,工程师之所以偏爱在三更半夜写程式,就是因为在深夜里工作时
间没有限制,可以更灵活地运用时间(最惨就是今晚不睡觉而已),而且大
脑疲倦得不容易分心,最后,狂盯着电脑萤幕刚好可以保持清醒。
作者: whccpl (喵派)   2014-12-30 17:47:00
安静阿!!
作者: kevin31a2 (3等士官长 士兵督导长)   2014-12-30 17:48:00
耍自闭吧
作者: A19870720 (清明上河豚)   2014-12-30 17:48:00
隔天要被钉了
作者: KENT5566 (畜生肥宅)   2014-12-30 17:48:00
在公司做不完啊
作者: wotupset (wotupset)   2014-12-30 17:48:00
深夜安静啊 白天大脑要去过滤/无视多余的背景噪音思考当然会顿吨的
作者: leecoco (小白是黄色滴)   2014-12-30 17:49:00
卡关要问人阿
作者: akira00150 (アッー!キラッ☆)   2014-12-30 17:49:00
我也是半夜工作效率比较高...
作者: Leeng (Leeng)   2014-12-30 17:50:00
白天要上PTT
作者: akira00150 (アッー!キラッ☆)   2014-12-30 17:50:00
是说什么时候Geek直接翻译成宅男了...
作者: holydc (のヮの)   2014-12-30 17:50:00
效率不确定,但我觉得半夜灵感比较强 XD
作者: cozy15027 (CoZy)   2014-12-30 17:50:00
晚上效率高啊
作者: rofellosx (鏖)   2014-12-30 17:51:00
被人打扰真的超讨厌
作者: bugya (有宅男可当 谁肯当型男)   2014-12-30 17:51:00
对阿Geek怎么会翻成宅男
作者: wefun (TOEIC认证905分)   2014-12-30 17:52:00
没这种事 晚上睡眠时间充足 白天大脑才能好好思考
作者: pierreqq (叶子上的风)   2014-12-30 17:53:00
我晚上可以请甲脖师帮我写code
作者: sellgd (李先生)   2014-12-30 17:54:00
和困绝对没关系 想睡时的工作品质非常差 晚上安静是真的去小睡 刚起床的工作效率最高
作者: Aggro (阿果)   2014-12-30 17:54:00
半夜最麻烦 应该是饮料店没开吧 买不到手摇无糖绿
作者: johnny3 (キラ☆)   2014-12-30 17:55:00
科技宅吧
作者: su119 (sasaya)   2014-12-30 17:55:00
有些科技厂的rd都是上大夜..
作者: sellgd (李先生)   2014-12-30 17:55:00
白天也是早上睡醒和午睡后的工作效率最高 但不比晚上安静
作者: Leeng (Leeng)   2014-12-30 17:55:00
我也喜欢在半夜写code
作者: IvanLord (施主,你还是自尽吧)   2014-12-30 17:55:00
半夜做事效率高+1
作者: jab (Jab 滉)   2014-12-30 17:56:00
因为台湾没有在家工作文化, 所以只好下班后半夜写
作者: Aggro (阿果)   2014-12-30 17:56:00
不过身为常半夜做坏事的人 这篇说的还算蛮符合自己的情况XD
作者: limitex (界王)   2014-12-30 17:57:00
有同感...
作者: Gasolsister (麻绳理工之花)   2014-12-30 17:58:00
半夜灵感的确比较多
作者: ARTORIA   2014-12-30 17:58:00
半夜coding+1 写到最后会感觉自己进入ZONE了
作者: sellgd (李先生)   2014-12-30 18:00:00
艺术 设计等可以电子通勤的经验应该差不多吧
作者: ARTORIA   2014-12-30 18:00:00
现在蛮怀念那种写程式写到快升天的感觉
作者: Aggro (阿果)   2014-12-30 18:01:00
晚上写小说 写到快升天 看到早上第一道阳光就像天启....
作者: SuperUp (( ̄▽ ̄#)﹏﹏)   2014-12-30 18:04:00
真的丫 这一年不管时间怎么调 最后都会变四点睡或起床对创作者来说coding其实蛮枯燥乏味,跟不上创意脑飞跃速度
作者: e761031 (喜乐的心乃是良药)   2014-12-30 18:11:00
半夜写程式真的比较有感觉
作者: sellgd (李先生)   2014-12-30 18:13:00
对coding有热诚的人应该不会觉得乏味 还有余力兼差
作者: chiruru (chiruru)   2014-12-30 18:15:00
可以边尻边写
作者: amos6064 (amos)   2014-12-30 18:16:00
我是四点起床的族群^_^。
作者: free11234 (里)   2014-12-30 18:17:00
真的半夜写程式不会去看FB PTT 超集中 然后就白天了..
作者: SuperUp (( ̄▽ ̄#)﹏﹏)   2014-12-30 18:17:00
花5分钟就把程式想完了,却要花1小时实现,就想请人code了
作者: aceone   2014-12-30 18:17:00
灵感的确跟累有关 类似喝醉酒 所以半夜容易生出好点子
作者: amos6064 (amos)   2014-12-30 18:17:00
写到6:30游个泳再上班
作者: SuperUp (( ̄▽ ̄#)﹏﹏)   2014-12-30 18:20:00
重点是那一小时学不到东西 只是单纯的coding劳动
作者: rick6304 (rick)   2014-12-30 18:22:00
半夜四点要看八卦版 根本没文章阿
作者: justadog (狗人)   2014-12-30 18:33:00
有点累比较容易专心+1
作者: frontpagexp   2014-12-30 18:37:00
非常的有同感.....
作者: FRX (がぬすぬ)   2014-12-30 18:57:00
以前硕士论文就是晚上10点之后写完的...
作者: mathrew (Joey)   2014-12-30 19:02:00
半夜才没人吵啊 傻傻的
作者: NoCanDo (没法度)   2014-12-30 19:32:00
+1 半夜才有办法持续画图超过5个小时 白天根本没办法虽然对肝真的不是很好啦... 一个星期三天就够了
作者: serval623 (洛杉磯強姦人)   2014-12-30 19:34:00
台湾人的时间表早上还要打卡
作者: itachi0609 (紫苑)   2014-12-30 19:35:00
夜深人静思绪清明
作者: TFFs (TFFs)   2014-12-30 20:07:00
因为喜欢拖到最后一刻才写

Links booklink

Contact Us: admin [ a t ] ucptt.com