【云驻共创】加入社区贡献开源
一、什么是社区?
贡献开源,加入社区。Community社区是什么?我们认为开源社区不是狭义上的论坛或者平台,并不是说注册一个账号,提交一个申请就可以加入社区。社区不是一个固定的论坛或者平台,社区应该是由一群志同道合的朋友汇聚一起,共同完成一项事业或者项目,朝着同一个方向前进。加入社区,并不是说我们要做出多么大的贡献,提交多少行代码。当我们从社区下载一个开源项目,使用它,研究它,并为之给出相应的合理的建议或者意见,那么我们可以说,我们已经是社区中的一员,我们就是社区的贡献者之一。
二、为什么要贡献开源项目?
我们必须承认,学校里教授的计算机知识和市场上实际项目是天差地别。学校里还在使用“上古”教材,市场在使用前沿的技术,我们需要接触和了解技术前沿,而不只是书本知识。贡献开源项目可以帮助我们学习和验证专业知识技能,了解技术的最前沿,学习他人是怎样编写程序,怎样完成一个完整的项目。
即使我们去公司实习,考虑到公司的相关顾虑和个人能力,公司一般不会让一个实习生接触项目底层。一是不信任实习生的能力,二是实习生可能实习完就离开公司,公司的各种努力都是徒劳。然而,我们正是需要去接触整个项目,触达项目底层,开源项目很好的提供了这样的一个学习途径。尤其是以公司为主导的一些开源项目,保证了开源项目代码质量,以及公司都是实际在使用这些开源项目,更加体现了项目的实际性和真实性,从其中我们可以了解公司内部对于代码要求以及项目整体构建思路。
阅读开源项目的源码,我们不仅可以学习项目的设计思路,还可以学习和了解开发者的编程思路、代码规范等,通过他人来提升自己。同时,我们也可以提交PR、注释,而社区里的其他参与者会给出直接反馈和回应,这比我们自己摸索要成长得更快。
另一方面,从就业来说,如果我们在开源项目上留下印记,无论是贡献代码、技术文档、应用案例等等,这些开源贡献,无关于学历或者专业,是实实在在的技术能力的体现,都是加强就业竞争力的一个方式。如果我们非常的优秀,可能面试官了解我们,认识我们,甚至于直接从Github等开源社区上联系我们。并且可能社区中的其他人会向公司推荐我们入职。无论是参与工作还是寻找工作,参与开源社区是一个很好的能力提升和体现。
贡献开源项目是从业入门的最佳路径。
三、什么样的开源项目更适合我们?
当前人工智能盛行,大部分人都选择与人工智能相关的内容,一方面是人工智能的论文较为容易发表,另一方面在企业工资高。但是这不意味着就业形势最好,竞争的就业者太多,内卷严重。可能进入企业以后做的不是人工智能工程师,而是调参工程师,工作内容并且我们本愿,工作起来相当痛苦。
基础性的工作,如数据库、操作系统、内核等,选择的从业者较少,实际上需求量非常大,经常招聘不到从业者,企业排队也抢不上。了解就业趋势,选择自己的热爱,找到可以贡献的合适的开源项目。这是一个探索和学习的过程,利用开源项目寻找适合于自己的方向进行深入。
早日参与开源项目,早日知道自己合适的方向。我们想做的方向,我们合适做的方向,我们最终做的方向。这三个方向能否匹配,如果完全匹配,将来我们的工作可能是非常幸福的,如果完成不能匹配,我们可能是非常痛苦。
选择一个合适你的开源项目让过程不再痛苦,不要根据市场情况去选择从事的细分领域。
四、贡献开源项目需要什么样的基本技能?
参与开源项目贡献会编写代码是远远不够的,还需要学习能力和沟通技巧。
4.1学习能力
善用搜索引擎。社区人员可能比较忙,不会回答我们。也可能我们的问题很简单,在网上就有答案,一定要善用搜索引擎,从互联网获取答案。不过需要注意的是,答案有对有错,需要我们自己去甄别。
仔细观察和深入思考,获得了答案,我们需要去思考它为什么这么做?为什么可以解决?原理是什么?问题又是如何产生的?而不仅仅只是解决问题本身,更多的从问题出发,总结经验和知识。
穷举法。有时候思考的结果不一定对,我们需要不断地尝试所有的方法和结果,找到正确的适合我们的。
在社区写blog文章,或者以vlog形式呈现自己的理解,我们能写出来,逻辑是清晰的,别人能看懂。有没有人看不是关键,关键是我们在写文章时复盘整个项目,尝试理清项目结构,深入对问题的理解,这些对于我们的提升是有益的。
参与社区活动。有很多社区活动是在各地不定时举行,当我们站在台上讲半个小时,可能需要我们在台下准备好几天,这也是一种学习过程。包括在活动中与其他工程师的交流、提问和解答。
4.2沟通技巧
认真理解别人的话,当别人回答了一个问题,思考是如何解决的。表述要带上下文,不要一句话提问,最好可以描述上下文、运行环境、运行状态、复现操作等内容。交流时尽量谦虚的表达,时刻注意自己的言论表达方式。站在对方的立场思考问题以及没有人有义务帮助我们。
五、如何贡献?
部分社区或者论坛,会给出贡献攻略,告诉参与者如何贡献、提交、提问等等内容。我们应当参照这个文档进行贡献。
仔细阅读CLA和项目的许可协议。参与开源项目需要了解开源文化和开源精神,遵循相关法律法规和协议。CLA和License是学习开源文化和精神的最佳实践。
深度使用开源项目,在使用过程中对遇到的问题和想法都进行记录和深入研究,寻找可以对项目进行改进或者扩展的方向。
从小做起,开始提交少数几行代码,让其他成员了解和熟悉你的代码风格和质量,如果他们认同,再可以进一步的提交多行代码,写一个函数,实现一个功能。
对项目文档进行补充,没有任何一个开源项目的文档是完整的,总有一些内容可以进行改进
翻译永远是被需要的,没有一个开源项目会拒绝多语言的贡献,每个项目的开发者都希望被更多人熟知和使用。翻译也是对整个项目和文档深入理解,并不只是单纯的翻译成中文,翻译过程也是一个学习过程。
参与社区活动也是贡献的方式,协助社区组织线上、线下的活动也是极大的贡献。
六、一起成长!
选择一个适合自己的开源社区环境,随着社区一起成长!
欢迎加入openEuler,与openEuler一起成长。openEuler是国内非常有机会可以做起来的开源社区,华为在背后大力投入,真正的在做一个Linux发行版,与 CentOS 没有直接的关系,二者都是从最上游 Linux Kernel 衍生而来。openEuler社区经常举办各种比赛,我们希望大家可以广泛参与到其中,不仅仅是为了比赛奖励,也是提升自己的技术能力以及为以后的求职提供基础。
附:本文整理自华为云-如何在开源社区提交第一行代码,点此回看
查看活动:【华为云社区内容共创者火热招募中】第五弹
- 点赞
- 收藏
- 关注作者
评论(0)