2 Star 11 Fork 2

Rick / open-source-best-practice

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
motivation.md 6.81 KB
一键复制 编辑 原始数据 按行查看 历史
kang 提交于 2021-12-03 20:36 . Fix typo (#41)

开源是什么

在很多地方,开源更多的是在说“开源软件”。但,除了软件以外,开源精神最具有启发性的在于——人和人之间的协作方式上,平等、开放、协作、共享。

  • 平等,人与人之间没有等级、阶层之分,主要体现在讨论问题、决策过程中,大家基于共识而不是权利
  • 开放,这一点强调的是,整个开源活动应该是公开的,包括:提议、过程、结果
  • 协作,避免单打独斗、英雄主义、个人主义
  • 共享,乐于分享协作成果,以及成果的二次创作

为什么要参与开源

基于开源协作的特性,你的舞台不再局限于某个公司、某个团队,你所需要思考的也不再只是编码、测试、设计、推广等单一的角度。对于不同(岗位)角色的人来说,参与开源的意义略有不同,下面会分别讨论。但,确认无疑的是,你一定是有机会去从不同的视角来考虑问题、承担责任。

研发

对于在从事研发类(包括:开发、架构设计、测试、运维等)工作的人而言,是非常适合参与开源的。通过在开源社区的磨砺,大致可以从如下几个方面得到提升:

  • 技术成长
  • 软实力
  • 职业方向多样化
  • 其他

技术成长

企业内部项目的生命流程,通常都会和公司的商业模式、市场价值、经营水平有着密切的关系,企业为了追求价值的最大化,完全可以新开发一个项目、或者直接下线一个项目。尤其对于普通的研发人员,往往是没有任何发言权的。而对于项目上的技术、框架选型,在垂直型结构的团队中也是“领导”决定的。

因而,可以想象到,普通的研发人员在日常的研发工作中往往会处于被动的地位,被动地去学习、使用某种技术,被动地去完成某项任务。在这种环境下,大部分人的创新、主管能动性是难以调动起来的。很多 IT 从业人员,也就会有“打工”、“北漂”的深切感受。

在开源项目中,往往是没有明显的阶级、等级之分,所有的任务(issues)都是自愿、主动在做,而每个人都可以向社区提出你的提议,社区成员也会基于共识、规范来 review 你的 PR 或者提议。而在 review(不是审核、审查)过程中,你也许会收到在这个领域非常资深、经验丰富的贡献者的反馈。

软实力

好的沟通能力,在开源项目中是很基础的能力之一。在开源协作过程中,由于地域、文化、时区的不同,大部分的交流是异步进行的。也正是由于无法实时收到回复,大家在交流的过程中,通常会事先把事情的来龙去脉尽量弄明白,并给出自己的调查结果、建议、不同方案的对比等等。

声誉,也许是很多 IT 从业人员还没有意识到的一项宝贵资产。简历是极容易作假的环节,良好的表达能力也可以让候选人通过面试,及时是背景调查也无法让面试官了解到候选人过往的细节。因此,是否有大厂经历、高学历,(或者是运气)在很大程度上决定着我们是否可以进入到更大的平台中。

然而,参与开源的经历、成就则通常是公开的,任何人都可以查阅到。因此,对于参与开源的每一位贡献者都会很关注自己的行为,以及带来的影响。而对于用人单位,也同样是可以对此很放心。

职业方向多样化

开源项目的健康发展,不仅仅需要优质的代码,更加需要不同角色的人的共同努力。从需求的收集、整理,功能实现、问题修复,以及技术推广、问题反馈等,一个正向的闭环机制是开源社区长久健康发展的秘诀。

从技术推广的角度来讲,通常的方法有:编写技术博客、视频教程、技术分享等等。做这些工作,会对技术总结、演讲技巧上有极大的提高。这对于以后考虑选择技术布道师这个岗位来说,应该会有很大的帮助。

如果平时在社区活动组织、协助上付出比较多的话,之后也许是可以走向开源社区运营的方向。

在企业内部,通常是职责分明,大多数研发没有机会直接接触到客户(用户),因而也难以培养产品思维。而对于开源项目的维护者,则为了让自己的产品更有竞争力、更加贴近最终用户的需求,则需要从产品整体来思考、规划、设计。借此,走向产品经理的路,自然也是极为可能。

其他

有一些刚刚踏入 IT 行业从事软件研发工作,但英文水平比较一般的人,在经过几年的工作后可能会觉得英文水平的高低似乎也不会对本职工作有多大影响。之后,不管是在搜索资料,还是阅读文档时,逐渐会对英文的资料敬而远之。甚至,当遇到把英文作为第一交流语言的开源社区、开源项目时,表示很不理解;明明都是中国人,却非要用英文。

这里,我们不讨论开源项目中到底应该以何种语言为首选。确认无疑的是,只要你愿意暂时放下已有的观念,潜心地、虚心地参与到开源社区中来,对于学习语言的看法一定会有很大改变的。人随心动,放空自我,随着社区一起成长,英文水平的大幅提高几乎是必然会发生的事情。

除了语言本身的学习、成长之外,参与开源还可以让你的思维方式、理念保持长久的年轻、不僵化。人总是会容易骄傲自满、固步自封,然而如果你始终坚持开源的基本原则的话,不管你获得过多大的成就,你也还会乐意和新加入的朋友一起畅聊。

参与开源的原动力

我们做任何事情,都由一定的动力驱使的,不管是内在的,还是外来的;抑或只是一个借口或者理由。不同的人,参与开源有着不同的原因。但,弄明白这个动因,是极为重要的。

有不少的声音提到,参与开源需要用“爱”发电。不知道第一次提出这个说法的人想要传达的信息是什么,但这句话极易使得对开源接触不深入的人产生误解。在经济和时间上都不富有的情况下,“爱好”显然不是一个强有力的驱动。很难想象到,仅凭借“爱好”就可以让你改变思维模式、在一个领域长久地耕耘。

如果把我们自身比作航行在大海上的一艘船的话,“爱好”可以帮助我们“导航”,而真正让我们得以“远航”的“发动机“还是和我们的职业密切相关的。至少,在社会主义实现之前应该是这样的。

参与开源的过程中,在选择技术领域、开源项目上,“爱好”在发挥着作用。但是,千万不要偏离了你的“全职工作”。至少,你需要找到二者之间的结合点。

1
https://gitee.com/linuxsuren/open-source-best-practice.git
git@gitee.com:linuxsuren/open-source-best-practice.git
linuxsuren
open-source-best-practice
open-source-best-practice
master

搜索帮助