GitHub連擊500天:讓理想的編程成為習慣
盡管之前已經有100天、200天、365天的文章,但是這不是一篇象征性的500天的文章。對這樣的一個事物,每個人都會有不同聽看法。有的會說這是一件好事,有的則不是。但是別人的看法終究不重要,因為了解你自己的只有你自己。別人都只是以他們的角度來提出觀點。
在這500天里,我發現兩點有意思的事,也是總結的時候才意識到的:
- 編程的情緒周期
- 有意圖的練習
那么,當我們不斷地練習的時候,我們就可以寫出更好的代碼。
500天小結
我想你也聽過一萬小時天才理論的說法:要成為某個領域的專家,需要10000小時。而在這其中每重要的一點是有意圖的練習——而不是一直重復性地用不同的語言去寫一個相同的算法。如果我們有一天8小時的工作時間 + 2 小時的提高時間,那么我們還是需要1000天才能實現一萬小時。
500天與10000小時
當然如果你連做夢也在寫代碼的話,那么我想500天就夠了,哈哈~~。

雖然不是連擊次數最多的,但是根據 Most active GitHub users 的結果來說,好似是大陸提交數最多的人,沒有之一。再考慮到提交都是有意義的——不是機器刷出來的,不是有意識的去刷,我覺得還是有很大成就感的。
而要實現500天連擊很重要的兩點是:時間和idea。但是我覺得idea并不是非常重要的,我們可以造輪子,這一點就是在早期我做得最多的一件事,不斷地造輪子——如《 造輪子與從Github生成輪子 》一文中所說。除此,你還可以用《GitHub去管理你的idea》,每當你想到一個Idea以及完成一個idea的時間你就會多一次提交。
時間則是一件很諷刺的事,因為人們要加班。加班的原因,要么是因為工作的內容很有意思,要么是因為錢。如果不是因為錢的話,為什么不去換個工作呢?比如我司。看似兩者間存在很多的對立,但是我總在想技術的提升可以在后期解決收入的問題,而不需要靠加班來解決這個問題。人總是要活著的,錢是必需的,但是程序員的收入都不低。
編程的情緒周期
接著,我觀察到了一些有意思的現象——編程的情緒周期也很明顯。
> 所謂“情緒周期”,是指一個人的情緒高潮和低潮的交替過程所經歷的時間。
如下圖所示的就是情緒周期:
簡單地來說,就是 有一個時間段寫代碼的感覺超級爽,有一個時間段不想寫代碼 ,但是如果換一個說法就是: 有一個時間段看書、寫文檔的感覺很爽,有一時間段不想看書、寫文檔的感覺 。這也就是為什么在我的GitHub首頁上的綠色各種花。不過因為《物聯網周報》的原因,我會定期地更新一個相關的開源項目。
但是總來說,我習慣在一些時間造一些輪子、創建文檔,這就是為什么我的GitHub會有一些開源電子書的緣故。
有意圖的練習
編程需要很長的學習時間,也需要很長的練習時間。盡管我是從小學編程,自認為天賦不錯,但是突破了上個門檻還是花費了三四年的時間。其中的很大一部分原因是,沒有找對一個合適的方向。而在這期間也沒有好好的練習,隨后的日子里我意識到我會遇到下一個門檻,便開始試圖有意識的練習。
在我開始工作的時候,我寫了一篇名為《重新思考工作》的文章。在文章中我提到了幾點練習的點:
- 加強碼代碼的準確性
- 寫出更整潔的代碼
- 英語口語 (外企)
- 針對性的加強語言技能
在一些日子的練習后,我發現這還是太無聊了。天生就喜歡一些有意思的東西,有趣才更有激情吧~~。不過,像下圖的打字練習還是挺有意思的:
還是能打出了一堆錯誤的字符。但是對比了一下大多數人的人,還算不錯,至少是盲打。但是,還是存在著很大的提升空間。
隨后,我開始一些錯誤的練習,如對設計模式和架構的練習。試圖去練習一些在生產上用不到的設計模式,以及一些架構模式。而這時就意味著,需要生搬一些設計模式。最后,我開始以項目為目的的練習,這就是為什么我的GitHub上的提交數會有如此多的原因。
預見性練習
還有一種練習比較有意思,算是以工作為導向的練習。當我們預見到我們的項目需要某一些技術,我們可能在未來采用某些技術的時候,我們就需要開始預見性的練習這些技術。
好的一點是:這些項目可能在未來很受初學者歡迎。
總結
每個人都有自己的方向,都有一個不錯的發展路線,分享和創造都是不錯的路。
THE ONLY FAIR IS NOT FAIR . ENJOY CREATE & SHARE.
歡迎關注我的GitHub: https://github.com/phodal 。
來自: http://www.phodal.com/blog/github-500-program-as-usual/