如何高效利用GitHub

jopen 11年前發布 | 70K 次閱讀 Github

        正是 Github,讓社會化編程成為現實。本文嘗試談談 GitHub 的文化、技巧與影響。

  • Q1:GitHub 是什么
  • Q2:GitHub 風格
  • Q3: 在 GitHub,如何跟牛人學習
  • Q4: 享受純粹的寫作與演講
  • Q5: 代碼幫你找工作
  • Q6: GitHub 還在影響一些什么
  • Q7: 除了 GitHub,還可以選擇什么?
  • </ul>

            Q1:GitHub 是什么

            A1:一家公司

    如何高效利用GitHub

            位于舊金山,由 Chris Wanstrath, PJ HyettTom Preston-Werner 三位開發者在 2008 年 4 月創辦。迄今擁有 59 名全職員工,主要提供基于 git 的版本托管服務。

            在此之前,它是由 TomChris 在本地程序員聚會中,開始的一個用于托管 git 的項目。正如每個偉大的傳奇都開始于一場冒險,Tom 在這篇文章我如何辭掉微軟 30 萬年薪邀約,創辦 GitHub 中談到:

    當我老去,回顧一生,我想說,“哇,那是一場冒險“;而不是,“哇,我真的很安穩。“

    </blockquote>

            另一位創始人 Chris 也詳細描述了 GitHub 初創的前因后果,他說道:

    Do whatever you want.

    </blockquote>

            于是,在 2008 年 4 月 10 號這一天,GitHub 正式成立。

            目前看來,GitHub 這場冒險已經勝出。根據來自維基百科關于 GitHub 的描述,我們可以形象地看出 GitHub 的增長速度:

    如何高效利用GitHub

            今天,GitHub 已是:

    • 一個擁有 143 萬開發者的社區。其中不乏 Linux 發明者 Torvalds 這樣的頂級黑客,以及 Rails 創始人 DHH 這樣的年輕極客。
    • 這個星球上最流行的開源托管服務。目前已托管 431 萬 git 項目,不僅越來越多知名開源項目遷入 GitHub,比如 Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的開源庫往往在 GitHub 首發,例如:BootStrapNode.jsCoffeScript 等。
    • alexa 全球排名 414 的網站。
    • </ul>

              Q2:GitHub 風格

              A2: GitHub 只是 GitHub

              強調敏捷開發與快速原型,而又的確成功的創業團隊,常具備一個重要氣質:有自己的文化風格。如 GitHub,又如37signals。通過他們的快速開發,向用戶證明了團隊在技術上的能力,并且時常有驚喜。同時,通過強調特立獨行的文化,將對半衰期過短的產品族群的信任轉為對 GitHub 團隊的信任。

              Gravatars 的創始人(對,就是互聯網最流行的頭像托管系統)、Jekyll(對,它就是我近幾年用的博客系統)作者、GitHub 創始人,現任 CTO Tom 在 GitHub 第一年學到的 10 大教訓創業學校演講中談到 GitHub 文化的方方面面。我嘗試將這種風格總結為以下要點:

      • 專注創作,高創意
      • 運營良好與較高的內外滿意度
      • 高利潤,較低的融資額或零融資
      • </ul>

                創業公司多半死在錢上,就讓我們先從錢談起:

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

                類似于 GitHub 這樣的公司,拿到風險投資很難嗎?恰恰相反,創始人 PJ Hyett 在 Hacker News 的一篇評論中提到,自從 GitHub 創辦以來,已與幾十個 VC 溝通過。但是,直到今天,GitHub 的融資額還是為零,并引以為豪。讓我們看看 GitHub 官網的自我介紹:

        如何高效利用GitHub

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

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

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

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

                  富有激情、創意的員工使得 GitHub 得到了社區的廣泛認同,從而擁有極高的客戶滿意度,并從創業一開始就盈利。一份早期的調查表明,GitHub 很快成為 Git 托管首選。

                  專注創作,高創意

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

          • 時間并不能說明什么
          • 異步工作方式
          • 創造力很重要
          • </ul>

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

                    A3:在學習區刻意練習

                    追隨牛人,與他們一起修行

            修行之道:關注大師的言行,跟隨大師的舉動,和大師一并修行,領會大師的意境,成為真正的大師。

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

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

                      GitHub 本身建構在 git 之上,git 成為勾搭大師們的必要工具,以下讀物成為首選:

              • git 大白話入門,木有高深內容
              • 為什么 git 勝過X...
              • </ul>

                        如果希望進一步深入,可以閱讀已有中文翻譯版的材料:

                • progit:GitHub 公司傳道士 schacon 所作,已翻譯成多國語言,當然,有中文版。
                • Git Magic:已有志愿者翻譯中文版
                • </ul>

                          同樣,如果希望了解更多 GitHub 自身的知識,GitHub 官方文檔值得推薦:

                  • The GitHub Hep
                  • </ul>

                            牛人在哪里?

                    • GitHub 上的代碼庫本身:尤其是:Explore熱門關注信息庫兩個欄目

                      </li>

                    • GitHub 官方推薦:GitHub 自身的官方博客與 GitHub 員工們的個人博客推薦的項目與開發者

                      </li>

                    • 各類社交媒體上提到的的 GitHub 庫:尤其是 Hacker News 上提到的 GitHub 庫

                      </li> </ul>

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

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

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

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

                      </blockquote>

                              如何進行自我監督?

                              借助于 GitStats,我們能很好地統計自己的每個項目的工作量,從而看到工作進展。

                              用法如下,

                      #復制 GitStats 項目到本地 cd ~/devgit clone git://github.com/trybeee/GitStats.gitpython ~/dev/gitstats/git-stats /youproject public

                              以下為生成結果示范:

                              每周代碼提交次數:

                      如何高效利用GitHub

                              每天代碼提交行數:

                      如何高效利用GitHub

                              如果 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 等。
                      • </ul>

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

                                A4:回歸創作的初始

                                寫作

                                早在 2008 年,就有技術圖書作者通過 Git 來寫作,以下是示范:

                        • Node.js 初學者教材,中文版在這里
                        • backbone 基礎
                        • Sinatra 教程
                        • </ul>

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

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

                                  暖色調的燈光,足夠寬度的工作臺,聽著清脆的鍵盤聲音,基于 Git、GitHub、Markdown 與 Jekyll 來寫作,不擔心寫廢與排版,只關注最純粹的寫作,是一種享受。我有時候會想,如果 Git、Github、Markdown、Jekyll,再加上 Yaml、Json 的作者,讓這些作者們重新來設計今天互聯網基礎架構偏文本的部分,會誕生一些什么?

                                  個人博客

                                  借助于 Jekyllbootstrap,可以在 Github 上快速搭建一個基于 jekyll 的博客系統。

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

                          • Jekyll:參考告別 wordpress,擁抱 jekyll
                          • Octopress:參考 Ruby 開源項目介紹(1):octopress——像黑客一樣寫博客
                          • GitHub Pages:參考 GitHub Pages
                          • </ul>

                                    演講

                                    借助于 GitHub,可以享受更純粹、更酷的演講。GitHub 2011 年收購 Ordered List 之后,從此可以通過 speakerdeck 更好的分享 ppt 文檔。

                                    我們還可以:

                            • 使用 GitHub 著名傳教士、Progit 作者 Scott Chacon 開發的 showoff
                            • 來自開源社區的其他演講庫 impress.js
                            • </ul>

                                      Q5: 代碼幫你找工作

                                      A5:GitHub 簡歷很誠實

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

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

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

                                      正是因為 GitHub 上的代碼無法造假,也容易通過你關注的項目來了解知識面的寬度與深度。現在越來越多知名公司活躍在 GitHub,發布開源庫并招募各類人才,例如:非死book推terYahoo ...

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

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

                                        Q6: GitHub 還在影響一些什么

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

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

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

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

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

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

                                          類似問題層出不窮,以下為其他領域產品不完全名單。

                                          學術研究

                                  • 除了較早的 arXivPLoS 之外,較有氣象的可以推薦 mendeley開放期刊目錄
                                  • </ul>

                                            數據

                                    • buzzdata:數據分享更容易
                                    • </ul>

                                              科學計算

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

                                                教育

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

                                                  Q7:除了 GitHub,還可以選擇什么?

                                                  A7:nil

                                                  因為進化的需要,多數裸猿存在選擇強迫癥:哪種程序語言更好?哪個 web 開發框架更好?當然,最令宅男技術男們羨慕的問題是,高白瘦御姐還是青春小蘿莉好?:D

                                                  除了 GitHub 之外,

                                          • 中國山寨品是不是更好?(為什么不寫他們名字,你懂的,山寨品總是善于爭論誰是第一個山寨的,各自的排名先后:D)
                                          • 免費的 BitBucket 是不是更適合 Python 程序員?
                                          • 作為一名折騰族,我不自己搭建一個 gitlabhq,是不是對不起自己?
                                          • </ul>

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

                                            • 今天這個大數據時代,它還會有助于人類作為族群的整體進化與作為個體的幸福嗎?
                                            • 今天一位一線城市 30 歲大學畢業生經歷的選擇與孔子整個一生經歷的選擇,純論數量,誰多誰少?
                                            • </ul>

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

                                              • 更多的選擇不代表更多的自由;
                                              • 更多的選擇導致決策的延遲和降低的滿意感;
                                              • 快樂之秘訣,在于降低自己的期望值。
                                              • </ul>

                                                        最后,讓我再抒情一把吧,

                                                美好的事物總是離不開被墻的命運,讓我們靜靜地期待那一天的來臨…也讓我們在各自行業的努力,讓下一代、下一代、下一代…(希望N<=1,如果N>=4,我做鬼也放不過你們!)不再擁有這一天。

                                                </blockquote>

                                                 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
                                                 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
                                                 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!