现在的开发人员普遍都有开源项目或社区的经验。实际上,除了开发人员外,学生应该而且也越来越愿意参与到开源项目中。如果想知道更多关于为什么应该考虑参与开源项目,请参考“为什么应该加入开源社区[1]”。
可以说,过去的两年里充满了挑战,新冠疫情永远改变了我们,改变了我们贴近和珍视生活的方式,改变了我们的工作方式,改变了我们的社交方式,最终网络研讨会还有在线活动成为新常态。
学生也深受影响。在线学习意味着学生必须再次适应掌握课程内容的方式,同时也必须适应如何在这前所未有的艰难时期找到第一份职业机会或实习岗位,充分利用在线实习并获得宝贵经验已成为学生度过难关的一种选择。Google[2],Anitab[3] 和 ISCAS[4]为学生提供多种在线开源项目和编程马拉松,目的是将世界各地的人联系起来。当然,大部分内容都是免费的,有的甚至为学生和导师提供相应的奖学金和学费。
简而言之,加入开源社区,学生将获益良多:
- 练习技能
- 解锁实习机会,收获更多实习经验
- 与世界各地的伙伴和导师建立联系,交流合作
- 获得奖学金
下一个问题就是如何利用这些具有吸引力的项目加入开源中?
虽然基本过程大体相同,但不同项目有不同规则,有些规则往往是明确的,即:
- 选择一个开源项目或与与之相关的合作社区
- 提交学生加入申请
- 与导师取得联系
- 贡献及编程(编程是做出贡献的一种形式,此外还有很多贡献方式)
- 等待评估
- 获得最终结果
基于以上步骤,我总结自己在 GSoC[2]、OSD[3] 和Summer Code[4] 的指导经验专门为你们提供一些关键技巧。
0 1 选择合适的项目
选择合适的项目我之前提到过,许多组织正在发起开源项目,而这些项目的日程安排不同、任务持续时间不同、要求的资历不同、奖学金条件也不同,因此最好研究不同的项目后,挑一个最适合你的项目。
0 2 提前选择一个特定的项目
如果你想要优先入选,千万不要等到官方截止日期才选择一个开源项目,这些项目的委员会通常会选择优秀的开源社区作为合作伙伴为其提供指导。例如,在成为正式的 GSoC 导师之前,我们的社区已经为申请人创建了很多任务,供公开申请[5]。
我们鼓励学生在项目开始前就发表见解,给学生和导师充分的时间去互相了解。也许某个学生可能不是特别合适,但他/她的积极主动给导师留下了深刻印象,导师有可能就会选中他/她。
0 3 简明扼要的申请书
项目申请书应该是简明扼要的,而非冗长又不充分的。要做到这一点,建议你参考导师的任务细节(有些导师会详细描述任务,有些则不会),或者直接询问导师的期望和关注点。当涉及到任务或任务目标时,打着一厢情愿的幌子去猜测或行动是准备申请书的方法中最低效的。导师和学生都希望工作能顺利有效地进行,所以不要羞于向导师寻求帮助。
0 4 积极联系导师
如果你的申请被接受了,那么下一阶段就是参与其中或开始 coding,这是你产生价值的重要机会。你可能是编码奇才,但是你会遇到一些不确定的问题,或者不确定导师对你的工作有什么看法。此外,你还要考虑到,有些导师负责两三个学生,生活和工作都很忙。话虽如此,我相信你可以切身感受主动联系导师问问题或定期报告进展是非常有益的。如果你只是等待,等到导师想起你,可能已经太迟了,消极等待是行不通的。
0 5 微妙的问题
虽然有必要与导师保持密切联系,但你不能成个什么都不懂的巨婴。事先考虑一下你的问题,自己进行调查研究,看看你是否能用批判性思维独立解决问题,或者是向人人信任的朋友—— Google 寻求解答。
如果你做不到的话,导师可能会认为你缺乏分析解决问题的能力,或者更糟的是,认为你不愿意在实践中学习。如果你在研究后仍然感到困惑,那么就准备用专业术语和研究报告向导师咨询。这不仅能确保你得到导师的关注,而且能让导师了解你真的遇到了一些困难,导师就会全心全意的帮助你。我在指导了很多国内外的学生后,可以与大家分享我的以上看法。我真诚地鼓励你们来试试这些有趣而有意义的项目,丰富校园生活,增强技能,扩大朋友圈。最后还有非常重要的一点就是,如果有兴趣加入分布式数据库开源生态系统,我在等你们的加入[6]。
作者
潘娟 | Trista
SphereEx 联合创始人、Apache Member、Apache ShardingSphere PMC、Apache brpc(Incubating)及 Apache AGE(Incubating)mentor。曾任京东科技 Senior DBA(高级数据库管理员),负责京东数字科技智能数据库平台的设计开发。现专攻分布式数据库中间件生态系统以及开源社区,获得“2020 中国开源先锋奖”,常受邀在数据库架构领域峰会上进行分享。