為什么你應該試試Github?
在我大四找工作的時候,試圖去尋找一份硬件、物聯網相關的工作(ps: 專業是電子信息工程)。盡管簡歷上寫得滿滿的各種經歷、經驗,然而并沒有卵用。跑了幾場校園招聘會后,十份簡歷(ps: 事先已經有心里準備)一個也沒有投出去——因為學校直接被拒。我對霸面什么的一點興趣都沒有,千里馬需要伯樂。后來,我加入了Martin Flower所在的公司,當然這是后話了。
這是一個殘酷的世界,在學生時代,如果你長得不帥不高的話,那么多數的附加技能都是白搭(ps: 通常富的是看不到這篇文章的)。在工作時期,如果你上家沒有名氣,那么將會影響你下一份工作的待遇。而,很多東西卻會改變這些,Github就是其中一個。
我與Github的故事
注冊Github的時候大概是大二的時候,我熟悉的時候已經是大四了,現在已經畢業一年了。在過去的近兩年里,我試著以幾個維度在Github上創建項目:
- 快速上手框架來實戰,即demo
- 重構別人的代碼
- 創建自己可用的框架
- 快速構建大型應用
- 構建通用的框架 </ol>
- 測試
- 更多的測試
- 更多的、更多的、更多的測試 </ol>
- Promise 支持
- Class類(ps:沒有一個好的類使用的方式)
- Template 一個簡單的模板引擎
- Router 用來控制頁面的路由
- Ajax 基本的Ajax Get/Post請求 </ul>
- 庫和框架: 和jQuery
- 系統: 如Linux、hhvm、docker
- 配置集: 如dotfiles
- 輔助工具: 如oh-my-zsh
- 工具: 如Homewbrew和Bower
- 資料收集: 如free programming books,You-Dont-Know-JS,Font-Awesome
- 其他:簡歷如Resume </ul>
Github與收獲
先說說與技能無關的收獲吧,畢業設計做的是一個《最小物聯網系統》,考慮到我們專業老師沒有這方面知識,答辯時會帶來問題,盡量往這方面靠攏。當我畢業后,這個項目已經有過百個star了,這樣易上手的東西還是比較受歡迎的(ps: 不過這種硬件相關的項目通常受限于Github上硬件開發工程師比較少的困擾)。
畢業后一個月收到PACKT出版社的郵件(ps: 他們是在github上找到我的),內容是關于Review一本物聯網書籍,即在《從Review到翻譯IT書籍》中提到的《Learning Internet of Things》。作為一個四級沒過的"物聯網專家",去審閱一本英文的物聯網書籍。。。當然,后來是審閱完了,書上有我的英文簡介。
一個月前,收到MANNING出版社的郵件(ps: 也是在github上),關于Review一本物聯網書籍的目錄,并提出建議。
也因此帶來了其他更多的東西,當然不是這里的主題。在這里,我們就不討論各種騷擾郵件,或者中文合作。從沒有想象過,我也可以在英語世界有一片小天地。
這些告訴我們,Github上找一個你擅長的主題,那么會有很多人找上你的。
Github與成長
過去寫過一篇《如何通過github提升自己》的文章,現在只想說三點:
沒有測試的項目是很扯淡的,除非你的項目只有一個函數,然后那個函數返回Hello,World。
如果你的項目代碼有上千行,如果你能保證測試覆蓋率可以達到95%以的話,那么我想你的項目不會有太復雜的函數。假使有這樣的函數,那么他也是被測試覆蓋住的。
如果你在用心做這個項目,那么你看到代碼寫得不好也會試著改進,即重構。當有了一些,你的技能會不斷提升。你開始會試著接觸更多的東西,如stub,如mock,如fakeserver。
有一天,你會發現你離不開測試。
然后就會相信: 那些沒有寫測試的項目都是在耍流氓
為什么你應該深入Github
上面我們說的都是我們可以收獲到的東西,我們開始嘗試就意味著我們知道它可能給我們帶來好處。上面已經提到很多可以提升自己的例子了,這里再說說其他的。
方便工作
我們可以從中獲取到不同的知識、內容、信息。每個人都可以從別人的代碼中學習,當我們需要構建一個庫的時候我們可以在上面尋找不同的庫和代碼來實現我們的功能。如當我在實現一個庫的時候,我會在Github上到相應的組件:
獲得一份工作
越來越多的人因為Github獲得工作,因為他們的做的東西正好符合一些公司的要求。那么,這些公司在尋找代碼的時候,就會試著邀請他們。
因而,在Github尋找合適的候選人,已經是一種趨勢。
擴大人脈
如果我們想創造出更好、強大地框架時,那么認識更多的人可能會帶來更多的幫助。有時候會同上面那一點一樣的效果。
其他
實際上,這也是一個和影響力有關的話題。只有更多的提高自己的曝光度,才有機會去接觸更多的人。
Github項目分析
對于Github來說,你并不需要創造一個特別好的框架,你只需要一個好的主題,或者你一個好的Demo。目測,當前在國內最受歡迎的就是各種Android、iOS的庫。
之前曾經分析過一些Github的用戶行為,現在我們先來說說Github上的Star吧。(截止: 2015年3月9日23時。)
用戶 | 項目名 | Language | Star | Url | </tr> </tbody>|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
twbs | Bootstrap | CSS | 78490 | https://github.com/twbs/bootstrap | </tr>|||||||||||||||||||
vhf | free-programming books | - | 37240 | https://github.com/vhf/free-programming-books | </tr>|||||||||||||||||||
angular | angular.js | JavaScript | 36,061 | https://github.com/angular/angular.js | </tr>|||||||||||||||||||
mbostock | d3 | JavaScript | 35,257 | https://github.com/mbostock/d3 | </tr>|||||||||||||||||||
joyent | node | JavaScript | 35,077 | https://github.com/joyent/node | </tr> </tbody> </table>