正是Github卦停,讓社會化編程成為現(xiàn)實壮锻。本文嘗試談?wù)凣itHub的文化宇驾、技巧與影響瞳收。
Q3: 在GitHub碉京,如何跟牛人學(xué)習(xí)
Q1:GitHub是什么
A1:一家公司
位于舊金山谐宙,由Chris Wanstrath, PJ Hyett 與Tom Preston-Werner三位開發(fā)者在2008年4月創(chuàng)辦。迄今擁有59名全職員工界弧,主要提供基于git的版本托管服務(wù)凡蜻。
在此之前搭综,它是由Tom與Chris 在本地程序員聚會中,開始的一個用于托管git的項目划栓。正如每個偉大的傳奇都開始于一場冒險兑巾,Tom在這篇文章我如何辭掉微軟30萬年薪邀約,創(chuàng)辦GitHub中談到:
當(dāng)我老去忠荞,回顧一生蒋歌,我想說,“哇钻洒,那是一場冒險“奋姿;而不是,“哇素标,我真的很安穩(wěn)称诗。“
另一位創(chuàng)始人Chris也詳細描述了GitHub初創(chuàng)的前因后果头遭,他說道:
Do whatever you want.
于是寓免,在2008年4月10號這一天,GitHub正式成立计维。
目前看來袜香,GitHub這場冒險已經(jīng)勝出。根據(jù)來自維基百科關(guān)于GitHub的描述鲫惶,我們可以形象地看出GitHub的增長速度:
今天蜈首,GitHub已是:
一個擁有143萬開發(fā)者的社區(qū)。其中不乏Linux發(fā)明者Torvalds這樣的頂級黑客欠母,以及Rails創(chuàng)始人DHH這樣的年輕極客欢策。
這個星球上最流行的開源托管服務(wù)。目前已托管431萬git項目赏淌,不僅越來越多知名開源項目遷入GitHub踩寇,比如Ruby on Rails、jQuery六水、Ruby俺孙、Erlang/OTP;近三年流行的開源庫往往在GitHub首發(fā)掷贾,例如:BootStrap睛榄、Node.js、CoffeScript等想帅。
alexa全球排名414的網(wǎng)站懈费。
Q2:GitHub風(fēng)格
A2: GitHub只是GitHub
強調(diào)敏捷開發(fā)與快速原型,而又的確成功的創(chuàng)業(yè)團隊博脑,常具備一個重要氣質(zhì):有自己的文化風(fēng)格憎乙。如GitHub票罐,又如37signals。通過他們的快速開發(fā)泞边,向用戶證明了團隊在技術(shù)上的能力该押,并且時常有驚喜。同時阵谚,通過強調(diào)特立獨行的文化蚕礼,將對半衰期過短的產(chǎn)品族群的信任轉(zhuǎn)為對GitHub團隊的信任。
Gravatars的創(chuàng)始人(對梢什,就是互聯(lián)網(wǎng)最流行的頭像托管系統(tǒng))奠蹬、Jekyll(對,它就是我近幾年用的博客系統(tǒng))作者嗡午、GitHub創(chuàng)始人囤躁,現(xiàn)任CTO Tom在GitHub第一年學(xué)到的10大教訓(xùn)、創(chuàng)業(yè)學(xué)校演講中談到GitHub文化的方方面面荔睹。我嘗試將這種風(fēng)格總結(jié)為以下要點:
專注創(chuàng)作狸演,高創(chuàng)意
運營良好與較高的內(nèi)外滿意度
高利潤,較低的融資額或零融資
創(chuàng)業(yè)公司多半死在錢上僻他,就讓我們先從錢談起:
高利潤宵距,較低的融資額或者零融資
類似于GitHub這樣的公司,拿到風(fēng)險投資很難嗎吨拗?恰恰相反满哪,創(chuàng)始人PJ Hyett 在Hacker News的一篇評論中提到,自從GitHub創(chuàng)辦以來劝篷,已與幾十個VC溝通過哨鸭。但是,直到今天携龟,GitHub的融資額還是為零兔跌,并引以為豪勘高。讓我們看看GitHub官網(wǎng)的自我介紹:
運營良好與較高的內(nèi)外滿意度
在Quora上有人問道峡蟋,GitHub是否尋找被收購?华望,還是PJ Hyett 蕊蝗,他的回答是:No。
GitHub從一開始就運營良好赖舟,員工擁有較高滿意度蓬戚,看看這些不太一樣的做法:
每一位GitHub公司的新員工,官方博客將發(fā)表文章歡迎宾抓。
在GitHub內(nèi)部子漩,沒有經(jīng)理豫喧,需求內(nèi)容與優(yōu)先級由項目組自行決策。
選擇自己的工作時間幢泼、工作地點紧显。
員工來自開源社區(qū)。
能開源的盡可能開源缕棵。
富有激情孵班、創(chuàng)意的員工使得GitHub得到了社區(qū)的廣泛認同,從而擁有極高的客戶滿意度招驴,并從創(chuàng)業(yè)一開始就盈利篙程。一份早期的調(diào)查表明,GitHub很快成為Git托管首選别厘。
專注創(chuàng)作虱饿,高創(chuàng)意
GitHub59名全職員工僅有29名員工在本地工作!不僅僅是工作地點的安排富有創(chuàng)意丹允,GitHub員工Holman, 詳細介紹了GitHub的工作方式:
Q3:在GitHub郭厌,如何跟牛人學(xué)習(xí)
A3:在學(xué)習(xí)區(qū)刻意練習(xí)
追隨牛人,與他們一起修行
修行之道:
關(guān)注大師的言行雕蔽,
跟隨大師的舉動折柠,
和大師一并修行,
領(lǐng)會大師的意境批狐,
成為真正的大師扇售。
正如這首禪詩所言,與其在墻內(nèi)仰望牛人嚣艇,不如直接在GitHub:
watch承冰、fork牛人們
對他們的項目提交pull request
主動給牛人們的項目寫wiki或提交測試用例,或者問題
還可以幫他們翻譯中文
GitHub本身建構(gòu)在git之上食零,git成為勾搭大師們的必要工具困乒,以下讀物成為首選:
如果希望進一步深入贰谣,可以閱讀已有中文翻譯版的材料:
progit:GitHub公司傳道士schacon所作娜搂,已翻譯成多國語言,當(dāng)然吱抚,有中文版百宇。
同樣秘豹,如果希望了解更多GitHub自身的知識携御,GitHub官方文檔值得推薦:
牛人在哪里?
GitHub上的代碼庫本身:尤其是:Explore、熱門關(guān)注信息庫兩個欄目
GitHub官方推薦:GitHub自身的官方博客與GitHub員工們的個人博客推薦的項目與開發(fā)者
各類社交媒體上提到的的GitHub庫:尤其是Hacker News上提到的GitHub庫啄刹。
關(guān)于學(xué)習(xí)的心理學(xué)研究涮坐,常常會談到一個術(shù)語:元認知、元學(xué)習(xí)誓军、元知識膊升。是的,關(guān)于認知的認知谭企、關(guān)于學(xué)習(xí)的學(xué)習(xí)廓译、關(guān)于知識的知識,你對這些信息的偏好與熟練掌握债查,會讓你在學(xué)習(xí)一門新東西時更加輕車熟路非区。對一手信息進行回溯,比如作者盹廷、創(chuàng)始人征绸、最初文獻出處,總是會讓你更容易理解知識俄占。
在學(xué)習(xí)區(qū)刻意練習(xí):借助GitStats進行項目統(tǒng)計
在如何學(xué)習(xí)一門新的編程語言管怠?——在學(xué)習(xí)區(qū)刻意練習(xí)中,我已談過:
學(xué)習(xí)編程最好的方式是在學(xué)習(xí)區(qū)刻意練習(xí)缸榄。
如何進行自我監(jiān)督渤弛?
借助于GitStats,我們能很好地統(tǒng)計自己的每個項目的工作量甚带,從而看到工作進展她肯。
用法如下,
#復(fù)制GitStats項目到本地
cd ~/dev
git clone git://github.com/trybeee/GitStats.git
python ~/dev/gitstats/git-stats /youproject public
以下為生成結(jié)果示范:
每周代碼提交次數(shù):
每天代碼提交行數(shù):
如果Fork別人的項目或者多人合作項目鹰贵,最好每人都擁有一個獨立分支晴氨,然后由項目維護人合并。如何建立自己的分支碉输?
# 分支的創(chuàng)建和合并
# git branch yourbranch
# git checkout yourbranch? ? 切換到y(tǒng)ourbranch
# 開發(fā)yourbranch分支籽前,然后開發(fā)之后與master分支合并
# git checkout master
# git merge yourbranch
# git branch -d yourbranch? ? 合并完后刪除本地分支
如何將牛人的遠程分支更新到自己的本地分支?
# 查看當(dāng)前項目下遠程
# git remote
# 增加新的分支鏈接敷钾,例如
git remote add niuren giturl…
# 獲取牛人的遠程更新
git fetch niuren
# 將牛人的遠程更新合并到本地分支
git merge niuren/master
生產(chǎn)力小技巧
codeshelver:給git庫做標簽
觀察的項目如果多了枝哄,怎么管理?用codeshelver闰非,安裝擴展之后膘格,可以對GitHub項目做標簽峭范。
gollum:利用git與github做wiki
gollum是一個基于git的輕型wiki系統(tǒng)财松。
GitHubwatcher: 監(jiān)測重點項目
GitHubwatcher適用于通知不頻繁的情景。
GitHub官方資源
GitHub官方列出了一些有用的腳本與書簽。
社區(qū)驅(qū)動的安裝與配置文件
GitHub中各類配置文件層出不窮辆毡,一些常用的:
osh-my-zsh:將終端從bash改為zsh之后菜秦,可考慮安裝社區(qū)驅(qū)動的zsh配置文件,含有多個插件舶掖∏蜃颍可參考舊文zsh與oh-my-zsh
gitignore:GitHub官方出品
yourchili:服務(wù)器各類安裝shell,比如安裝nginx等眨攘。
Q4: 享受純粹的寫作與演講
A4:回歸創(chuàng)作的初始
寫作
早在2008年主慰,就有技術(shù)圖書作者通過Git來寫作,以下是示范:
Node.js初學(xué)者教材鲫售,中文版在這里共螺。
你能想到的技術(shù)前沿話題,大多能在GitHub找到相應(yīng)的培訓(xùn)材料或者開源圖書情竹。
個人寫作照樣適用藐不。在前文理想的寫作環(huán)境:Git+GitHub+Markdown+Jekyll,我已經(jīng)格外贊美過這些美好事物了秦效。
暖色調(diào)的燈光雏蛮,足夠?qū)挾鹊墓ぷ髋_,聽著清脆的鍵盤聲音阱州,基于Git挑秉、GitHub、Markdown與Jekyll來寫作苔货,不擔(dān)心寫廢與排版衷模,只關(guān)注最純粹的寫作,是一種享受蒲赂。我有時候會想阱冶,如果Git、Github滥嘴、Markdown木蹬、Jekyll,再加上Yaml若皱、Json的作者镊叁,讓這些作者們重新來設(shè)計今天互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)偏文本的部分,會誕生一些什么走触?
個人博客
借助于Jekyllbootstrap晦譬,可以在Github上快速搭建一個基于jekyll的博客系統(tǒng)。
除了這個簡單易行的辦法之外互广,還存在一些其他方法敛腌,例如:
Jekyll:參考告別wordpress卧土,擁抱jekyll
Octopress:參考Ruby開源項目介紹(1):octopress——像黑客一樣寫博客
GitHub Pages:參考GitHub Pages
演講
借助于GitHub,可以享受更純粹像樊、更酷的演講尤莺。GitHub 2011年收購Ordered List之后,從此可以通過speakerdeck更好的分享ppt文檔生棍。
我們還可以:
使用GitHub著名傳教士颤霎、Progit作者Scott Chacon開發(fā)的showoff
來自開源社區(qū)的其他演講庫impress.js
Q5: 代碼幫你找工作
A5:GitHub簡歷很誠實
NumEricR(非GitHub工作人員)基于GitHub Pages功能做了一個簡歷生成器,使用極其簡單涂滴,登陸網(wǎng)站GitHub簡歷生成器友酱,填入你的GitHub網(wǎng)站用戶名即可。
fredwu是Ruby中文社區(qū)活躍份子柔纵,他的開源項目angel_nest粹污,一個天使投資與創(chuàng)業(yè)者對接的網(wǎng)站,適合Ruby初學(xué)者升級為Ruby中級開發(fā)者時學(xué)習(xí)首量,也在Hacker News上被熱烈討論過壮吩,讓我們來看看他的簡歷:
http://resume.GitHub.com/?fredwu
正是因為GitHub上的代碼無法造假,也容易通過你關(guān)注的項目來了解知識面的寬度與深度〖釉担現(xiàn)在越來越多知名公司活躍在GitHub鸭叙,發(fā)布開源庫并招募各類人才,例如:Facebook拣宏、Twitter沈贝、Yahoo …
開始有了第三方網(wǎng)站提供基于GitHub的人才招聘服務(wù),例如:
GitHire:通過它勋乾,可以找出你所在地區(qū)的程序員宋下。
Gitalytics.com:通過它,能評估某位程序員在GitHub辑莫、LinkedIn学歧、StackOverflow、hackernews等多個網(wǎng)站的影響力各吨。
Q6: GitHub還在影響一些什么
A6:讓計算機增強人類智慧
很多年前枝笨,在某個名聲顯赫的學(xué)府中,兩位先后拿過圖靈獎的牛人有一段對話:
牛人A:我們要給機器賦予智慧揭蜒,讓他們有自我意識横浑!
牛人B:你要給機器做那么多好事?那你打算給人類做點什么呢屉更?
這段對話來自《失控》徙融。牛人A是明斯基,他最喜歡將人類看做有血肉的機器瑰谜,他的框架理論成為認知心理學(xué)欺冀、人工智能入門基礎(chǔ)树绩。牛人B則是恩格爾巴特。當(dāng)明斯基1961年發(fā)表他著名的文章人工智能走向時脚猾,恩格爾巴特還籍籍無名。直到次年砚哗,恩格爾巴特發(fā)表宏文:人類智力的增強:一種概念框架龙助。提出不同于明斯基的另一條增強人類智力的道路:不要嘗試發(fā)明自動打字的機器,而是嘗試發(fā)明鼠標蛛芥,并且他真的發(fā)明鼠標成功了提鸟!
從近些年的發(fā)展來看,仍然是明斯基占上風(fēng)仅淑,但是称勋,三十年河?xùn)|,三十年河西涯竟,明斯基的人工智能方向又有多少年沒有大突破了赡鲜?相反,來自恩格爾巴特的群件庐船、集體智慧等思想银酬,逐步成為步入Web2.0時代之后的共識。無關(guān)對錯筐钟,可以說揩瞪,恩格爾巴特為增強人類智力,提供了可行的框架篓冲。與其去發(fā)明聰明的李破、昂貴的、功能一體化的智能機器人壹将,還不如發(fā)明類似于鼠標這樣笨笨的嗤攻、廉價的、功能單一的人類智慧服務(wù)單件诽俯。明斯基的機器人很容易陷入死胡同屯曹,沒有上升到哲學(xué)的高度。現(xiàn)在慢慢又回到恩格爾巴特這個方向來了惊畏。比如現(xiàn)在IBM開始宣傳的認知計算恶耽。
從git與GitHub設(shè)計與解決的問題本質(zhì)來看,明顯加速了代碼生產(chǎn)流程颜启,促進了卓越智力產(chǎn)品的誕生偷俭。這就是一種典型的web2.0對智力生產(chǎn)流程的改良與人類智慧的增強。同樣缰盏,某種意義上涌萤,小說寫作網(wǎng)站也起到類似作用淹遵。但是,學(xué)術(shù)界尤其是社會科學(xué)類的智力產(chǎn)品生產(chǎn)似乎還停留在一個古老階段负溪。在開源領(lǐng)域透揣,好想法層出不窮,極客影響極客川抡,最終產(chǎn)生的是酷玩意辐真。這些酷玩意拋棄浮華,直奔問題本質(zhì)崖堤。那么侍咱,有沒有科學(xué)界的GitHub?密幔?
類似問題層出不窮楔脯,以下為其他領(lǐng)域產(chǎn)品不完全名單。
學(xué)術(shù)研究
除了較早的arXiv胯甩、PLoS之外昧廷,較有氣象的可以推薦mendeley、開放期刊目錄
數(shù)據(jù)
buzzdata:數(shù)據(jù)分享更容易
科學(xué)計算
opani:雛形中偎箫,支持R麸粮、Python等多種。
教育
OpenStudy:一個社會性學(xué)習(xí)網(wǎng)絡(luò)镜廉,通過互助來更好地學(xué)習(xí)弄诲,主題涉及到計算機、數(shù)學(xué)娇唯、寫作等齐遵。
openhatch: 通過練習(xí)、任務(wù)等幫助新手更好地進入開源社區(qū)
Q7:除了GitHub塔插,還可以選擇什么梗摇?
A7:nil
因為進化的需要,多數(shù)裸猿存在選擇強迫癥:哪種程序語言更好想许?哪個web開發(fā)框架更好伶授?當(dāng)然,最令宅男技術(shù)男們羨慕的問題是流纹,高白瘦御姐還是青春小蘿莉好糜烹?:D
除了GitHub之外,
中國山寨品是不是更好漱凝?(為什么不寫他們名字疮蹦,你懂的,山寨品總是善于爭論誰是第一個山寨的茸炒,各自的排名先后:D)
免費的BitBucket是不是更適合Python程序員愕乎?
作為一名折騰族阵苇,我不自己搭建一個gitlabhq,是不是對不起自己感论?
我們可以理解绅项,正是因為無數(shù)條分岔路口,讓人類不再受制于某種基因比肄、特定疾病快耿、獨裁家族,從而擁有無限的可能薪前。但是润努,這種選擇強迫癥與遠古時代可憐的信息量相比較关斜,
今天這個大數(shù)據(jù)時代示括,它還會有助于人類作為族群的整體進化與作為個體的幸福嗎?
今天一位一線城市30歲大學(xué)畢業(yè)生經(jīng)歷的選擇與孔子整個一生經(jīng)歷的選擇痢畜,純論數(shù)量垛膝,誰多誰少?
生命如此短暫丁稀,為什么總要將青春浪費在不斷的選擇之中呢吼拥?罰你,回頭閱讀心理學(xué)家施瓦茨(Barry Schwartz)的TED演講:選擇之困惑——為何多即是少线衫,1百遍啊1百遍凿可。請記住施瓦茨的演講要點:
更多的選擇不代表更多的自由;
更多的選擇導(dǎo)致決策的延遲和降低的滿意感授账;
快樂之秘訣枯跑,在于降低自己的期望值。
相關(guān)參考
理想的寫作環(huán)境:Git+GitHub+Markdown+Jekyll