第 2 小节:个人为什么要参与开源贡献
“开源理念之一就是非常鼓励不同的人一起合作”。——Linux 之父
Linus Torvalds
2016 年 2 月 TED 演讲《The mind behind Linux》[1]
前言
一个有生命力的开源软件总是有爱好者不断参加到开发中来,持续完善软件代码,不断提高软件的性能;1998 年 2 月,开放源代码促进会,由 Bruce Perens 及 Eric Steven Raymond 等人创立;从上个世纪九十年代萌芽至今,许多企业利用开源软件形成了独特的商业模式。开源领域不断发展以来,无数开源者在广阔的开源领域不断探索、求知,为遇到的疑问匹配上答案,个人技能得到极大提高,也收获了属于自己的那份“奖励”。而开源者的成长也形成了一股强大的能量,反哺到开源社区,促进者开源社区的发展。
接下来,我们从“解决诉求”、“个人成长”、“正向激励”、“促进开源”这 4 个方面进行分析,向大家阐述“个人为什么要参与开源贡献”。
解决诉求
参与开源可以解决个人诉求
所谓“存在即合理”,任何事物的兴起,都是其出现的背后有强烈的诉求需要解决。开源领域的出现,就是在开源者为了满足自身促进交流的诉求而形成的。可以说,没有开源诉求,就没有开源的发展。开源者的诉求这里大致分为 4 种:
个人兴趣
一些开源者最初只是单纯对开源领域感兴趣,有浓烈的好奇心,所以才加入开源社区。而后随着不断深入了解,最终成为一名优秀的开源者。
日常需求
有些开源者是因为生活或工作中接触到了相关的开源技术,需要技术交流或解决问题,因此加入开源社区。
技术提升
有一定技术基础的开源者,会产生提升个人技术的想法,想要为个人的职业规划发展打造个人品牌,所以加入开源社区进行技术深造。
生态推广
一些已经具备个人成果的开源者,会想要推广个人成果,一方面可以提升技术影响力,一方面可以打造自己的开源生态社区。
那么,个人为什么要开源者参与开源贡献?至此,已经有了第一份答案:因为开源者有开源诉求,为了解决个人诉求参与开源。也正是因此,开源领域才吸引越来越多的开源者参与其中,形成开源社区。
个人成长
参与开源可以帮助个人成长
在你解决个人诉求的过程中,你的各项能力也在随着你的努力而成长。你会因掌握一项开源项目而得到专业技能的提升,也会因为开源社区的技术交流与沟通提升自己的沟通能力和团队协作能力。你在开源领域的贡献所有人都会看在眼中,有过优秀开源经历的开源者在求职方面也能够得到青睐,求职遇到开源社区的小伙伴也说不定哦!
专业技能
Heidi Ellis 教授激励学生参与开源,在专业社区中学习能够远远超出在课堂学习到的技术和技能[2];参与一个开源项目并解决问题,项目维护者会对你提交修改的部分审查,并提供相关正向的反馈,这个过程你可以学习到如何提交正确优秀的代码;甚至你可以提出自己的想法来改进项目,Linux 最开始的时候,人们并不是贡献代码,更多的是贡献想法。
职业软技能
开源的属性是开放的,因此开源社区的参与者数量会比平时工作要大得多。面对庞大的开源社区,需要更加有效的沟通和管理。这也是大家常说“开源实质上是一个管理问题”,。
参与大型团队,丰富简历
工作经验在求职中尤为重要,单纯的编程经验是不够的,你得知道怎么作为团队的一部分,和其他人一起合作;当然你可以通过课程或在工作中获得技能与经验,如果在没有合适机会的情况下,开源项目将提供绝佳的机会;成为贡献者,你不需要被这些公司雇佣,就能和这些优秀的团队一起工作;所有开源贡献都是公开的,它们可以证明你已掌握的技能和已完成的项目;例如:摄影师在寻找新客户时会展示他们的作品集,GitHub 和 Gitee 就是你的作品集。
那么,个人为什么要开源者参与开源贡献?这就是第二份答案:因为开源者能够在开源中得到成长,提升个人竞争力。虽说“站在风口上,猪都会飞”,但风口过去后,“猪”可能会摔死。因此,想要提升个人竞争力,可以选择陪伴开源共同成长。
正向激励
参与开源可以得到很多激励
一个人可能走得更快,但是一群人会走得更远。在开源过程中,你会结识志同道合的朋友,获得朋友的认可与支持,甚至能够与自己崇拜的业界大佬共同交流。是不是想想就让人感到兴奋?而且,开源社区也会举办各类活动,促进开源社区的发展,参与活动的开源者一般能够得到不错的精神或物质奖励。
增加交友的机会
通过为开源项目做出贡献,最终与其他志趣相投的人进行协作;很多人的深厚友谊都是通过共同参与开源项目所建立起来的;开源项目一般都会有一个和谐、热心的社区,在社区里我们可以不断提升技能,大家会把自己的工作成功和经验分享出来,这样大家就不在花费时间去探索相同的问题,大大降低重复劳动的现象;最后你可在社区中不断提升能力,并树立信心。
根据 GitHub 2019 年的报告[3],目前 GitHub 上有超过 4000 万开发人员,其中有 80% 来自美国以外的地区,超过 35 万人为 1000 万个顶级项目贡献了 500 万以上的提交/代码;
成就感与自信
帮助他人解决问题也是一种乐趣,在一次成功 PR 过程后,或许会暗喜很久。毕竟大型的开源项目里,都是大型团队,他们在认可你做出的努力,对编程人员或设计人员的鼓舞或者说精神支柱,就是他们设计的软件受欢迎,那是一种难以言喻的体验;在提升技能同时也能从帮助他人树立自信心。
奖励
许多项目都会向贡献者发放礼物以表示感谢,例如 Mattermost 会为所有首次贡献者和第一次提交的用户送上一个定制的杯子 [4]。
那么,个人为什么要开源者参与开源贡献?没错!解决诉求和个人成长是我们参与开源的原因,而良好的激励是让我持续参与开源的动力所在。
促进开源
在解决自身诉求、提升个人成长、得到正向激励的同时,开源者已经在不知不觉中成为了开源社区的一位优秀的开源成员。
在你每一次解决问题的时候,在你每一次得到技术成长为他人答疑解惑的时候,在你因为参与开源而得到回报的时候,在你每一次拥抱开源的时候,你也在影响着开源领域的发展,促进开源领域向更加广阔的方向奔涌而去。
孵化
对开源技术有一定的眼界与想法时,可以孵化自己或已有的开源项目。在项目孵化过程中,能够接触到最前沿的开源技术,与优秀开源者和开源业界大佬共同为项目做贡献。项目的孵化在一定程度上,影响着数千万的开源爱好者对技术的关注和选择,影响着相关开源技术的走向。
创新
开源不仅仅是软件;正如前文所说,开源的表现形式还有开源硬件(Open Source Hardware),例如有人利用 Arduino 制作 3D 打印,甚至利用开源硬件发射卫星,世界上成千上万的人制作出有个性的东西,从玩具到卫星装置,甚至还能用它来创业 [5] ;任何人可以对已有的设计进行学习、修改、发布、制作和销售;创新时刻都在发生,因为一切都是开源的。
ArduSat:利用开源硬件制造的微型卫星 [6] ;ArduSat 的体积还不如一个鞋盒大,重量非常轻盈,在 1 千克左右。有 25 种传感器,包括三个摄像头、一个盖革计数器、分光仪、磁力计、GPS、二氧化碳探测器等等;
来自智利的男孩,做了一个系统,可以检测地震并在推特上发布消息,他的推特上有 28 万粉丝他的年纪只有 14 岁,当地政府一年后才跟上他,发布了类似系统;
将一个 Arduino 组件带有 Wi-Fi 功能,附于一颗植物上,测量它的生长情况,同时它连接着一个推特账号,所以我们实际上可以和这颗植物互动比如,它会说“天气真热”或者“我现在想喝水”这就让这颗植物变得很有个性。
那么,个人为什么要参与开源贡献?所谓“一荣俱荣,一损俱损”,开源社区的发展离不开开源者的贡献,开源者的诉求、成长、交流以及思想也需要依赖开源社区,开源领域的发展与每一位开发者都息息相关。
总结
“Scratch your own itch”,字面意思是给自己挠痒痒,结合开源精神来说,如果有自己的想法,就动手去实现,通过开源可以为人们带来的超乎各种想象力的事情;引用胡适先生的名言:“怕什么真理无穷,进一步有近一步的欢喜”。
此外,如果想要了解更多开源发展相关信息,大家可以通过各种渠道来了解。例如:Gitee 2019 年度数据报告 [7]、2019 年中国开源年度报告 [8]。
参考资料
- [1] TED - The mind behind Linux
- [2] 教授鼓励学生参与开源项目的 5 个理由
- [3] GitHub 2019 年报告
- [4] Mattermost 为贡献者送上一个定制杯子
- [5] TED - Arduino 创始人:开启开源想象力
- [6] ArduSat:利用开源硬件制造的微型卫星
- [7] Gitee 2019 年度数据报告
- [8] 2019 年中国开源年度报告