我泡在GitHub上的177天

發表於 2022-11-27
Github

這是一個關於我如何連續177天(將近半年)泡在GitHub上不間斷地貢獻程式碼的故事。我會談到我為什麼要這麼做,以及為什麼你也應該效仿,或者至少做點類似的事情。這是一個關於接受挑戰,改變舊習並懂得適可而止的故事。我在這個過程中獲益匪淺,也希望能夠給大家一點啟示。下面我開始講這個故事。

Github的30天挑戰

故事要從一個30天的挑戰開始說起。2月21日那天,我的一個好朋友Shuhao發訊息給我,向我發出挑戰:我必須連續30天向Github提交程式碼更新,而他也同樣要完成這個任務。那時我在Github上的最長“連擊”天數只有5天而已。這個“連擊”記錄太不給力了,我一直想要提高它,卻總是沒有足夠的動力付諸實踐。這個對我倆而言都非常具有挑戰性的機會正是我所需要的。我接受了這個挑戰,並列出了以下幾個簡單的約定:

  1. 除非有顯著的更改,否則編輯README檔案不能計入更新
  2. 禁止使用指令碼自動編輯;所有的提交的更新必須是人為完成的
  3. 禁止提交搞笑的無關程式邏輯之類的更新

一開始我就來了個爆發式增長——第一天提交了近30個更新到我的網站及其他專案。 事實上,這也是我在這近半年的“連擊”過程當中一天內貢獻最多的一次。我立志完成這30天的目標,甚至更長,直到我倆中有一人認輸為止,這樣的想法讓我感到鬥志昂揚——我想這是最好的開端。

 

一個星期

到了一個星期左右的時候,這個挑戰的難度開始漸漸地顯現出來。有一次我差點忘記還有這回事,直到最後一刻才匆匆忙忙把當天的更新提交上去。Shuhao在第八天放棄了;我想他大概是忘記了——這也無可厚非。

 

兩個星期

到了第二週和第三週,每天記得要提交更新已經變得比較容易,我把它變成了一種習慣性地動作。很快這種提交更新的自醒就和刷牙的自覺繫結了起來,而刷牙是一件我很少會忘記去做的事情。與此同時,我開始閱讀一本叫《習慣的力量》的書,這本書讓我瞭解了習慣,以及如何理解和改變你的習慣並從中受益。如果你有興趣瞭解你的大腦是如何處理習慣的,我推薦你讀一下這本書。它很有意思,裡面有個故事提到了一個從來記不住回家路線的人,卻能夠每天在這個街區散步而從來不迷路,這都是因為習慣的力量。有點扯遠了。還沒等我意識到習慣的力量,它已經引領我到達了……

 

三十天!

三十天是個激動人心的里程碑!我做到了!我只想繼續前進!三十天之後,“連擊”就變成了一種生活方式。吃飯,睡覺,提交更新——已經成為常態,我可以不費吹灰之力地把它納入我每天的例行公事。可是像所有習慣一樣,它很難保持百分百的連貫性,有時太忙了就得臨時抱一下佛腳。曾經我從手機上提交過更新,跟朋友聚會到很晚回家之後提交過更新,甚至在“鮑爾默癲峰”【譯註1】狀態下都提交過更新。這讓我想起了一些我學到的關於向GitHub提交程式碼的小技巧:

GitHub程式碼更新小技巧:

  1. GitHub按照太平洋標準時間(PST, Pacific Standard Time)計時,這意味著我可以在東部時間(EST, East Standard Time)凌晨12點到3點之間隨便在哪兒提交程式碼,然後算成是前一天的任務,這招在我有幾次回家特別晚的時候很管用。
  2. 記錄一個問題可以算做提交過東西了,這招在我想不出什麼新點子的時候救我過幾次。
  3. 提交更新和上傳程式碼是分開算的,現在提交更新然後晚點再上傳程式碼,還是會以提交更新的時間為準。
  4. 新建程式碼庫的初次提交是不納入統計的,但是當你第二次提交更新的時候就會把兩次都算進去,這點比較詭異。
  5. 歸併請求建立的時候會被算作一次提交,實際合併分支的時候則算作另一次提交。如果最後兩個分支沒有合併,那麼不好意思,第二次提交就不算數了。

雖然這些小技巧曾經在我的GitHub“連擊”過程中毋庸置疑地挽回了局勢,我還是遵守了之前列出的那些小約定。你可以在這裡找到更多GitHub小貼士。

 

一百天

一百天對我來說也是一個重要的時刻。那時我在舊金山,在Mozilla實習。你可以在我的部落格(注:該文已由@ctcetl 翻譯)上讀到關於這段經歷的所有東西。在Mozilla實習最棒的一點就是一切都是開源的,所以我基本上只需要工作就可以讓我的“連擊”不間斷。雖然沒有說起來那麼容易,但是呆在Mozilla確實幫了大忙。

在Mozilla內部也有一些競爭對手,包括Shuhao,他這個暑假跟我一起在那裡實習,重新開始了他的“連擊”並且這次更加成功;據Mozilla的小道訊息說,另外還有一個我不認識的對手也在默默地與我競爭。

 

一百五十天

那時我繼續堅持“連擊”的動力突然急劇下降。我把這歸根於新想法的缺失,想追尋新挑戰的衝動,同時我也意識到“連擊”總有一天會不可避免地結束。這些因素,再加上實在有太多方法可以作弊(就像這哥們乾的那樣),使得這個挑戰變得來越雞肋。

我想要逃離。我想要片刻休憩,徹底忘掉GitHub。我只想要無拘無束地思考新的主意而不用愁著為了提交更新而提交更新。於是我決定用一個整數來結束”連擊“。我決定一直繼續到兩百天,然後我就可以淡定地坐下來,看著我的“連擊”記錄逐漸崩塌。

 

呃噢!

200天的目標終於還是沒有達成,我在第178天得時候忘了提交更新。意識到杯具的同時,我也卸下了心頭的重擔,感覺渾身輕鬆。一切終於結束了。

 

回顧

177天的“連擊”教會了我不少關於習慣的東西。它教會了我好習慣如果刻意過度遵循的話也會變成壞事;它讓我明白了“不要斷開慣性鏈”【譯註2】的力量,那是驅使GitHub“連擊”成功的激勵方法。我現在仍然定期向GitHub提交更新,但是現在“必須”提交的少了,“需要”提交的多了。我有時會離開電腦幾天去更新我的想法,等我回來的時候就變得更加給力。我推薦每個人都可以嘗試一下用這個方法去打破一箇舊習慣或者建立一個新習慣,但它可能過於強大以至於會讓人不能自拔,所以小心點!

如果你知道誰有比我更長的GitHub“連擊”數,務必告訴我!我還沒找到過這樣的人呢!:)

快樂地貢獻程式碼吧!請在GitHub上follow我!這是在HN上的討論

 

【譯註】

  1. Ballmer Peak, 鮑爾默癲峰,傳說中微軟在80年代末發現的定律,即程式設計師在血液酒精濃度在0.129%~0.138%時會產生超人的程式設計能力。這個能力也有副作用,千萬不要給一個團隊可以喝一年的威士忌然後讓他們開始幹活,Windows ME就是前車之鑑。
  2. Don’t break the chain, 不要斷開慣性鏈,指的是一種自我激勵方法,每天完成一個目標之後就在時間表上做一個標註,時間長了標註就會連成一條鏈,可以用來自我激勵,堅持每天完成目標,這條慣性鏈就不會斷開。


原文連結: Ryan Seys   翻譯: 伯樂線上 龔凌暉
譯文連結: http://blog.jobbole.com/48252/