如何开源之夏
从参与条件、选项目、联系导师、申请书到结项,整理开源之夏 OSPP 的完整参与流程。
开源之夏是由中国科学院软件研究所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。
想参与开源之夏,我需要具备什么?
硬性条件
从其每年官网的参与指南中可以得知:
你必须是全日制学校的还未毕业学生(包括大专,本科,研究生),而且年满18才能参与,这是硬性要求,达不到连你找项目的资格都没有。
注意:大四上快要毕业的学生呢,也是可以的,因为在申请时你还未毕业。
其他条件
如果你具备以下条件,那么你参与开源之夏会更加容易:
- 具有扎实的编程基础。这是实打实的开发项目,你是独自一个人去开发项目,有一个扎实的编程基础,会节约你开发的时间。
- 掌握 git 等工具。开源之夏有很多语言的项目,这些项目也会用到很多不同的工具,但是 git 是必须会用的工具。你需要将最终开发结果推送到仓库,这样才能成功结项。
- 行动力。你可以基础比较差,但是你要有行动力,能自己去探索,要不然你还是别申请了,回家吧孩子。
- 勇气。勇气是人类的赞歌。你连申请的勇气都没有,你还谈何参与呢?即使你平常没有勇气,但是你只要在申请的时候有勇气就够了。
流程
下面借用 2024 OSPP 讲解一下流程。
-
你别看四月初才跟导师沟通,前面的时间也不能傻坐着,是拿来看有哪些社区,这些社区都有哪些项目。
先看自己的目标,你是为了奖金,还是为了项目,还是单纯参与开源。再根据自己的技术水平去选定语言,然后去看这些语言分类下有哪些项目。
-
看项目,从来没接触过开源的,建议先选基础项目,一是看项目的申请要求,必须会什么技术,还有会什么技术是加分项,类似于招聘。
二是看这个项目是做什么的,你对其所用技术栈的了解程度。如果你对这个项目要用的技术一点都不会,什么都不懂,换下一个,要不然就算接了做起来也很痛苦。
-
就这样一个个看过去,选出几个,你觉得离你技术水平差的不多的,可能做出来的。去跟导师发邮件,导师的邮件就在项目上展示的有。
发之前,建议先做一个简历,介绍自己都会什么技术,都做过什么项目,如果有开源经验,写上去,这个很加分。拿着这个简历,在给导师发邮件时附上。
给导师发简历要注意,用词一定要诚恳,提高印象分,而且之后你也得跟导师持续交流,诚恳的交流是良好的开始。
交流都问什么呢?问这个项目的技术栈,需要格外学哪些。表明自己想参与到该项目中的意愿,如此云云。
-
收到导师的回复,这也是一个双向选择,一来是选择一个合拍的导师,二来是看看导师有没有其他的中意人选。如果你感觉导师跟你合得来,而且导师没有其他中意人选。这时候你就可以先把项目拉下来,在电脑上跑起来,熟悉一下项目,等到正式开发时间,能省很多事。
-
这时候也不要停下,因为一切皆有可能,不一定这个项目百分百落在你的手里,多跟其他项目导师保持联系。因为每个人都可以申请两个项目,但是只能中选一个。
-
等到正式提申请时,需要提交项目申请书,下面的环节会专门教你怎么写一份合格的申请书。
如何写一份合格的申请书
需要写的内容:
- 项目名称
- 项目背景
- 项目具体实现细节梳理
- 时间规划,规划中还需要写期望
可参考的经验:
- 时间规划部分,开发时间规划为几个阶段,按月份分,每个阶段都做什么。不用细致到每周。
- 在期望中表达自己想要学习的意愿。
这跟简历不同,这个申请书是让你写自己关于这个项目的想法的,展示你的思路。而且官网也会给出去年的写的好的申请书供你参考,写的时候一定要认真对待,写你会怎么实现这个需求,也可以给出部分示例代码,最终以 PDF 格式提交,书写的时候使用 markdown 语言,显得规范。
-
每个人都可以申请两个项目,最终只能有一个项目中选。写好申请书并申请之后,最迟也要在截止两天前提交申请,最后一天可能会卡顿等原因妨碍提交,这样就得不偿失了。
-
在中选之后,就得抓紧时间开发了,两个月开发时间还是有点紧促的,这个部分就没什么好说的了,按照你的节奏及时开发完即可,有不会的及时与导师讨论,看看社区有什么要求/这样实现行不行。
-
在开发完成之后,要问社区的合并要求,是要通过所有测试,还是别的。通过之后就等待正式合并啦。
-
合并之后,写结项报告,主要写自己做了什么,有哪些收获。等待正式结项后就能美美收钱喽。