---
author: Navendu Pottekkat
category: 观点
comments_data:
- date: '2022-04-29 18:02:01'
  message: 996情况下很难啊
  postip: 112.94.213.165
  username: 来自广东广州的 Chrome 101.0|GNU/Linux 用户
count:
  commentnum: 1
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 2641
date: '2022-04-29 08:36:50'
editorchoice: false
excerpt: 你是否对开源充满热情，却不知道如何在这个领域开始一段职业生涯？那么，这篇文章就是为你准备的。
fromurl: https://www.opensourceforu.com/2022/04/how-to-build-a-career-in-open-source/
id: 14521
islctt: true
largepic: /images/p/202204/29/083647jjbfm44j4pt774ft.jpg
permalink: /article-14521-1.html
pic: /images/p/202204/29/083647jjbfm44j4pt774ft.jpg.thumb.jpg
related: []
reviewer: wxy
selector: lkxed
summary: 你是否对开源充满热情，却不知道如何在这个领域开始一段职业生涯？那么，这篇文章就是为你准备的。
tags:
- 开源
thumb: false
title: 如何把开源作为一份职业
titlepic: true
translator: lkxed
updated: '2022-04-29 08:36:50'
---


> 
> 你是否对开源充满热情，却不知道如何在这个领域开始一段职业生涯？那么，这篇文章就是为你准备的。
> 
> 
> 


![](/images/p/202204/29/083647jjbfm44j4pt774ft.jpg)


你知道吗？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](https://www.opensourceforu.com/author/navendu-pottekkat/) 选题：[lkxed](https://github.com/lkxed) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出