申请MLH奖学金:技巧与窍门
什么是MLH奖学金?🤔
阶段🚗
我的时间线⏳
申请MLH奖学金📝
彩色日历
面试👨💼
2021年春季统计数据📊
结论
那是一个星期二的早晨,我破天荒地早起了。我拿起手机,翻看邮件,希望能找到MLH的邮件。令我惊喜的是,它终于出现了——我等了一个多月的录取通知书!啊,那种感觉真是太棒了!😊
我被MLH Fellowship的开源项目录取了,成为2021年春季第二批学员!🎉
什么是MLH奖学金?🤔
简而言之,MLH Fellowship是一个为期三个月的全球远程实习项目。入选者将被分成8-10人的小组,根据他们所选的项目(探索者、开源项目、实习项目)进行协作,并参与实际项目。此外,他们还将获得经验丰富的软件开发导师的指导,全程参与项目。项目期间会举办许多有趣的活动,例如CTF挑战赛、黑客马拉松、研讨会、成果展示会、游戏之夜(例如Among Us、Skribbl等)。所有学生以及非学生专业人士均可申请MLH Fellowship。
MLH Fellowship 的网站可能解释得更清楚:💻 https://fellowship.mlh.io/
MLH会为被录取的研究员提供生活津贴。该津贴不能替代全职工作,但可以帮助您在项目期间补贴部分生活和学习费用。津贴金额取决于您的研究方向以及您在项目期间居住的国家/地区。
在这篇博客中,我将分享我申请该奖学金的经历,从填写申请表到面试。我也会分享我对MLH在评估申请时关注点的看法。

目录
阶段🚗
以下是您的申请流程各阶段的概要:
- 申请审核:审核您的简历、论文题目以及项目的其他部分。
- 代码审查:查看代码示例,确保其质量足够高。
- 初次面试:了解您并了解您为何想加入该项目的机会。
- 技术面试:通过代码示例展示您的技术技能的机会。
- 最终审核:选出最佳申请者并发出录取通知书。
我的时间线⏳
- 申请日期:2020年8月17日
- 评测开始日期:2020年11月27日 (历时3个月零10天)
- 请于2020年12月5日 (8天后)发送邮件安排初次面试。
- 初次面试:2020年12月9日 (4天后)
- 请于2020年12月9日 (当天)发送邮件安排技术面试。
- 技术面试:2020年12月13日 (4天后)
- 已接受:2021年1月19日 (历时1个月零6天)
2021 年春季入学申请截止日期为2021 年 1 月 4 日,课程将于2021 年 2 月 1 日开始。
申请MLH奖学金📝
要申请,请前往MLH Fellowship 网站,然后点击“立即申请”。
专业提示:如果您想在不提交申请表的情况下查看申请表上的所有问题,只需在表格中输入随机数据并不断点击即可Next Page。
我建议至少在申请截止日期前1-2个月提交申请。临近截止日期时申请人数可能会非常多,所以越早申请,你的申请就能越早得到审核,面试也能越早进行。
让我们一起来看看申请表中的一些重要部分。
程序
您需要从以下3个程序中选择一个:
- 探索者:通过小组合作,参与一系列类似黑客马拉松的短期冲刺,来构建你的个人项目组合并尝试新技术。
- 开源:通过为全球数千家公司使用的主要项目做出贡献,学习如何成为一名优秀的开源公民。
- 实习:通过与真实公司和政府合作伙伴合作开展项目,体验解决现实世界软件工程问题的感觉。
如果您选择开源项目,则需要选择以下方向之一:
- JavaScript / TypeScript
- Python(Web)
- Python/Julia(数据、人工智能/机器学习)
- 红宝石
我选择了开源项目和 JavaScript / TypeScript 方向,因为我喜欢 JavaScript,而且我的大部分项目都使用了 JavaScript。
PS:更多节目即将推出。

我应该选择哪个项目?
“探索者”项目非常适合那些缺乏个人项目或渴望探索新技术的人。在“探索者”项目中,你将积累个人项目作品集并尝试新技术。每两周(一个迭代周期),你将与 2-4 位新成员组成团队,共同开发一个全新的实际项目,并将其添加到你的简历中。每个迭代周期都有不同的主题(例如作品集、开发工具、游戏、社会公益等),旨在激发你探索自己的兴趣。你将有机会与行业专家和创始人互动交流,了解他们每天面临的实际挑战。
开源项目非常适合那些拥有丰富项目经验或在公司实习过,但缺乏大型开源项目贡献经验的人。在开源项目中,学员将有机会参与 React、Jest、Flask、Julia、forem、scikit-learn 等大型开源项目。项目开始时,学员会被分成若干小组,称为“pod”。每个 pod 由 8-10 名学员、一位专业导师和 2-3 位开源项目维护者组成。在整个项目过程中,pod 内的学员将合作完成各自的项目。
对于那些希望解决实际软件工程问题,并积累与真实企业和政府机构合作项目经验的人来说,实习项目是一个绝佳的选择。实习生将学习如何从构思到产品发布,不仅能提升技术技能,还能培养客户调研等商业技能。
注意:实习机会主要面向已获得美国工作许可的人员,因为大多数合作公司都位于美国。不过,MLH 正在尽力与世界各地的更多公司建立合作关系。如果您不符合实习资格,我们将自动考虑您是否适合开源项目,请不必担心。
时间投入
接下来,你需要选择兼职(每周10-20小时)还是全职(每周30-40小时)。我因为是全日制大学生,所以选择了兼职。👨🎓
编程语言
这里会有一个“开发者体验”部分,你需要选择你最擅长的编程语言。👨💻
理想情况下,您应该具备所选编程语言的中级或高级水平,并拥有使用该语言参与各种项目的经验。技术面试中,我们将评估您使用该语言的熟练程度。
代码示例
我认为,代码示例在整个选拔过程中起着至关重要的作用。最好能有一个解决实际问题并展现良好软件工程实践的代码示例。它可以是你参加黑客马拉松时创建的项目、个人项目,或者你做出的重要开源贡献。
注意:如果您申请的是开源项目,则您提交的代码示例必须使用您最擅长的编程语言编写。
选择一个你最引以为豪、最能代表你编程能力的项目。它不必过于复杂,但也不要过于简单。如果你有多个优秀的项目,请选择创意独特的那个,因为它能证明你不可能从网上抄袭。
请避免提交 Jupyter Notebook 项目。正如Swift所说:
“他们并没有真正展现出解决问题的实际能力,他们的文章读起来更像是博客文章。”
以下是一些直接摘自申请表的代码示例要求:

展现良好的软件开发实践是一项巨大的优势。以下是一些项目中值得借鉴的要素:
- 编写良好的文档
- 一份简洁易懂的README文件,解释了项目的功能以及使用方法。
- 模块化代码。不要把所有内容都放在一个大文件中,尽量将其拆分成多个文件。
- 一致且清晰的变量命名
- 一致的压痕和间距
- 避免在代码中使用大段注释。
- 必要时使用环境变量
- 单元测试
PS:如果您了解更多信息,请在评论区留言。
这是我提交的项目:
📅 一个可自定义的日历 JavaScript UI 小部件/组件库,能够显示事件。

彩色日历


一个可自定义的事件日历组件库。请查看演示 1、演示 2和演示 3。

🚀 功能
- 零依赖
- 将事件添加到日历
- 对日历日期更改执行某些操作
- 内置月份和年份选择器
- 可用主题
- 完全可自定义,可通过 CSS 变量、在创建日历时传递选项参数或覆盖 CSS 来实现。
- 请求更多功能……
📦 入门指南
CDN
JavaScript
<script src="https://cdn.jsdelivr.net/npm/color-calendar/dist/bundle.js">
也可在unpkg上找到。
CSS
根据你想要的主题选择一个 CSS 文件。
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/color-calendar/dist/css/theme-basic.css"
/>
<!-- or -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/color-calendar/dist/css/theme-glass.css"
/>
字体
从Google Fonts获取字体
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap"
rel="stylesheet"
/>
检查一下……
论文题目
这部分是申请中最重要的部分。请慢慢撰写作文。✍️
总共有5道简答题:
- 请简要描述这段代码示例的功能。(限200字)
- 请简要描述您在编写此代码示例的过程中学到了什么。(限200字)
- 你为什么想成为MLH研究员?(限250字)
- 学习是MLH奖学金项目的首要重点。如果您被录取,您最近学到了哪些知识,并希望与其它学员分享?(限250字)
- 还有什么我们应该了解的吗?(限250字)
在问题 1 中,我谈到了该项目的功能、适用范围以及我使用的技术。
在问题 2 中,由于这是我第一次构建 JavaScript 库,所以我解释了在创建库的过程中遇到的挑战。我谈到了我用来构建项目的构建工具,特别是 Webpack、Gulp 和 Rollup,以及我使用它们的原因。
在第三个问题中,我谈到了这个奖学金项目将如何通过让我接触到真实世界的项目,帮助我弥合大学与产业之间的差距。我还表达了我对终身学习的热爱以及与他人分享知识的意愿。
在第 4 题中,我谈到了我在第 2 题中提到的构建工具,以及云和 DevOps。
在第 5 题中,我谈到了我的志愿服务经历和我的职业目标。
“你应该着重讲述你独特的经历,以及这些经历如何让你显得有趣或引人注目。最优秀的申请文书会讲述一个与申请机会息息相关的、独一无二的个人故事。对我们来说,这类文书通常会讲述申请人如何爱上编程、黑客马拉松或计算机科学社区的故事。”
——威尔·罗素,MLH Fellowship社区经理
正如威尔所说,第一印象至关重要。

还有一点,如果你英语不太好,最好请朋友或家人帮你修改作文。语法和拼写错误会非常影响阅读体验。
来自MLH首席执行官的建议
以下是Code for Cause对Mike Swift(Major League Hacking 首席执行官)的一次信息量很大的采访:
滚动至 34:10 时间戳
面试👨💼
如果你的作文题回答得当,代码示例也足够优秀,我们会邀请你参加初步的(非技术性)面试。邮件中会有一个 Calendly 链接,你可以根据自己的方便安排面试日期和时间。请务必准时,并提前检查你的音频/视频设备。
初次面试
一旦您的申请审核流程开始,通常需要最多 10 天的时间您才会收到安排初次面试的电子邮件。

面试开始时,面试官会确认你在申请表上提到的细节,例如你申请的课程、所需时间、你是否年满 18 岁、你居住在哪个国家等等。
这是一个简短的10分钟面试,目的是核实:
- 如果您符合条件
- 你对这个项目的热情有多高?
- 如果您的音频和视频质量达到标准
- 如果你善于与他人沟通,因为这是一个全球性项目。
这次面试中我被问到的两个主要问题是:
- 你为什么想成为MLH研究员?
- 请您简单介绍一下您提交的项目以及您从中学到的东西。
面试结束时,你可以向面试官提问,我强烈建议你在这里提问。因为我的面试官曾是MLH的研究员,所以我问了他一些关于他作为研究员的经历。
初次面试后不到两小时,我就收到了安排技术面试的邮件。🥳 请注意,根据申请人数和申请时间,有些人可能需要更长时间才能收到回复。
技术面试
技术面试中,面试官会评估你的技术能力。面试时间严格限制在15分钟以内,所以务必合理安排时间。确保你对项目了如指掌,并且清楚项目中每个文件的功能。👩💻

面试开始时,你需要简要介绍一下你的项目(务必言简意赅)。之后,你需要共享屏幕,并引导面试官浏览代码库,解释其工作原理。面试官会不时停下来提问。他们可能会问你为什么在项目中采用某种特定的方法,以及你所使用的编程语言的一些概念。
我觉得我可能为技术面试准备得太多了。😅 我以为面试官会问一些关于 React、Express、Vue 之类的问题,这些都是我在 GitHub 上其他项目里用过的技术,但结果并没有。
面试官只问了我提交的项目相关的问题。我完全没想到15分钟会过得这么快。我本可以减少解释项目功能的时间。
面试官更想了解你对项目中代码的理解程度,以及你是否能够解释项目中某些决策背后的原因。面试官也想了解你对所用编程语言的掌握程度。
注意:技术面试中不会要求您编写任何代码。
在我的项目中,有人问我为什么使用 Rollup 而不是 Webpack 等其他模块打包工具,以及为什么使用 Gulp 执行某些任务。我还被要求解释我在 JavaScript 代码中使用的基于原型的继承模式。
幸好我做好了回答所有问题的准备。虽然一开始我花了太多时间解释我的项目是做什么的,但最后我在技术知识方面表现得相当出色。
技术面试结束后,需要耐心等待,因为申请的最终审核通常会在申请截止日期临近时进行。录取通知书预计会在奖学金项目开始前两周左右陆续发放。

专业提示:务必查看垃圾邮件文件夹,以免错过任何重要邮件。
2021年春季统计数据📊
- 已确认有4968人申请。
- 约有1000人接受了采访
- 所有项目共录取约125名研究员。
录取率为2.5 % 。
注意:春季申请人数较少,因为某些地区春季实习机会不多。预计夏季和秋季的申请人数将大幅增加。
结论
实际上,你并不需要有开源方面的经验才能加入开源项目。事实上,大多数入选开源项目的人都是开源新手。
我申请时除了贡献过一些文档之外,没有任何参与大型开源项目的经验。但我有很多个人项目,一个活跃的 GitHub 账号,以及在一家创业公司的实习经历。💪
务必展现出你终身学习的热情、良好的团队合作能力以及对技术的激情。在申请文书和代码示例中融入个人特色,将是让你脱颖而出的绝佳方式。
祝你好运! 😇 希望你能收到录取通知书!
如果您觉得这篇文章有用,请分享给您的朋友,并在LinkedIn和Twitter上关注我。👍
等我的研究员项目结束后,我会写一篇关于我的经历的文章。
文章来源:https://dev.to/pawankolhe/applying-to-the-mlh-fellowship-tips-tricks-1jc1