大家好,受卡哥邀请,和大家分享一下开源活动的相关经验。首先简要自我介绍一下,我目前在一所985研二在读,主要学习大数据方向,从去年开始参与开源活动近一年时间,也对多个Apache框架有所贡献。
由于学校或专业的要求,在校生都有可能面临无法线下实习的问题。而参与开源活动可以不受时间和地点的限制,同时给自己的简历不错的提升,深度参与知名开源社区的建设,给个人简历的提高并不低于大厂实习。
在近来的暑期实习中,我成功拿到了腾讯、字节等多家大厂的offer。以我个人面试的经验看,所有的面试都被问到开源经历(包括HR面),大约一半的面试会涉及个人的实习经历和项目经历。在校招面试中八股和算法是必不可少的,但常见的八股文和top100算法题掌握的同学不在少数,如何在行情比较差的当下脱颖而出,主要在于和面试官是否有深度的项目经历进行聊天,相比于烂大街的项目,尤其是自己写的项目容易被面试官看成玩具,开源项目还是加分不少的,而通过对Apache框架的贡献更能体现个人的工程能力,作为你的代码能力证明,面试官可以根据你贡献PR直接看到你的能力水平,更多纬度地评价你的个人能力。另外如果深度参与了某个Apache框架社区,你一定会了解该社区解决了哪些业务痛点,未来要做哪些新的功能特性,较高的深度会引起面试官的兴趣多进行倾听,同时工作多年的面试官肯定对你遇到的业务痛点深有同感,觉得你所做的是有价值的,在接下来的面试中就不会再难为你。
介绍了很多参与开源的好处,也推荐一些参与开源的好方式。如果你是第一次参与开源,建议找到感兴趣的Apache社区中的Good First Issue来入手,其中都是一些难度较低的入门类工作,专为新手参与社区而准备。但很多社区并没有对应的Good First Issue,这时建议可以参与国内的一些开源活动,例如GSOC和OSPP等,刚好现在4月份OSPP即将开放申请,贴一下具体的链接供大家参考:开源软件供应链点亮计划-开源之夏2023 可以按照自己擅长的语言和方向进行具体社区的选取,然后申请投递即可。
开源贡献具体会经历以下几个步骤:
1.发现问题或自荐 feature ,也可以在issue模块中找到别人提出的问题进行解决。
2.从官方仓库fork 源码到本地仓库。
3.本地进行代码的开发和自测,开发过程中可以多参考社区类似的代码,往往都会有代码风格的要求。
4.发起 pull request 请求合入代码。
5.等待社区大佬进行code review 。
6.根据reviewer的建议调整代码。
7.审核通过,合并进 master 分支,完成贡献。
最后为我们社区Apache Seatunnel打Call一下,主要做分布式数据同步相关,具体内容可以参考:Apache SeaTunnel | Apache SeaTunnel 如果刚接触开源并且对该方向有兴趣,也欢迎私信我帮你推荐合适的新手任务,尽可能确保第一次代码可以成功合入,成为Apache的贡献者之一。如果有什么问题也欢迎大家留言提问。