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

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