【云驻共创】加入社区贡献开源

举报
Victue 发表于 2021/06/23 11:08:56 2021/06/23
【摘要】 新人经常听到加入社区,贡献开源,本文将告诉你什么是社区、如何贡献以及贡献开源的价值何在。

一、什么是社区?

贡献开源,加入社区。Community社区是什么?我们认为开源社区不是狭义上的论坛或者平台,并不是说注册一个账号,提交一个申请就可以加入社区。社区不是一个固定的论坛或者平台,社区应该是由一群志同道合的朋友汇聚一起,共同完成一项事业或者项目,朝着同一个方向前进。加入社区,并不是说我们要做出多么大的贡献,提交多少行代码。当我们从社区下载一个开源项目,使用它,研究它,并为之给出相应的合理的建议或者意见,那么我们可以说,我们已经是社区中的一员,我们就是社区的贡献者之一。

图片1.png

二、为什么要贡献开源项目?

我们必须承认,学校里教授的计算机知识和市场上实际项目是天差地别。学校里还在使用“上古”教材,市场在使用前沿的技术,我们需要接触和了解技术前沿,而不只是书本知识。贡献开源项目可以帮助我们学习和验证专业知识技能,了解技术的最前沿,学习他人是怎样编写程序,怎样完成一个完整的项目。

即使我们去公司实习,考虑到公司的相关顾虑和个人能力,公司一般不会让一个实习生接触项目底层。一是不信任实习生的能力,二是实习生可能实习完就离开公司,公司的各种努力都是徒劳。然而,我们正是需要去接触整个项目,触达项目底层,开源项目很好的提供了这样的一个学习途径。尤其是以公司为主导的一些开源项目,保证了开源项目代码质量,以及公司都是实际在使用这些开源项目,更加体现了项目的实际性和真实性,从其中我们可以了解公司内部对于代码要求以及项目整体构建思路。

阅读开源项目的源码,我们不仅可以学习项目的设计思路,还可以学习和了解开发者的编程思路、代码规范等,通过他人来提升自己。同时,我们也可以提交PR、注释,而社区里的其他参与者会给出直接反馈和回应,这比我们自己摸索要成长得更快。

图片2.png

另一方面,从就业来说,如果我们在开源项目上留下印记,无论是贡献代码、技术文档、应用案例等等,这些开源贡献,无关于学历或者专业,是实实在在的技术能力的体现,都是加强就业竞争力的一个方式。如果我们非常的优秀,可能面试官了解我们,认识我们,甚至于直接从Github等开源社区上联系我们。并且可能社区中的其他人会向公司推荐我们入职。无论是参与工作还是寻找工作,参与开源社区是一个很好的能力提升和体现。

贡献开源项目是从业入门的最佳路径。

 

三、什么样的开源项目更适合我们?

当前人工智能盛行,大部分人都选择与人工智能相关的内容,一方面是人工智能的论文较为容易发表,另一方面在企业工资高。但是这不意味着就业形势最好,竞争的就业者太多,内卷严重。可能进入企业以后做的不是人工智能工程师,而是调参工程师,工作内容并且我们本愿,工作起来相当痛苦。

基础性的工作,如数据库、操作系统、内核等,选择的从业者较少,实际上需求量非常大,经常招聘不到从业者,企业排队也抢不上。了解就业趋势,选择自己的热爱,找到可以贡献的合适的开源项目。这是一个探索和学习的过程,利用开源项目寻找适合于自己的方向进行深入。

早日参与开源项目,早日知道自己合适的方向。我们想做的方向,我们合适做的方向,我们最终做的方向。这三个方向能否匹配,如果完全匹配,将来我们的工作可能是非常幸福的,如果完成不能匹配,我们可能是非常痛苦。

选择一个合适你的开源项目让过程不再痛苦,不要根据市场情况去选择从事的细分领域。

 

四、贡献开源项目需要什么样的基本技能?

参与开源项目贡献会编写代码是远远不够的,还需要学习能力和沟通技巧。

4.1学习能力

善用搜索引擎。社区人员可能比较忙,不会回答我们。也可能我们的问题很简单,在网上就有答案,一定要善用搜索引擎,从互联网获取答案。不过需要注意的是,答案有对有错,需要我们自己去甄别。

仔细观察和深入思考,获得了答案,我们需要去思考它为什么这么做?为什么可以解决?原理是什么?问题又是如何产生的?而不仅仅只是解决问题本身,更多的从问题出发,总结经验和知识。

穷举法。有时候思考的结果不一定对,我们需要不断地尝试所有的方法和结果,找到正确的适合我们的。

在社区写blog文章,或者以vlog形式呈现自己的理解,我们能写出来,逻辑是清晰的,别人能看懂。有没有人看不是关键,关键是我们在写文章时复盘整个项目,尝试理清项目结构,深入对问题的理解,这些对于我们的提升是有益的。

图片3.png


参与社区活动。有很多社区活动是在各地不定时举行,当我们站在台上讲半个小时,可能需要我们在台下准备好几天,这也是一种学习过程。包括在活动中与其他工程师的交流、提问和解答。

图片4.png

4.2沟通技巧

认真理解别人的话,当别人回答了一个问题,思考是如何解决的。表述要带上下文,不要一句话提问,最好可以描述上下文、运行环境、运行状态、复现操作等内容。交流时尽量谦虚的表达,时刻注意自己的言论表达方式。站在对方的立场思考问题以及没有人有义务帮助我们。

 

五、如何贡献?

部分社区或者论坛,会给出贡献攻略,告诉参与者如何贡献、提交、提问等等内容。我们应当参照这个文档进行贡献。

webtrailchess5x.png


        仔细阅读CLA和项目的许可协议。参与开源项目需要了解开源文化和开源精神,遵循相关法律法规和协议。CLALicense是学习开源文化和精神的最佳实践。

        深度使用开源项目,在使用过程中对遇到的问题和想法都进行记录和深入研究,寻找可以对项目进行改进或者扩展的方向。

        从小做起,开始提交少数几行代码,让其他成员了解和熟悉你的代码风格和质量,如果他们认同,再可以进一步的提交多行代码,写一个函数,实现一个功能。

        对项目文档进行补充,没有任何一个开源项目的文档是完整的,总有一些内容可以进行改进

        翻译永远是被需要的,没有一个开源项目会拒绝多语言的贡献,每个项目的开发者都希望被更多人熟知和使用。翻译也是对整个项目和文档深入理解,并不只是单纯的翻译成中文,翻译过程也是一个学习过程。

        参与社区活动也是贡献的方式,协助社区组织线上、线下的活动也是极大的贡献。

 

六、一起成长!

选择一个适合自己的开源社区环境,随着社区一起成长!

Snipaste_2021-06-23_11-01-39.png

Snipaste_2021-06-23_11-02-57.png

欢迎加入openEuler,与openEuler一起成长。openEuler是国内非常有机会可以做起来的开源社区,华为在背后大力投入,真正的在做一个Linux发行版,与 CentOS 没有直接的关系,二者都是从最上游 Linux Kernel 衍生而来。openEuler社区经常举办各种比赛,我们希望大家可以广泛参与到其中,不仅仅是为了比赛奖励,也是提升自己的技术能力以及为以后的求职提供基础。

Snipaste_2021-06-23_11-04-25.png

:本文整理自华为云-如何在开源社区提交第一行代码,点此回看

查看活动:【华为云社区内容共创者火热招募中】第五弹

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。