[新聞]為什麼工程師總是喜歡在三更半夜寫程式?

作者: 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