天天看點

解秘開源與社群

前言

開源社群

為什麼要加入開源社群?

加入社群的門檻有哪些?

加入社群你能做什麼?

加入社群如何正确互動提問?

加入社群有哪些收益

寫在最後

開源已經無處不在,當下已經很難找到一款軟體是完全和開源沒有任何關系的了。開源軟體,正在成為現代社會的基礎設施。

“Open up your phone. Your social media, your news, your medical records, your bank: they are all using free and public code.” - Nadia Eghbal 《Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure》

開源,并非與你不相關,并非離你很遙遠,開源就在你身邊!

而談到開源軟體的開發模式,不得不提及 Eric S.Raymond 在其著名的論文《大教堂與集市》中論證了開源的軟體工程理論。如他所定義的 Linus 定律:衆目睽睽之下,Bug 将無處藏身,子產品化、去中心化、快速釋出快速回報等等是可行的,Kernel 就是成功的案例。

随着 Linux、Apache、Perl/Python/PHP、MySQL/PostgreSQL 等開源技術的崛起,以及技術的更新疊代,開源已經不再是稀缺,而是一種過剩,架構師在最初建構業務系統的時候,面臨的不是創造,而是選擇。于是開源項目又有了新的優勢:

可以讓業務快速的搭建原型 幾乎以零成本的方式來進行 讓産品迅速進入市場,獲得及時回報

開源的理論知識或許太過深奧、晦澀。接下來我就接地氣地讨論下面幾個實際問題:

加入社群有哪些收益?

本文開篇說到過,開源已經無處不在,不管你是從事架構、開發、運維、算法還是産品、營運,隻要你從事計算機與網際網路相關工作,總有“一款”開源社群适合你,你可以從該社群中獲益。

最近在邀請身邊的朋友加入社群時,偶爾發現有人這樣回答:我現在水準還不夠,等以後知識水準提升了再加入吧。如果這位是在誠實地回答,我想告訴你的是,加入開源社群原則上并沒有門檻。不限于其經驗水準、性别、性别認同和表達、性取向、殘疾、個人外貌、體型、人種、種族、年齡、宗教或國籍等。如果一定要在加上一個門檻的話,我希望你能有參與社群建設的熱情、你懂得社交的基本禮儀、你有一定責任心與榮辱感,你能遵守社群的行為準則與國家地區的法律法規!

很重要的一點,加入社群的個體可以做什麼,可以在其中扮演怎樣的角色!這個可能需要看社群本身的性質。如果是開源項目官方社群,加入社群後,你可以參與讨論如何貢獻代碼,參與技術方案的決策,當然也可以參與“疑難雜症”的讨論或者提問。如果社群的性質是終端使用者社群,比如某個技術領域或者某個開源項目在中國的本地社群,那麼加入社群你有很多事可以做,包括但不限于:

參與技術話題讨論與交流

參與官方文檔漢化活動(翻譯)

參與或協辦線上線下活動

技術文章(原創/翻譯)投稿

在社群内進行技術分享

參與社群組織的電子書的寫作

參與社群網站的建構和維護

宣傳自己熱愛的開源項目

其它

正如第二點所說,加入社群本身沒有門檻,但是加入社群後具體能做些什麼取決于個體本身的水準和能力。社群是由個體組成,社群伴随個體共同成長。

值得一提的是,很多人加入社群長期處于潛水狀态,我這裡強烈建議這部分群體浮出水面。被動接受地知識不易于真正吸納,參與讨論,最終将知識産出回報給社群,這樣才能形成良性循環。另外有一部分人加入社群後,隻有工作中遇到問題時才活躍起來,在社群中提問,其它社群活動也不參與,也沒有任何回報,這樣單方面索取的行為不利于社群的發展,久而久之,社群就不再有知識産出了,自己也很難從社群中獲得提升

緊接上面的話題,大部分參與開源社群主要的活動就是參與互動或者提問。

參與社群互動其實也是一個社交活動,需要個人把握社交分寸,遵守基本的社交禮儀。不可接受的參與者行為包括但不限于:讨論問題上升到人身攻擊,挑釁、侮辱或貶低性評論、公開或私下騷擾、未經允許釋出他人私人資訊、未經允許釋出廣告或者其它不良資訊、無故刷屏刷帖進而占用公共資源等。

另外,在社群裡提問或者發起相關技術話題讨論是被鼓勵的,但是提問也是一門藝術,需要提問着好好把握。有一個知名 Github 項目 How-To-Ask-Questions-The-Smart-Way對提問的智慧進行完整的整理,我這裡簡單整理幾點如下:

提問之前先嘗試自己通過各種手段搜尋答案,包括但不限于百度、谷歌、相關技術論壇、技術手冊等。當你提出問題的時候,請先表明你已經做了上述的努力;這将有助于樹立你并不是一個不勞而獲且浪費别人的時間的提問者。

提問時,使用清晰、正确、精準的語句描述問題,話不在多而在精。無效的問題,往往浪費大家的時間去閱讀和了解,并且可能沒有人去給你解答,是以清楚明确地表達你的問題以及需求至關重要。

提問時要有一定的禮貌,尤其通過社群向個人提問時至關重要。雖然同為社群成員,但往往素不相識,别人沒有義務一定要給你解決問題,尤其當該問題需要花費不少時間去梳理和解答。向個人提問時,一般需要首先做個自我介紹,然後禮貌地請教問題,不管問題最終是否得到解答,都能夠表示感謝。尤其當你有一串的問題待解決,客氣一點肯定會增加你得到有用回應的機會。

簡單來說,加入社群,肯定是有利可圖的,你能夠收獲知識與成長、收獲人脈、以及其它長期收益。

收獲知識與成長。 長期參與社群技術話題讨論,閱讀社群提供的學習資源,參與社群活動,甚至直接給開源項目送出 PR,久而久之,在該領域的知識水準與解決問題的能力就會得到提升。以社群裡面的技術達人為目标或者榜樣,往往能督促個人朝着正确的方向快速前進。

收獲人脈。 有一句俗話,參與開源社群就是混技術圈子的。在這個圈子裡,你能找到志同道合的人,結交更多的朋友。三人行,必有我師焉。圈子裡面技術大牛如雲,結交和認識社群裡面的技術達人,除了向強者學習之外,還有利于擴充自己的人脈資源,人脈多了,路就越走越寬了。

收獲影響力與認同感。 一旦積極參與了社群活動,包括技術部落格投稿,參與社群技術文檔撰寫,個人的技術影響力也會逐漸提升,同時也會有更多人對你表示贊同與尊敬。替人解疑答惑,不僅自己的知識得到鞏固和傳播,也能收獲别人的感激之情。

其它長期收益。 加入社群的收益往往很難在短期之内顯現,而且即使你投入很多,也很難獲得物質上的回報。如果你把目光放長遠,你會發現,加入社群的長期收益有很多,包括個人技術影響力的提升、自身技術視野的提升、社交水準的提升,對于一些公司和部門來說,長期活躍在開源社群也能有助于職業的晉升。

更多的收益取決于你願意貢獻多少精力在開源上。

對于廣大中國開發者而言,終端使用者開源社群是最容易接觸的,也是最容易從中受益的。終端使用者,這裡指開源項目的最終收益者/使用者。而終端使用者社群即由一群終端使用者成立的社群。對于這樣的社群,一般的宗旨為:擁抱開源、回報開源。終端使用者開源社群不僅僅是對開源項目與技術的傳播、布道、交流,也會引導社群成員在力所能及的前提之下對開源項目進行回報,包括提 bug,送出 PR,參與項目重要決策或設計等等。

在開發者真正擁抱開源的同時,一個開放、多樣且極具成長空間的開源社群不該被錯過,它将為開發者回饋更大的價值。無論是社群本身,還是參與其中的衆多開發者,相信都能在良性的互動中,互相促進,獲得快速且長足的發展。

繼續閱讀