為什麼你總喜歡在半夜寫代碼?

點擊上方   

?

   藍字關注七月在線實驗室

相信大家都聽說過:「

程序員就是一個把咖啡因轉換成代碼的機器

」,有了代碼再也不困了~

究竟為什麼程序員喜歡在半夜寫代碼?白天都在做什麼呢,非要等到半更三夜開始擼代碼?還是因為其ta什麼呢?emmm~

本文的作者是Swizec Teller,他是一名自由職業者兼連續創業家,有超過17 年以上的軟體開發經驗,自稱 A Geek with a Hat。幾年前因為在inside.com上發了一篇文章《Why programmers work at night》,解釋為什麼大部分工程師,包括他本人,總是遵循著「吸血鬼的生活作息」來寫代碼。

《Why programmers work at night》最後還寫成了一本書,可以在Swizec Teller的網站上購買電子書或實體書籍。書的內容主要是其文章的延伸,加上他擔任工程師以來的個人經驗、採訪其他工程師的心得、以及針對工程師的心理學研究。

很多人笑說:

工程師是可以將咖啡因轉換成代碼的機器。」

畢竟很多程序員會告訴你,他們工作最有效率的時段是在夜深人靜的時候。有些人比較早,有些人比較晚,最常見到的作息時間大概是這兩種:

凌晨四點起床做事的,跟凌晨四點做完事去睡覺的。

這種作息時間的用意就是為了減少分心的機會。不過你可能會問,鎖上房門不是可以達到一樣的效果?何必熬夜傷身寫代碼?

深夜工作的關鍵就在於三件事:

創作者的時間表、睏倦的大腦、明亮的電腦屏幕。

創作者的時間表

Paul Graham在2009年寫了一篇文章《Maker』s Schedule, Manager』s Schedule》,他認為基本上世界上主要分成兩種時間表,一種是「管理者的時間表」(Manager』s Schedule),適用於總經理、總監、產品經理等「管理者」;另一種則是「創作者的時間表」(Maker』s Schedule),適用於軟體工程師、設計師、開發者、作家等「創意工作者」。

首先先簡單介紹「管理者的時間表」,這種時間表是以「一小時」為基本劃分單位,每小時都有不同的事情需要處理,大部份的人都是在這樣的時間表下工作。Paul Graham 認為這是一個適合「下命令」的時間表(Schedule of command),因為時間可以彈性安排、拆開再重組,所以這個小時去開會、下個小時要整理會議記錄、再下個小時去拜訪廠商,即使不小心分心了,十分鐘的分心頂多耗掉一個小時的時間,每件事情都可以立即處理。

另一種則是「創作者的時間表」,也就是我們這些工程師所遵循的時間表。Paul Graham 認為對創作者而言,每個時間單位至少要有半天這麼長,因為工程師不可能在一個小時內寫完一個功能,一個小時可能還不夠他們「準備開始」寫代碼,畢竟「創作」是需要時間醞釀的。

這樣的時間表就像在一個龐大的抽象系統中投入大量的精力工作,有人比喻成用昂貴的水晶玻璃來蓋房子,一旦有人分散你的注意力,整項工程就會瞬間崩塌,碎成千萬片。

這就是為什麼工程師非常討厭工作時被別人打斷或分心。

也因為工程師非常需要集中精神來工作,所以除非能連續好幾個小時不被打擾,不然我們根本不想開始工作。好不容易在腦子裡勾勒出設計流程、進入狀況,一旦被打斷,一切都得捲土重來。

事實上,如果你和創業家們討論這個問題,就會發現他們在白天里根本沒辦法完成任何開發工作。最普遍的障礙就是受到一連串的干擾,像是臨時出現許多急事需要處理、重要的電子郵件需要回覆等等。因此創業家大部份都選在深夜裡、其他人在休息的時候,再進行這些開發工作。

睏倦的大腦

不過工程師們晚上也還是得睡覺,畢竟我們又不是什麼不用休息的新新人類,而且白天的精神一定還是比晚上好上許多。那為什麼我們要把這些複雜的開發工作留在大腦睏倦的時候做,然而頭腦最敏銳清晰時,卻做些相對簡單的事情呢?

因為「累」是讓工程師Code 更好的訣竅。

聽過Ballmer Peak 嗎?一點點的微醺可以讓工程師發揮超人般的Coding 技巧,然而一點點疲倦也可以達到一樣的效果。當你的大腦開始累了、困了的時候,根本沒有多餘的精力可以「分心」,你不得不集中精神完成工作。

以我個人的經驗來說,在喝了太多茶或能量飲料、精神最充沛的時候,我工作反而最沒效率。照理說,有這麼多的精力跟腦力,應該能用來寫代碼、找bug,但事實上因為大腦跟身體「太嗨」,我根本靜不下心來好好做事,一下子上Twitter、一下子看Hacker News,沒辦法專註在同一件事情上兩秒鐘。

相反的,當有點累時,我才會把屁股好好的黏在椅子上開始寫代碼。在大腦稍微有點疲倦的情況下,我可以寫代碼連續寫上好幾個小時,根本不會想到Twitter 或Facebook,完全忘記網路的存在。

而且我發現大多數的工程師、開發者們都有和我一樣的情況。日常生活中百分之八十的事情,都不需要大腦全力運作就能解決,因此在腦力過剩的情況下,你就會去找其他事情做。疲倦會讓你「笨得剛剛好」,沒有多餘的腦容量塞其他東西,腦力只夠把手邊的工作做完,根本沒辦法分心。

明亮的電腦屏幕

這點倒是很好理解,晚上長時間地盯著電腦螢幕工作,會延遲你的睡眠周期,讓你忘記疲倦,直到凌晨三、四點才去睡覺,然後睡到隔天中午才起床。然而當夜晚再次來臨時,你會感覺精神很好,這是當然的!畢竟你睡到中午才起床啊。

重複這樣的作息一陣子後,你的身體會適應這樣的規律,活在一個不同的「時區」。更有趣的是,我發現這樣的睡眠周期不會一直向後延,而是在凌晨三、四點左右達到一個平衡,然後停留在這個時區里。

這可能是因為,如果一直向後延,睡到下午、甚至傍晚才起床的話,其他人會認為你是個無可救藥的大懶蟲,這種「社會壓力」逼得我們不得不停留在四點入睡、中午起床的時區里,畢竟再更晚睡的話,中午肯定是起不來啦!

總而言之,工程師之所以偏愛在三更半夜寫代碼,就是因為在深夜裡工作時間沒有限制,可以更靈活地運用時間(最慘就是今晚不睡覺而已),而且大腦疲倦得不容易分心,最後,狂盯著電腦屏幕剛好可以保持清醒。

程序員的生活不易,請多多關愛你身邊的Ta

讓代碼沒有bug,願世界和平。

那麼,今天你還要寫代碼嗎?

是時候應該讓自己放鬆下了,好好感受下身邊的人和事,做做你想做的事,陪陪你身邊的人!

人生的代碼永遠寫不完。

除了寫代碼,還有其它有意義的嗎?當然有了,那就是

【AI】

,人人都需要AI,AI無處不在。特別的 

AI 

給特別的你~?

原文:https://swizec.com/blog/why-programmers-work-at-night/swizec/3198

翻譯:https://www.inside.com.tw/2014/12/24/why-programmers-work-at-night

今日學習推薦

我們的【

機器學習集訓營第六期

】課程

正在火熱報名中

10月22日起正式上課

三個月挑戰年薪四十萬,甚至更高薪

重點來嘍

??

七月在線已與BAT等一線公司達成合作

9月起

BAT等公司將每月定期

來集訓營現場招人面試

併當場給予招聘結果

??

這麼好的機會,還在等什麼

抓緊時間報名嘍

挑戰高薪,從現在開始

(ps:兩人及以上組團立減

500元

可添加客服幫忙組團,微信號:

julyedukefu_02

 

更多資訊

 請戳一戳

往期推薦

2019校招面試必備,15個CNN關鍵回答集錦【建議收藏】

年薪25萬的程序員都選擇轉行了,究竟是什麼行業這麼熱門?

數據結構究竟是什麼?為什麼你一定要學好數據結構?

看懂深度學習真的那麼難嗎?初中數學,就用10分鐘

一圖了解整個機器學習的核心知識體系(建議收藏)

點擊「閱讀原文」,可在線報名

推薦閱讀:

宋慶齡為什麼沒有提出與孫中山合葬或附葬於中山陵?
我和蔡徐坤交換了9個秘密,終於明白了為什麼1500萬個女孩都喜歡他。
孫悟空為什麼會服軟於玉皇大帝?緣於一次殺雞儆猴的天設之計
為什麼你用海藍之謎、SK2都沒用?!大多數人不知道,每周2次的這件事一定要做啊
每日一搭 | 9月11日穿什麼?

TAG:代碼 | 寫代碼 | 什麼 |