同步操作将从 FlameAI/欧来指北 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本篇内容将会阐释参与开源是怎样对个人技术成长产生影响,以及如何影响的。 正如第一节所说的,开源已经成为一种超越软件生产界限的运动和工作方式。那么开源对个人有什么影响呢? 在讨论这个事情之前,首先我们得先了解开源社区的概念。
开源社区又称开放源代码社区,一般由拥有共同兴趣爱好的人所组成,根据相应的开源软件许可证协议公布软件源代码的网络平台,同时也为网络成员提供一个自由学习交流的空间。由于开放源码软件主要被散布在全世界的编程者所开发,开源社区就成了他们沟通交流的必要途径,因此开源社区在推动开源软件发展的过程中起着巨大的作用。
除了开源社区,我们不得不提一下程序员素养,一个优秀的程序员需要拥有什么素养呢?是不是只需要打代码就可以了?答案当然是否定的。抛开其他素养不谈,我们这里只提以下 5 点。
就开源社区而言,参与开源可以很好的锻炼程序员的以上 5 个素养。
什么是开源,相信前面的章节已经说的非常清楚了。开源作为一种贡献技术的方式,对整个技术界和开源社区的正向回馈是巨大的。近 10 年来,越来越多的项目加入了开源界。其中有许许多多的知名开源项目被人所认可和追捧。
这些列出来只是冰山的一个小角而已,还有很多这种耳熟能详的开源软件,他们共同形成了一个完整的开源生态,现在已经渗透到了各行各业。可以这么说,现在你电脑上用的软件,手机里用的 app,你的吃住出行的背后,都有开源项目的支撑。没有了开源项目,这个世界根本不是现在这个样子。
随着开源协作这种方式越来越被这个世界所认可,有很多的公司和个人开发者也加入了开源大家庭,他们把自己的技术沉淀,解决方案做成开源项目回馈给开源社区。如今的技术界,正因为有了开源,而变得不再是闭门造车,而是呈现出一种百家争鸣,欣欣向荣的景象。
开源社区的每一个人都有自己的角色,一般一个大型的开源社区有以下几种角色:
那开源的宗旨是什么,有七个理念,分别是:完全自主,高度开放,自发自治,自下而上,自由竞争,赢在声誉,社区赋能。
此理念引用于《开源的7大理念》,由《大教堂与集市》的译者卫剑钒提出。
那么每个角色在开源社区内,都能有所收获,下面我们就来聊下,不同的角色会有什么样的收获。
之所以把这两个角色放一起来说,是因为有很多开源项目这两个角色是重叠的。毕竟像 Linux 那样拥有一整个开源团队的项目还是少数,很多开源项目的团队就几个人,那么领导者又同时是维护者。
领导者这个角色,是对于开源项目的事务有着最终话语权的,这个角色能决定开源项目的发展方向,这个角色得为现有的版本和未来的版本作规划,结合使用者的反馈来决定下一版本该上什么样的特性,这个项目最终能达到的高度和解决什么样的问题。作为这层的角色,你需要去从大局观去考虑,作为项目的领导者,能获得的提升是全方位的,从项目所处的专业领域的发展,到每个特性关联的技术方向,再到怎么在社区内进行推广,怎么持续推进项目的进度。这些实际操作的过程累计的经验,能让你在任何一个项目中都能正确分析和决策,游刃有余。
而作为维护提交者,是可以直接提交代码到主干的人。这个角色得了解这个项目的所有技术细节。担任核心的开发工作。如果你作为这个角色,必须要对你项目中所使用技术有较深的理解,同时还要对项目架构有一定的设计能力。成为这个角色你能获得的提升有以下几点:
1)对相关技术知识点的全方位掌握和系统化的思考方式。开源项目的用户是开发者,而开发者会把你的项目用于各种场景,这就和公司级项目比较单一化的场景有所不同,所以你必须考虑到更多的层面去设计你的开源项目,也必须更深的掌握相关知识点。
2)自主的学习精神。做开源要面对大量不同的场景,同时也要对你选型的其他开源框架有更深入的了解,自主的学习是每一个开源人的特点。
3)开放的心态,你对其他开源作品会有一个开放性的认识,能客观的了解开源的现状,社区的情况。
4)敢于竞争,开源的理念有一项就是自由竞争,做开源当然是希望自己的项目成为这个赛道里靠前的项目,自然会涉及到竞争,在完全自由化的开源社区,竞争也是一种良性的循环。
5)获得声誉,有更多的人来用你的项目,你自然会获得声誉,这是包装自己比较好的一种方式。
贡献者不光是写代码,如果你参与了某个开源项目,除了可以成为 committer 之外,你还可以帮助用户解答问题,贡献文档,在邮件列表中参与讨论。
成为这个角色获得的提升有这些:
1)通过了解代码细节获得相关知识,成功的开源项目一定是能帮助开发者解决一块领域的问题的,了解作者如何做到这点的细节会对你有帮助。
2)通过贡献文档来获得写文档的能力,代码写得好不代表你文档就能写得很好,写代码反映的是你用技术解决问题的能力,而写文档反映的是你书面叙述解决方案的能力。
3)交流能力,开源项目面对的用户是其他开发者,开源项目的迭代一定是要使用者参与的。正确的处理使用者的反馈,通过交流听取使用者的建议,会使开源项目处于一个正向的循环中。
4)技术影响力:通过贡献代码/文档到开源项目,是非常有效的一种证明自身技术能力的方式,所以能够很直接地提升自己的技术影响力;如果你在贡献代码的同时,还擅长通过技术写作、技术演讲等形式来推广该项目,那么这种技术影响力就会被进一步放大;另外,参与知名开源项目本身就可以为贡献者带来背书和技术影响力,而且这种结局是双赢的。
这个角色作为社区成员,他们最有价值的部分是提出需求、报告缺陷、提出建议。
作为使用者,获得的提升有这些:
1)能关注到开源社区新的技术方向,使用者肯定是认可开源这种协作方式的。长期关注开源社区,能让使用者长期紧跟社区最新的技术方向,这也能让你在选型企业级系统中间件的时候有很多选择。
2)通过使用开源项目,获得技术的提升。
3)通过提出需求,报告缺陷让你企业级项目里的碰到的问题得到快速解决,也能促进开源项目的迭代,等于是贡献了社区。
总的来说,个人参与开源项目对职业发展和个人成长都有很大帮助。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。