隨便問乙個程式設計師,問他什麼時候工作最有狀態,估計他很有可能說是深夜。有人稍微早一點,有人更晚。有一種流行的趨勢是凌晨4點起床,在破曉之前這段時間裡做一些事情。而另一些人喜歡凌晨4點才睡覺。
倫敦科技館裡乙個大猩猩的大腦
所有這些的主要目的是躲避打攪。但是你把自己反鎖在屋裡不就行了?為什麼對夜晚情有獨鍾?一種很流行的說法是,程式設計師是把咖啡因轉化成程式**的機器。
我想,這事歸納下來有3點:工人的時間表,疲倦的大腦和明亮的電腦螢幕。
工人的時間表
paul graham 在2023年寫了一篇關於
工人的時間表的文章——主要是說這個世界(主要)存在兩種時間表。傳統的管理者的時間表——一天的時間別分成了很多小時,一次十分鐘的分心至多會浪費你1個小時的時間。
時間的使用
而另一種情況是程式設計師們所說的工人的時間表——生產東西的人的時間表。研究乙個大型的抽象的系統,需要把整件事情裝進大腦——這樣的一些人類似於用珍貴的水晶玻璃搭建一間房子,一旦有人打攪你,整個結構都會滑落,摔成無數的碎片。
這就是為什麼被打擾的程式設計師會如此的生氣。
因為這是一種巨大的精力上的投資,在沒有幾個小時不被打攪的環境中的醞釀,你不可能開始工作。如果你好不容易在大腦中構建了整個要思考的事情的模型,而在半個小時後被人摧毀,這是很大的浪費。
事實上,在跟很多的企業創辦人交談後,你會發現,他們都感覺在白天根本無法做任何事情。持續不斷的打擾、重要的事情需要注意、大量的郵件需要處理,環境不允許他們坐下來做事。於是他們大部分人都在夜晚,人們都入睡的時候去完成他們要做的事做完。
疲倦的大腦
但是程式設計師仍然在晚上會困倦。程式設計師不是超人。程式設計師甚至在白天都會感到疲勞。
ballmer』s peak
為什麼我們要把智力上最複雜的事情放到我們的大腦想去睡覺的時間段裡去完成,而在我們的大腦最敏銳最清醒的時候去做相對簡單的事?
因為疲倦讓我們編寫出最好的**。
跟ballmer峰值相似,疲倦能使我們的精力更容易集中,因為你的大腦疲倦了,不得不集中精力!沒有多餘的腦能量來提供你去三心二意。
對我來說,如果喝了太多的茶或在錯誤的時間喝了提神飲料,我反而幹不了什麼事。我會過度興奮,一會檢視微博,一會看看新聞,不知道自己該做什麼。
你會認為我應該更有效率的工作——精力充沛,大腦超頻。但正好相反,我東一榔頭西一耙子,根本無法在一件事情上定神2分鐘。
而反過來,當我稍微有點疲倦時,我卻能把屁股安穩的放到椅子上開始程式設計。在大腦稍微有點疲倦的情況下,我能連續程式設計數小時,毫不考慮微博或facebook。好像這網際網路根本不存在。
我感覺大部分程式設計師都是跟我的感覺是一樣的。對於日常工作中80%的任務,我們的腦能力都是過剩的——除非你需要寫的是在當前程式執行的環境中讓它 增速10的演算法。即使你開發的是最高端的機器學習想象功能,其中大部分的工作也只是簡單的整理資料和以一種合適的方式表現輸出結果。
當你的大腦不是滿負荷運轉時,它總是想找點事情做。疲乏會讓你遲鈍,手頭的工作就已經夠你消化了。
明亮的電腦螢幕
這一點非常的簡單。在晚上老是盯著明亮的光源,你的睡眠週期會推遲。你忘了該是睡覺的時候了,直到凌晨3點。然後你早上11點才能起來,當晚上再次到來時你不再感到困倦,因為你11點才起床!
image via wikipedia
反覆這樣的作息規律,你的身體會進入另外乙個時區。更有趣的是,這種週期不會一直推遲下去,一旦你進入了這種3點或4點才去睡覺的生理平衡狀態,你會一直留在這種狀態裡。
也許這是一種警訊在起作用,社會在告訴我們,如果我們在下午2點吃早餐,會被認為是很邋遢的人。
最後總結一下,程式設計師喜歡在晚上工作,是因為這時沒有何時應該停止工作的限制,這讓人感到更放鬆,你的大腦不再思考讓你分心的事情,明亮的螢幕使人清醒。
為什麼程式設計師都是夜貓子?
一種很流行的說法是,程式設計師是把咖啡因轉化成程式 的機器。說的是實情,隨便問乙個程式設計師,問他什麼時候工作最有狀態,估計他很有可能說是深夜。有人稍微早一點,有人更晚。有一種流行的趨勢是凌晨4點起床,在破曉之前這段時間裡做一些事情。而另一些人喜歡凌晨4點才睡覺。所有這些的主要目的是躲避打攪。但是你...
夜貓子式的生活為什麼存在?
這個問題已經困擾我好久了,我真的很想弄明白,為什麼夜貓子式的生活會那麼普遍?想換工作很久了,但是一直沒有特別合適的。至於為什麼換工作,就是馬雲說的兩條吧,錢少了,心傷了,哈哈,我就不在這裡說這個了。但是為什麼一直沒有合適的。我自己覺得不是我不牛 當然也確實不牛,但是做deep learning,co...
程式設計師為什麼跳槽
程式設計師頻繁跳槽似乎成了乙個不可避免的現象。很多 請來所謂的職業分析人士,人力資源管理者座談,分析 看了看,多數屬於小兒科,很少有真正從乙個程式設計師的角度和眼光去看問題的。我認為,乙個程式設計師跳槽根本的原因,主要是公司團隊問題,其次是公司企業文化問題。很多人只看到了薪金問題這個表象,事實是,薪...