# 為何程式設計師總在深夜工作

Swizec Teller (opens new window), A Geek With A Hat (opens new window) JAN. 14, 2013, 8:05 PM

原文網址 http://www.businessinsider.com/why-programmers-work-at-night-2013-1 (opens new window)


有人說,程式設計師 (opens new window)是專門把咖啡因轉變成程式碼 (opens new window)的一種機器。

這話其實真有那麼一點道理,隨便找一個程式設計師來,問他工作效率最高的是什麼時候,雖然每個人習慣不同,或早或晚,但絕大部分都會說是在深夜時段,有些人喜歡在凌晨四點起床,然後在忙碌的一天開始之前先完成一些工作,而有些人則是喜歡挑燈夜戰到四點再就寢。

他們這樣的作息習慣,主要都是想要一個不會分心的安靜環境,既然如此為何不把門鎖上就好,幹嘛一定要熬到深夜?

我個人認為主要有三個重要因素:

  1. 創作者的時間規劃
  2. 疲倦的大腦
  3. 螢幕的光源

# 創作者的時間規劃

Paul Graham (opens new window) 在2009年撰寫了一篇 創作者的時間規劃 (opens new window) 的文章,文中提到世界上基本有兩種時間規劃類型,一為 管理者的時間規劃 、另一為 創作者的時間規劃

傳統管理者的時間規劃一般是以小時為單位來分割,假設其中有十分鐘被其他分心事佔用,你的損失頂多也只是有一小時的規劃被打亂。

另一種叫做創作者的時間規劃,一般致力於產出產品的人都屬於這種時間規劃類型,這些創造者在工作的時候,都需要一段完整的時間,把整件專案的結構在心中建起一個龐大的抽象系統,這就好比是在用昂貴的 水晶玻璃 (opens new window) 搭建一棟房屋,一旦有人打擾你,你的貴重房屋就會整個崩塌並碎落一地。

這就是為什麼程式設計師很討厭別人在他工作的時候打擾他。

因為這些心靈投資實在是太龐大了,所以當我們找不到一段完整且不被打擾的幾個小時時間,就不會想要開始工作,你不會希望花很多心力在你腦中建構這些模型,卻又在半小時後被打擾而崩毀。

事實上,跟許多創辦者交談之後,你會發現他們大部分都沒辦法在白天完成工作,各種源源不絕的打擾、重要的事情要處理、還有電子信件要回,就讓他們沒辦法專心,所以他們會選擇在晚上其他人都睡覺的時候,來完成他們的工作。

# 疲倦的大腦

但程式設計師不是超人,他們也是白天比較有精神、晚上要睡覺。

那為什麼我們要在大腦最渾沌的時處理複雜的工作,而在大腦最清楚敏銳的時候做簡單的小事呢?

因為疲累反而能提高我們寫程式的能力。

這情況類似Ballmer Peak效應,疲累反而能促進大腦專心,就是因為太累了所以大腦必須要專心才能工作,已經完全沒有多餘的腦力可以讓你分心了。

Baller's Peak

圖文翻譯

  1. 圖表
    • 縱軸: 程式撰寫能力
    • 橫軸: 血液中酒精濃度
  2. 下左圖: 「這現象叫做Ballmer Peak,在1980年代由Microsoft發現的,造成的原因不明。現象發現血液中酒精濃度介於0.129%到0.138%時,程式設計師會具有超人般的coding能力」
  3. 下中圖: 「但是這種微妙的現象需要細心的微調,你不能直接丟一卡車的威士忌,然後叫程式設計師們開始工作」
  4. 下右圖: 『呃...有這種事嗎?...』「記得Windows ME嗎?」『喔!果然是他』

通常我在喝太多茶或是 提神飲料 (opens new window) 之後,都很難完成什麼工作,他讓我太亢奮了,一下看看Twitter、然後看看Hacker News,整個人忙東忙西的。

你一定會想,有這麼多的體力、還有充足的腦力,我應該可以把工作做的更好,但其實不然,我一直到處亂晃完全沒辦法專心,結果什麼事都沒有完成。

反觀我稍微有點疲累的時候,我就只想把自己釘在椅子上專心寫程式,稍微疲累的大腦,能讓我一小時一小時不斷的寫程式,完全不想去看Twitter或Facebook,就彷彿網際網路完全不存在一樣。

幾乎大部分的程式設計師都是這樣,我們花了過多的腦力在將近80%的的工作上,例如了解問題、設計一個酷炫的演算法等等,然後要再花十倍的心力去架構一個環境來執行他,即使你做先進機器學習之類的東西,你大部分的時間還是花在整理資料,或是美工排版輸出結果而已。

當你的腦袋不是全力在工作的時候,他就會想找別的事來做,而疲累讓你腦袋遲鈍的剛好能專心應付手頭上的一件事。

# 螢幕的光源

這點其實很簡單,在晚上眼睛一直盯著光源,就會讓你的睡眠週期 (opens new window)延後,當你感到疲倦的時候才會發現已經凌晨三點了,然後你去睡覺直到早上十一點才起床,當隔天晚上又來臨的時候你當然又不累,因為,嘿!你十一點才起床耶!

不斷重複這樣的作息,會讓你好像生活在另一個時區一樣,有趣的是一旦你習慣凌晨三四點才睡覺,就很難恢復一般正常的作息了。

有時候或許這就是鬧鐘 (opens new window)要忙的地方,把你在一般人所謂的「早上」把你叫起來,因為這社會就是認為,下午兩點才吃早餐的人,你一定是個很糟很糟的懶鬼。

# 結論

簡而言之,晚上的時間比較少干擾、時間比較完整,不會有零碎的事情中斷工作,讓你更輕鬆、大腦能專心工作,而螢幕的亮光也讓你保持清醒,這就是為何程式設計師總在深夜工作。

註: 原作者Teller寫了一本書「為何程式設計師總在深夜工作 (opens new window)」,回應這篇文章讀者所提出的反應與迴響。


Written with StackEdit (opens new window).

Last Updated: 3/18/2019, 3:07:42 PM