為什么程序員們愿意在GitHub上開源自己的成果?
從2008年4月10日正式上線到今天,GitHub已經(jīng)完成了它的***個十年,正式進入下一個十年。Chris DiBona(Google的開源代碼經(jīng)理)認為“Git的精髓在于讓所有人的貢獻無縫合并。而GitHub的天才之處,在于理解了Git的精髓。”來一句我們程序員們接地氣的話:分享是一種快樂!
拋開“代碼閉源是否就能賺很多錢”這個話題先不談,我們直接總結(jié)一下程序員愿意在GitHub公開自己的源代碼的幾點主要原因:
1、通過代碼的展示,提升自己的知名度
先來講一個聞名全球的案例吧。有一家很著名的公司叫37signals,是一間非常小的公司,員工很少,但是在業(yè)內(nèi)卻非常出名。它的出名,很大程度上得益于一次機緣:員工大衛(wèi)·海納梅爾·韓森在工作的時候,用Ruby寫了一個劃時代的web快速開發(fā)框架——Ruby on Rails,其革命性的設(shè)計理念,大大的提升了WEB網(wǎng)站的開發(fā)效率。37signals選擇了將此項目以開源的方式發(fā)布,在業(yè)內(nèi)引發(fā)了轟動效應(yīng)。
隨著Ruby on Rails的快速躥紅,作為ROR誕生的產(chǎn)房——37signals公司也進入了大眾的視線,并于2008年被《連線》評為十大最值得關(guān)注的創(chuàng)業(yè)公司,繼而該公司的幾款產(chǎn)品都取得了非常好的銷售業(yè)績。在37signals出版的暢銷書《Rework》里,有一段這樣的文字:***的大廚都樂于在公共頻道上教授自己的廚藝,這不僅無損大廚的商業(yè)利益,反而大大增加了大廚的知名度,對大廚來說這是非常棒的舉措。
我們處在一個技術(shù)更新迭代越來越快的行業(yè)里,最可怕的并不是你高超的技術(shù)外泄,而是沒有足夠多的人透過你的技術(shù)了解你,拼技術(shù)的同時還要拼知名度,才能雙豐收。
以目前的GitHub而言,它不只是一個簡單的代碼倉庫,更是程序員的社交平臺和炫技舞臺。在這個平臺上展示自己的代碼,可以讓程序員們更快地在行業(yè)圈子內(nèi)提升自己的知名度。當(dāng)然,如果能夠像大衛(wèi)·海納梅爾·韓森那樣足夠幸運的話,還可以在業(yè)內(nèi)創(chuàng)造一個屬于自己的傳奇。
2、展示作品,獲得好的工作機會
展示自己的作品,是獲取優(yōu)秀工作機會的***手段之一。在“Talk is cheap,show me the code!”的程序員行業(yè)里,尤為如此。
GitHub同時為程序員與企業(yè)雙方提供了非常便利的平臺。
作為企業(yè)雇主,可以通過這個平臺了解應(yīng)聘者的作品,評估其技術(shù)實力,判斷是否符合公司的要求。這種把一個程序員在GitHub的表現(xiàn)視為人才評估標(biāo)準的操作,在程序員面試中越來越普遍。
作為程序員,GitHub上的關(guān)注數(shù)、星數(shù)、fork數(shù)量等數(shù)據(jù),在一定程度上證明了你的編程能力是否出色,你的技術(shù)理念是否為更多的人所理解、贊同。越是在GitHub上受歡迎的程序員,越會被優(yōu)秀的雇主青睞。
因此,這種現(xiàn)象,也進一步激勵了程序員在GitHub上努力展示自己,使得開源氛圍更加濃厚。
3、開源代碼,利己利人
Adobe公布了Photoshop 1.0的源代碼,這些代碼對Adobe已經(jīng)沒有太多價值了,不如公開出來,供其他程序員們觀瞻學(xué)習(xí),同時還能為自己帶來一點新聞性和關(guān)注度;Linux之父林納斯為了一個非常“自私”的目的——能夠有一個適合自用的免費操作系統(tǒng),便把Linux的內(nèi)核開源了,讓全世界的感興趣的人一起來對Linux進行維護。
所有的程序員在學(xué)習(xí)編程、解決BUG、交流心得的過程中,無可避免的會用到別人的勞動成果,同時也會幫別人去解決問題,這就形成了一個利己利人的生態(tài)。在這個生態(tài)中,所有的程序員都無需重復(fù)的造輪子,大家在一個開源共享的氛圍中付出,在付出中享用所有的產(chǎn)出成果,在享用成果中不斷的再創(chuàng)造,從而形成一個良性循環(huán)的利己利人生態(tài),所有人都能在這個生態(tài)中收益。
4、練習(xí)技能的同時結(jié)交業(yè)內(nèi)朋友
前面我們說過,GitHub可以是程序員的社交平臺和炫技舞臺。在這里,會有眾多的技術(shù)大牛出沒。也許平時很難有機會與他們接觸,但通過GitHub這個平臺,自己的作品將有可能得到技術(shù)大牛的點評及建議,幫助自己快速提升技能;同時,還可以與其他程序員交流BUG解決經(jīng)經(jīng)驗以及需求實現(xiàn)等專業(yè)問題,從而產(chǎn)生聯(lián)系,建立起屬于程序員的社交圈。
在程序員的世界里炫技簡單粗暴,每當(dāng)他們寫出自認為很牛的程序,他們就迫切需要一個渠道來展示自己的才華,博客、論壇都可以成為他們的陣地,而Github等開源論壇則漸漸成為主戰(zhàn)場。在程序員看來只有優(yōu)秀的完整的代碼才是有靈魂的,不懂程序的人都是麻瓜,這可能也是GitHub如此成功的一個重要原因。對于程序員極客來說,代碼比言語更能讓對方產(chǎn)生共鳴。
5、如果你愿意,也能賺一點錢
吹個牛,雖說我們程序員不差錢(正確讀音:qian er),但是有錢可收,總不是一件壞事。如果是非常好的開源項目,在GitHub能引來相當(dāng)好的流量,并且是與項目相關(guān)的精準流量,所以你懂的,適當(dāng)做些廣告是可以額外帶來一些收入的。

(圖片截自GitHub,中國最火的開源項目VUE.js頁面,就展示了不少贊助商的內(nèi)容。)
所以,在GitHub上展示自己的作品,已經(jīng)是一個優(yōu)秀程序員的標(biāo)準操作,這或許能帶來很多比賺錢更重要的東西。當(dāng)然關(guān)乎項目發(fā)展最核心、最關(guān)鍵的技術(shù)和機密,應(yīng)該還是很少會有人在GitHub上進行展示的。