如何把開源作為一份職業
你知道嗎?80% 的維護者認為招募新的貢獻者是一個挑戰,92% 的僱主認為很難僱用到開源人才。而另一方面,52% 的開發者希望為開源做出貢獻,33% 的人不知道從哪裡開始,31% 的人認為自己不夠熟練。公共數據顯示,社會對具有開源技能的人有很大的需求。因此,讓我們看看如何才能夠把開源作為一份職業,以填補這個供需之間的差距吧!
掌握一個技能
開源旅程的起點僅僅是你擅長的某個技能罷了。許多開發者會在空閑時間從事開源工作,他們在不熟練的領域投入精力,並把這些技能引入到技術領域裡來。像機器學習(ML)、雲原生和大數據分析這樣的技能是很受歡迎的,因為許多項目都圍繞著它們而進行。
開發者必須不斷嘗試,直到找到自己感興趣的東西為止。例如,當我開始在開源領域工作時,我選擇了移動用戶界面(UI)和 Web 開發(包括前端和後端)方面的工作。這個選擇並不簡單,我花了很多時間來弄清楚我想從事什麼。因此,重要的是要遵循你的興趣,通過學習和建立項目來探索不同的領域。很多時候,理論教程可能不如建立實際項目更有幫助。掌握技能的唯一方法是將所學的東西應用到實際項目中。
如果你已經在某項技術和項目上投入了很長時間,那麼你應該花時間好好分析一下。如果你對這個項目不感興趣,那麼放棄它可能是更好的選擇。然而,這也可能是一把雙刃劍。有可能你會發現一些感興趣的東西,從而產生一個新的權衡。如果經過了充分的分析,你也知道了自己傾向於哪些技能組合,那麼下一步就是建立自己的項目。
建立一個項目
無論項目的內容如何,只要它是活躍的,就會產生很大的價值。但請記住,一旦它開源了,你千萬不要被大家的反應所左右。並且記住,無論你是為一個應用程序建立一個 UI,還是僅僅記錄一個適當的注釋、資源或 URL 的列表,你的工作都可以對開源用戶有很大幫助。
在很大程度上,學習不同的工具有助於建立開源項目。因此,學習關於版本控制系統、Git、GitHub 和 GitLab(大多數項目都在它們上面)的一切是很重要的。由於互聯網上已經有足夠的教程,我只收集了一些可以在 navendu.me/osidays
上找到的。你需要通過撰寫文檔和公開自己學到的內容,來「公開學習」才行。
打造一份職業
你可以通過三種方式在開源領域建立一份職業。
構建、擴展你自己的開源項目,並讓它盈利
如果你想要建立一個自己的項目,發現並解決問題是一個很好的經驗法則。記下別人可能面臨的問題,一個項目需求就這樣產生了。你的項目的市場規模只能通過試驗和錯誤來估計。對於既沒有太多資金的、也沒有太多經驗個人貢獻者來說,社交媒體、博客、帖子和會議上的講話,都會在很大程度上有助於接觸到用戶。這些平台可以為你的開源項目帶來巨大的流量。
資金在幾乎所有的商業模式中都起著重要作用。Mozilla 基金會依靠自願捐款來資助其項目。MariaDB 採用了延遲開放源代碼的商業模式。IBM 的許多開源項目遵循開放核心的商業模式,即項目的核心部分是開源的,而周圍的附加部分是閉源的和專有的。紅帽公司不出售代碼,而是出售專業服務,如支持、工具和圍繞項目的技術援助。這些商業模式的例子可以被採用,以此來建立一個項目,將它開源,並使其盈利。
「即使你不是維護者,也要做維護者的工作。」
在一個以開源商業模式建立項目的公司工作
成為貢獻者和維護者社區的一份子,參與會談和參加會議將有助於你為項目做出貢獻。你可以根據引導來完成第一次貢獻,但它不一定得是代碼。一個大的代碼庫可能看起來很嚇人,但關鍵是要從小的地方著手。找到一個問題並解決它,這將有助於你了解貢獻流程、代碼庫和項目設置等。
非代碼的貢獻也是有價值的。擅長寫作的人可以通過撰寫文檔,或者為社交媒體寫作來貢獻。擅長設計的人,可以設計一個模板、一個顏色方案,或者也可以致力於創造一個更好的用戶界面。與資深工程師相比,新人發現錯誤的概率很高。他們可以測試、確認並報告他們的用戶體驗,從而提升項目質量。另一個領域是新手引導,很多開源項目將導師和新手聯繫起來,並幫助後者做出重要貢獻。還有一個選擇是成為組織者或社區管理員,這意味著你將承擔起項目經理的角色,確保功能完全按照預期交付,路線圖得到遵循,貢獻者得到照顧。大多數開源項目缺乏適當的管理,因為工程師們都不喜歡做這一類工作。
社會上有很多實習項目可以幫助你賺錢,比如谷歌的編程之夏(GSoC)和 Linux 基金會的導師制(在這裡,被指導者有津貼,可以根據需要全職或兼職工作)。如果你能很好地發展你的技能,你可以在你實習的公司獲得一個全職的職位。例如,如果你在紅帽公司的一個項目中工作,你有機會被全職僱用,因為你在那裡已經有了知名度。
正如 NumPy、SciPy 和 Anaconda 的作者 Travis Oliphant 所說,「建立一個開源項目,讓人們為它做出貢獻,然後從他們當中招聘。」 —— 這也是我獲得全職工作的方式。
- 隨著時間的推移,你所做貢獻的質量和數量會不斷提升。最好長期參與一個項目,因為這樣可以發現更多的貢獻領域。投身進去做貢獻會讓人們注意到並認可你。
- 開源項目缺乏項目經理,因此成為項目經理將有助於你的職業生涯。
- 成為一個維護者,做一些工程師應該做的事情,如審閱代碼、設計系統、撰寫文檔和幫助他人做出貢獻。
- 好的貢獻的關鍵是「提前付出」,這意味著你需要通過分享經驗和智慧來幫助新人,並確保他們不犯錯誤。
獲得贊助以從事開源工作
作為個人,如果你正在為某個公司建立的項目而工作,你可以要求獲得資助。值得注意的是,只有當你的貢獻很大時,組織才會樂意贊助你。但是,如果你建立了自己的項目,並且有大量的用戶群,你可以向用戶要求資助。
作為一個組織,你可以通過像 Open Collective、Patreon 和 GitHub Sponsors 這樣的平台來籌集資金,讓人們為你的項目捐款。像 Linux 基金會和 Mozilla 基金會這樣的開源巨頭也提供資金來支持項目。GitHub 已經給 15 個印度貢獻者的項目提供了資助。
我曾經花了三個月時間建立了一個開源項目。這個項目後來被 《Product Hunt》 和 《JS Weekly》報道,還在上過 GitHub 趨勢榜排名第一的位置。正是這個項目讓我走上了開源事業的道路。
本文由 Sharon Abhignya Katta 轉錄並策劃
via: https://www.opensourceforu.com/2022/04/how-to-build-a-career-in-open-source/
作者:Navendu Pottekkat 選題:lkxed 譯者:lkxed 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive