如何高效利用GitHub


Q1:GitHub是什麼

A1:一家公司

位於舊金山,由Chris WanstrathPJ Hyett 與Tom Preston-Werner三位開發者在2008年4月創辦。html

node

今天,GitHub已經是:python

  • 一個擁有143萬開發者的社區。其中不乏Linux發明者Torvalds這樣的頂級黑客,以及Rails創始人DHH這樣的年輕極客。

Q2:GitHub風格


高利潤,較低的融資額或者零融資

相似於GitHub這樣的公司,拿到風險投資很難嗎?偏偏相反,創始人PJ Hyett 在Hacker News的一篇評論中提到,自從GitHub創辦以來,已與幾十個VC溝經過。可是,直到今天,GitHub的融資額仍是爲零,並引覺得豪。nginx

運營良好與較高的內外滿意度

在Quora上有人問道,GitHub是否尋找被收購?,仍是PJ Hyett ,他的回答是:No。git

GitHub從一開始就運營良好,員工擁有較高滿意度,看看這些不太同樣的作法:程序員

  • 每一位GitHub公司的新員工,官方博客將發表文章歡迎。
  • 在GitHub內部,沒有經理,需求內容與優先級由項目組自行決策。
  • 選擇本身的工做時間、工做地點。
  • 員工來自開源社區。
  • 能開源的儘量開源。

富有激情、創意的員工使得GitHub獲得了社區的普遍認同,從而擁有極高的客戶滿意度,並從創業一開始就盈利。github

專一創做,高創意

GitHub59名全職員工僅有29名員工在本地工做!不只僅是工做地點的安排富有創意,GitHub員工Holman, 詳細介紹了GitHub的工做方式:web

Q3:在GitHub,如何跟牛人學習

A3:在學習區刻意練習

追隨牛人,與他們一塊兒修行

</>修行之道: 關注大師的言行, 跟隨大師的舉動, 和大師一併修行, 領會大師的意境, 成爲真正的大師。

正如這首禪詩所言,與其在牆內仰望牛人,不如直接在GitHub:shell

  • watch、fork牛人們
  • 對他們的項目提交pull request
  • 主動給牛人們的項目寫wiki或提交測試用例,或者問題
  • 還能夠幫他們翻譯中文

GitHub自己建構在git之上,git成爲勾搭大師們的必要工具,如下讀物成爲首選:編程

若是但願進一步深刻,能夠閱讀已有中文翻譯版的材料:

一樣,若是但願瞭解更多GitHub自身的知識,GitHub官方文檔值得推薦:

牛人在哪裏?

關於學習的心理學研究,經常會談到一個術語:元認知、元學習、元知識。你對這些信息的偏好與熟練掌握,會讓你在學習一門新東西時更加輕車熟路。對一手信息進行回溯,好比做者、創始人、最初文獻出處,老是會讓你更容易理解知識。

在學習區刻意練習:藉助GitStats進行項目統計

如何學習一門新的編程語言?——在學習區刻意練習中,我已談過:

學習編程最好的方式是在學習區刻意練習。

如何進行自我監督?

藉助於GitStats,咱們能很好地統計本身的每一個項目的工做量,從而看到工做進展。

用法以下,

</>#複製GitStats項目到本地 cd ~/dev git clone git://github.com/trybeee/GitStats.git python ~/dev/gitstats/git-stats /youproject public

如下爲生成結果示範:

每週代碼提交次數:

天天代碼提交行數:

若是Fork別人的項目或者多人合做項目,最好每人都擁有一個獨立分支,而後由項目維護人合併。如何創建本身的分支?

</># 分支的建立和合並 # git branch yourbranch  # git checkout yourbranch    切換到yourbranch  # 開發yourbranch分支,而後開發以後與master分支合併  # git checkout master # git merge yourbranch # git branch -d yourbranch    合併完後刪除本地分支

如何將牛人的遠程分支更新到本身的本地分支?

</># 查看當前項目下遠程 # git remote # 增長新的分支連接,例如 git remote add niuren giturl… # 獲取牛人的遠程更新 git fetch niuren # 將牛人的遠程更新合併到本地分支 git merge niuren/master

生產力小技巧

codeshelver:給git庫作標籤

觀察的項目若是多了,怎麼管理?用codeshelver,安裝擴展以後,能夠對GitHub項目作標籤。

gollum:利用git與github作wiki

gollum是一個基於git的輕型wiki系統。

GitHubwatcher: 監測重點項目

GitHubwatcher適用於通知不頻繁的情景。

GitHub官方資源

GitHub官方列出了一些有用的腳本與書籤

社區驅動的安裝與配置文件

GitHub中各種配置文件層出不窮,一些經常使用的:

  • osh-my-zsh:將終端從bash改成zsh以後,可考慮安裝社區驅動的zsh配置文件,含有多個插件。可參考舊文zsh與oh-my-zsh
  • gitignore:GitHub官方出品
  • yourchili:服務器各種安裝shell,好比安裝nginx等

Q4: 享受純粹的寫做與演講

A4:迴歸創做的初始

寫做

早在2008年,就有技術圖書做者經過Git來寫做,如下是示範:

你能想到的技術前沿話題,大多能在GitHub找到相應的培訓材料或者開源圖書。

我的寫做照樣適用。在前文理想的寫做環境:Git+GitHub+Markdown+Jekyll,我已經格外讚美過這些美好事物了。


我的博客

藉助於Jekyllbootstrap能夠在Github上快速搭建一個基於jekyll的博客系統

除了這個簡單易行的辦法以外,還存在一些其餘方法,例如:

演講

藉助於GitHub,能夠享受更純粹、更酷的演講。GitHub 2011年收購Ordered List以後,今後能夠經過speakerdeck更好的分享ppt文檔。

咱們還能夠:

  • 使用GitHub著名傳教士、Progit做者Scott Chacon開發的showoff
  • 來自開源社區的其餘演講庫impress.js

Q5: 代碼幫你找工做

A5:GitHub簡歷很誠實

NumEricR(非GitHub工做人員)基於GitHub Pages功能作了一個簡歷生成器,使用極其簡單,登錄網站GitHub簡歷生成器,填入你的GitHub網站用戶名便可。

fredwu是Ruby中文社區活躍份子,他的開源項目angel_nest一個天使投資與創業者對接的網站,適合Ruby初學者升級爲Ruby中級開發者時學習,也在Hacker News上被熱烈討論過,讓咱們來看看他的簡歷:

http://resume.GitHub.com/?fredwu

正是由於GitHub上的代碼沒法造假,也容易經過你關注的項目來了解知識面的寬度與深度。如今愈來愈多知名公司活躍在GitHub,發佈開源庫並招募各種人才,例如:FacebookTwitterYahoo ...

開始有了第三方網站提供基於GitHub的人才招聘服務,例如:

  • GitHire:經過它,能夠找出你所在地區的程序員。
  • Gitalytics.com:經過它,能評估某位程序員在GitHub、LinkedIn、StackOverflow、hackernews等多個網站的影響力。

Q6: GitHub還在影響一些什麼

A6:讓計算機加強人類智慧

不少年前,在某個名聲顯赫的學府中,兩位前後拿過圖靈獎的牛人有一段對話:

  • 牛人A:咱們要給機器賦予智慧,讓他們有自我意識!
  • 牛人B:你要給機器作那麼多好事?那你打算給人類作點什麼呢?

這段對話來自《失控》。牛人A是明斯基,他最喜歡將人類看作有血肉的機器,他的框架理論成爲認知心理學、人工智能入門基礎。牛人B則是恩格爾巴特。當明斯基1961年發表他著名的文章人工智能走向時,恩格爾巴特還籍籍無名。直到次年,恩格爾巴特發表宏文:人類智力的加強:一種概念框架。提出不一樣於明斯基的另外一條加強人類智力的道路:不要嘗試發明自動打字的機器,而是嘗試發明鼠標,而且他真的發明鼠標成功了!

從近些年的發展來看,仍然是明斯基佔上風,可是,三十年河東,三十年河西,明斯基的人工智能方向又有多少年沒有大突破了?相反,來自恩格爾巴特的羣件、集體智慧等思想,逐步成爲步入Web2.0時代以後的共識。無關對錯,能夠說,恩格爾巴特爲加強人類智力,提供了可行的框架。與其去發明聰明的、昂貴的、功能一體化的智能機器人,還不如發明相似於鼠標這樣笨笨的、廉價的、功能單一的人類智慧服務單件。明斯基的機器人很容易陷入死衚衕,沒有上升到哲學的高度。如今慢慢又回到恩格爾巴特這個方向來了。好比如今IBM開始宣傳認知計算

從git與GitHub設計與解決的問題本質來看,明顯加速了代碼生產流程,促進了卓越智力產品的誕生。這就是一種典型的web2.0對智力生產流程的改良與人類智慧的加強。一樣,某種意義上,小說寫做網站也起到相似做用。可是,學術界尤爲是社會科學類的智力產品生產彷佛還停留在一個古老階段。在開源領域,好想法層出不窮,極客影響極客,最終產生的是酷玩意。這些酷玩意拋棄浮華,直奔問題本質。那麼,有沒有科學界的GitHub?

相似問題層出不窮,如下爲其餘領域產品不徹底名單。

學術研究

數據

科學計算

  • opani:雛形中,支持R、Python等多種。

教育

  • OpenStudy:一個社會性學習網絡,經過互助來更好地學習,主題涉及到計算機、數學、寫做等。
  • openhatch: 經過練習、任務等幫助新手更好地進入開源社區

Q7:除了GitHub,還能夠選擇什麼?

A7:nil

由於進化的須要,多數裸猿存在選擇強迫症:哪一種程序語言更好?哪一個web開發框架更好?

除了GitHub以外,

  • 中國山寨品是否是更好?(爲何不寫他們名字,你懂的,山寨品老是善於爭論誰是第一個山寨的,各自的排名前後:D)
  • 免費的BitBucket是否是更適合Python程序員?

  • 做爲一名折騰族,我不本身搭建一個gitlabhq,是否是對不起本身?

咱們能夠理解,正是由於無數條分岔路口,讓人類再也不受制於某種基因、特定疾病、獨裁家族,從而擁有無限的可能。可是,這種選擇強迫症與遠古時代可憐的信息量相比較,

  • 今天這個大數據時代,它還會有助於人類做爲族羣的總體進化與做爲個體的幸福嗎?
  • 今天一位一線城市30歲大學畢業生經歷的選擇與孔子整個一輩子經歷的選擇,純論數量,誰多誰少?

生命如此短暫,爲何總要將青春浪費在不斷的選擇之中呢?罰你,回頭閱讀心理學家施瓦茨(Barry Schwartz)的TED演講:選擇之困惑——爲什麼多便是少,1百遍啊1百遍。請記住施瓦茨的演講要點:

  • 更多的選擇不表明更多的自由;
  • 更多的選擇致使決策的延遲和下降的滿意感;
  • 快樂之祕訣,在於下降本身的指望值。

相關參考

相關文章
相關標籤/搜索