為什麼程式設計師都是夜貓子

hyb3280660發表於2011-12-27
 

本文是從 Why programmers work at night 這篇文章翻譯而來。


倫敦科技館裡一個大猩猩的大腦

倫敦科技館裡一個大猩猩的大腦

一種很流行的說法是,程式設計師是把咖啡因轉化成程式程式碼的機器。

說的是實情,隨便問一個程式設計師,問他什麼時候工作最有狀態,估計他很有可能說是深夜。有人稍微早一點,有人更晚。有一種流行的趨勢是凌晨4點起床,在破曉之前這段時間裡做一些事情。而另一些人喜歡凌晨4點才睡覺。

所有這些的主要目的是躲避打攪。但是你把自己反鎖在屋裡不就行了?為什麼對夜晚情有獨鍾?

我想,這事歸納下來有3點:工人的時間表,疲倦的大腦和明亮的電腦螢幕。

工人的時間表

Paul Graham 在2009年寫了一篇關於 工人的時間表的文章——主要是說這個世界(主要)存在兩種時間表。傳統的管理者的時間表——一天的時間別分成了很多小時,一次十分鐘的分心至多會浪費你1個小時的時間。

機械錶

時間的使用

而另一種情況是程式設計師們所說的工人的時間表——生產東西的人的時間表。研究一個大型的抽象的系統,需要把整件事情裝進大腦——這樣的一些人類似於用珍貴的水晶玻璃搭建一間房子,一旦有人打攪你,整個結構都會滑落,摔成無數的碎片。

這就是為什麼被打擾的程式設計師會如此的生氣。

因為這是一種巨大的精力上的投資,在沒有幾個小時不被打攪的環境中的醞釀,你不可能開始工作。如果你好不容易在大腦中構建了整個要思考的事情的模型,而在半個小時後被人摧毀,這是很大的浪費。

事實上,在跟很多的企業創辦人交談後,你會發現,他們都感覺在白天根本無法做任何事情。持續不斷的打擾、重要的事情需要注意、大量的郵件需要處理,環境不允許他們坐下來做事。於是他們大部分人都在夜晚,人們都入睡的時候去完成他們要做的事做完。

疲倦的大腦

但是程式設計師仍然在晚上會睏倦。程式設計師不是超人。程式設計師甚至在白天都會感到疲勞。

Ballmer's peak

Ballmer’s peak

為什麼我們要把智力上最複雜的事情放到我們的大腦想去睡覺的時間段裡去完成,而在我們的大腦最敏銳最清醒的時候去做相對簡單的事?

因為疲倦讓我們編寫出最好的程式碼。

跟ballmer峰值相似,疲倦能使我們的精力更容易集中,因為你的大腦疲倦了,不得不集中精力!沒有多餘的腦能量來提供你去三心二意。

對我來說,如果喝了太多的茶或在錯誤的時間喝了提神飲料,我反而幹不了什麼事。我會過度興奮,一會檢視微博,一會看看新聞,不知道自己該做什麼。

你會認為我應該更有效率的工作——精力充沛,大腦超頻。但正好相反,我東一榔頭西一耙子,根本無法在一件事情上定神2分鐘。

而反過來,當我稍微有點疲倦時,我卻能把屁股安穩的放到椅子上開始程式設計。在大腦稍微有點疲倦的情況下,我能連續程式設計數小時,毫不考慮微博或Facebook。好像這網際網路根本不存在。

我感覺大部分程式設計師都是跟我的感覺是一樣的。對於日常工作中80%的任務,我們的腦能力都是過剩的——除非你需要寫的是在當前程式執行的環境中讓它 增速10的演算法。即使你開發的是最高階的機器學習想象功能,其中大部分的工作也只是簡單的整理資料和以一種合適的方式表現輸出結果。

當你的大腦不是滿負荷運轉時,它總是想找點事情做。疲乏會讓你遲鈍,手頭的工作就已經夠你消化了。

明亮的電腦螢幕

這一點非常的簡單。在晚上老是盯著明亮的光源,你的睡眠週期會推遲。你忘了該是睡覺的時候了,直到凌晨3點。然後你早上11點才能起來,當晚上再次到來時你不再感到睏倦,因為你11點才起床!

A city

Image via Wikipedia

反覆這樣的作息規律,你的身體會進入另外一個時區。更有趣的是,這種週期不會一直推遲下去,一旦你進入了這種3點或4點才去睡覺的生理平衡狀態,你會一直留在這種狀態裡。

也許這是一種警訊在起作用,社會在告訴我們,如果我們在下午2點吃早餐,會被認為是很邋遢的人。

最後

總結一下,程式設計師喜歡在晚上工作,是因為這時沒有何時應該停止工作的限制,這讓人感到更放鬆,你的大腦不再思考讓你分心的事情,明亮的螢幕使人清醒。

相關文章