Google Summer of Code:获得选拔,我的时间,我的经历,我的旅程。

工程起步和创造激情

我是 David Okononfua,在尼日利亚主修电气和电子工程。从小到大,我一直热衷于建造东西,无论是小玩意还是数码产品。我在工程方面的学术经历进一步激发了我的这种热情,让我拥有了理解复杂系统的工具,并有动力去探索新的视野。

除了学术之外,我还在编码中找到了乐趣,它让我能够开发工具、库和产品,将想法变成现实。它成为我创造和创新的媒介。我的热情不仅限于技术;我参加了黑客马拉松,甚至还参加了夺旗赛 (CTF) 比赛,哈哈。解决问题、与他人合作和创造有形事物的刺激让我继续前进。

除了技术之外,我还热爱足球——我喜欢踢足球,而且可以连续几个小时热情地谈论足球。我还会吹萨克斯,这是一种让我能够用音乐表达自己的乐器;我还会下象棋,这是一种可以锻炼我的战略思维的游戏。这些兴趣爱好——既有技术方面的,也有娱乐方面的——塑造了我这样一个在生活的多个方面寻求平衡和满足的人。

初次邂逅:OSCAFEST 与开源世界

2022 年,我参加了在拉各斯举办的一场名为 OSCAFEST(开源社区非洲节)的变革性活动。这是我走向开源之旅的一个重要里程碑。在 OSCAFEST,我遇到了志同道合的人,他们对技术和协作有着同样的热情。其中就有 Favour,他是一名电气工程专业的学生,​​和我同级。Favour 和我一拍即合;我们共同的背景和兴趣让我们立即建立了联系。我们谈论了技术、工作、校外生活以及各种机会和平台。了解了 Community Pro 和 EddieHub——一个帮助初学者为开源做出贡献的社区。

这次活动本身生动地展示了开源的力量——世界各地的人们可以共同努力解决问题并构建更好的工具。它揭示了编程不仅仅是个人的才华,也是集体努力的结果。虽然我在 OSCAFEST 期间听到有人提到 Google Summer of Code (GSoC),但当时我并没有太注意。然而,好奇的种子已经种下。

了解开源

开源是指源代码公开的软件项目。任何人都可以查看、使用、修改和分发代码,只要他们遵守许可条款。开源促进协作和透明度,使世界各地的开发人员能够贡献、学习和分享知识。

开源软件的流行示例:Linux、Firefox、VLC Media Player 等。

开源的一些好处:

**协作:**开源项目实现全球协作,打破地理障碍。

**学习**:贡献者获得了编码、调试和解决问题方面的实际经验。

**社区:**这些项目培育了强大、支持性的社区。

**质量与创新**:通过不断的贡献,开源项目通常能够实现高质量并促进创新。

开源贡献基础知识

开源协作在 GitHub、GitLab 和 Bitbucket 等平台上蓬勃发展,开发人员聚集在这些平台上改进软件项目。在为这些项目做贡献时,了解关键概念至关重要。

  • 开源贡献的核心是问题,它是突出显示错误、请求新功能或提出增强功能的一种方式。贡献者参与这些问题是为了帮助维护者了解需要注意的事项。
  • 一旦贡献者找到要处理的领域,他们就会创建一个分支,即项目存储库的个人副本。这样他们就可以在不影响原始项目的情况下进行更改。更改是在分支中进行的,分支是用于开发新功能或修复的独立空间。
  • 每项更改都记录在提交中,记录更改的内容和原因。这些提交构成拉取请求 (PR),这是向主项目提出更新的正式方式。维护人员会审查 PR,以确保它们符合项目标准,然后再将它们合并到主代码库中。
  • 在开源项目中,文档至关重要。它可以帮助用户和贡献者了解项目。对于新手来说,改进文档是一个很好的开始,因为它需要了解软件而无需编写代码。
  • 通过参与这些过程,贡献者不仅可以改进软件,还可以获得团队合作、解决问题和协作方面的宝贵经验。

    转折点:了解 GSoC

    时间快进到第二年,Favour 在我们的一次谈话中告诉我,她已经成功参与了 GSoC。她解释说,该计划不仅为贡献者的工作支付报酬,还提供了一个成长和为开源做出有意义贡献的平台。这对我来说是一个顿悟的时刻。多年来,我一直在无偿为开源做贡献,纯粹是出于热情。做自己喜欢的事情还能得到报酬,这个想法既令人兴奋又令人鼓舞。我当时就决定努力申请下一轮 GSoC。

    这个过程始于研究与我的技术堆栈相匹配的组织。当参与组织名单公布后,我仔细评估了每一个组织。最初,我从 15 个组织开始,然后缩小到 7 个,然后是 5 个,最后是 2 个。我缩小范围的标准包括他们社区的活跃程度、开放的拉取请求数量,以及我是否能产生重大影响。例如,一个项目有超过 150 个开放的拉取请求,这表明引起我注意的机会很小。

    最终,我选择了 Accord Project,这是 DocuSign 旗下的一个专注于协议、合同和文档自动化的组织。他们的使命和技术挑战与我的技能和兴趣完美契合。

    全身心投入 Accord 项目

    一旦我决定加入 Accord Project,我就会立即开始为他们的代码库做出贡献。时间至关重要,因为申请截止日期即将到来。我积极参与他们的社区,直接向导师发送消息介绍自己并建立联系。我的贡献包括打开和合并多个拉取请求、修复错误和添加功能 - 这些行动展示了我的奉献精神和技术能力。

    Accord 项目的工作让我着迷。他们正在构建支持 DocuSign 运营关键方面的工具,专注于自动化合同和协议。为一个具有实际应用并产生影响的项目做出贡献让我感到很有意义。

    随着申请截止日期的临近,我精心起草了我的提案。我概述了我的目标、我打算为组织带来的价值以及我将利用哪些技能来实现这些目标。提交提案后,等待的时间令人紧张。在结果出来那天,我欣喜若狂地得知我被 GSoC 录取了。这是我的第一次尝试,喜悦之情难以言表。所有的努力、不眠之夜和决心都得到了回报。

    我如何进来,你又如何进来。

    **1. 选择正确的组织**

    当 GSoC 的参与组织公布后,我仔细评估了它们,以找到最适合我的技能和兴趣的组织。以下是我缩小选择范围的方法:

  • 从 15 个组织开始:我寻找的是全年都有贡献的活跃组织,而不仅仅是在 GSoC 期间。
  • 筛选到 7:我确保组织至少匹配我的 30% 技术堆栈,从而更容易做出贡献。
  • 减少到 5:我检查了他们的 GitHub 存储库的活动级别,重点关注那些具有可管理拉取请求(PR)的存储库。
  • 最终确定 2:我评估了他们的社区参与度和导师的响应能力。
  • 选择 Accord Project:Accord Project 在合同协议和文件方面的工作引起了我的共鸣,因为它涉及构建 DocuSign 使用的工具。
  • **2. 为代码库做出贡献**

    我在 GSoC 申请期开始之前就开始为 Accord 项目做贡献。我探索了他们的存储库,修复了问题,并与导师进行了交流。到申请截止时,我已经合并了多个 PR,并在社区中建立了良好的声誉。

    **3. 撰写提案**

    制定提案是一个细致的过程。我遵循以下步骤:

  • 彻底研究了我想要从事的项目。
  • 与导师合作完善我的想法。
  • 起草一份清晰、简洁的提案,概述问题、解决方案、时间表和可交付成果。
  • **4. 提交提案并等待**

    提交完提案后,我焦急地等待着结果。结果公布的那天,我抑制不住内心的喜悦——我第一次尝试就被选中了!

    给有志于成为 GSoC 贡献者的建议

  • 研究组织:使用 GSoC 组织等资源来探索参与组织。
  • 寻找具有良好业绩记录的活跃组织。

    将您的兴趣和技能与他们的项目相结合。

  • 积极参与社区活动:参与讨论、加入论坛并与导师联系。知名度和参与度至关重要。
  • 尽早开始:在申请期之前开始为组织的代码库做出贡献。
  • 制定有力的提案:根据组织的需求量身定制提案。明确定义您的目标、时间表和方法。
  • 坚持不懈:如果您选择的组织或项目没有被选中,请不要气馁。您的贡献和经验仍然有价值。
  • GSoC 体验

    参加 Google Summer of Code 是一次变革性的经历。它挑战了我作为一名工程师和合作者的成长。加入 Accord Project 意味着我每天都要与 DocuSign 的工程总监和 DocuSign 工程团队合作。我的任务是构建和改进简化文档工作流程的工具,对我来说,具体来说是一个模板游乐场。这项工作不仅需要技术专长,还需要沟通和团队合作技能。我与导师和社区成员互动,从他们丰富的经验中学习,并深入了解开源最佳实践。

    最有成就感的方面之一是看到我的贡献立即产生影响。我打开的拉取请求被审查、合并和部署,成为人们所依赖的工具的一部分。这种使命感进一步激发了我对开源的热情。

    反思与未来愿景

    回顾过去,我进入开源和 GSoC 的旅程是由好奇心、决心和社区支持共同塑造的。从参加 OSCAFEST 和与 Favour 会面,到为 Accord 项目做出贡献并在 GSoC 中取得成功,每一步都是一次学习经历。它教会了我坚持的价值、合作的重要性以及创造帮助他人的解决方案的乐趣。

    如今,我的目标是继续以专业前端工程师的身份构建高性能、易用且功能丰富的应用程序。我的经验涵盖跨多个 API、第三方集成和数据库开发应用程序、设计精美的用户界面以及扩展 Web 产品。我努力利用这些技能做出有意义的贡献,无论是在开源还是专业环境中。

    展望未来,我对各种可能性感到兴奋。开源让我看到技术可以成为一种向善的力量,我致力于成为这种变革的一部分。无论是为有影响力的项目做出贡献、指导新人还是探索新技术,我都已准备好迎接未来的挑战和机遇。

    参考

    为了进一步探索和了解开源贡献和 Google Summer of Code 等计划,以下是一些有用的资源:

  • GSoC:Accord 项目模板游乐场开发我的博客文章详细介绍了我在 GSoC 2024 期间在 Accord 项目模板游乐场上的经验和工作。
  • 播客:破解 GSoC – 大卫如何在第一次尝试中取得成功 这期播客节目以我为主角,分享了我在 GSoC 中第一次尝试取得成功的历程、策略和技巧。
  • Accord 项目网站了解有关 Accord 项目、其开源计划以及它如何促进法律技术领域创新的更多信息。
  • 开源实习计划 - YouTube 视频 一段有用的视频,讨论了有抱负的开发人员可以获得的各种开源实习机会。
  • 关于 Google Summer of Code 的一切 - YouTube 视频 一段信息丰富的视频,概述了 GSoC、其流程以及获得选择的技巧。