解祕開源與社區

前言

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

“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,參與項目重要決策或設計等等。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章