1. 程式人生 > 實用技巧 >GitHub連擊500天:讓理想的程式設計成為習慣

GitHub連擊500天:讓理想的程式設計成為習慣

>>> hot3.png

儘管之前已經有100天、200天、365天的文章,但是這不是一篇象徵性的500天的文章。對這樣的一個事物,每個人都會有不同聽看法。有的會說這是一件好事,有的則不是。但是別人的看法終究不重要,因為了解你自己的只有你自己。別人都只是以他們的角度來提出觀點。

在這500天裡,我發現兩點有意思的事,也是總結的時候才意識到的:

  1. 程式設計的情緒週期
  2. 有意圖的練習

那麼,當我們不斷地練習的時候,我們就可以寫出更好的程式碼。

500天小結

我想你也聽過一萬小時天才理論的說法:要成為某個領域的專家,需要10000小時。而在這其中每重要的一點是有意圖的練習——而不是一直重複性地用不同的語言去寫一個相同的演算法。如果我們有一天8小時的工作時間 + 2 小時的提高時間,那麼我們還是需要1000天才能實現一萬小時。

500天與10000小時

當然如果你連做夢也在寫程式碼的話,那麼我想500天就夠了,哈哈~~。

Gtihub 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

轉發保留: GitHub連擊500天:讓理想的程式設計成為習慣

轉載於:https://my.oschina.net/phodal/blog/625308