Google Code-in 2017

2017年Google Code-in:Wikimedia


首先,我将告诉您什么不认识的人-这是面向13-17岁学生的在线竞赛,目的是向他们介绍开放源代码世界,并提供与开发开放源代码软件的组织合作的机会。 我今年参加了比赛,成为获奖者之一。


比赛如何进行? 竞赛的25个开源组织创建了参与者必须从事的小任务(需要3-5小时才能完成)。 今年,此类组织包括:Wikimedia,Ubuntu,Zulip,FOSSASIA,Drupal,BRL-CAD,coala,Haiku,OSGeo,Apertium,JBoss社区等。 组织的指导者会进行验证,并在必要时提供帮助(尽管如此,对于大多数参与者而言,GCI是开放源代码项目的首次经验)。 比赛持续7周(11月底-1月初)。


有奖品。 完成3个任务后,参与者会收到一件T恤。 每个组织还选择5名最佳参与者作为该项目的总贡献者-他们会获得“连帽衫”,而其中2名最佳参与者将获得一次前往Google总部(美国加利福尼亚州山景城)的旅行。


前几年获奖者的出版物已经刊登在哈布雷(Habré)上: 伊利亚·科瓦列夫斯基(Ilya Kovalevsky)-2012(KDE)米哈伊尔·伊夫琴科(Mikhail Ivchenko -2013(KDE)斯坦尼斯拉夫·克里文科(Stanislav Krivenko)-2014(Apertium)
但是,比赛日新月异,越来越受欢迎,所以我决定分享自己的参与经验。


参加人数每年都在增长
参赛者的人数每年都在增加-Google Open Source Blog中的统计数据


今年,来自78个国家/地区的3500多名学生参加了活动(比去年增加了2.5倍)。


参赛者年龄
竞赛年龄-Google Open Source Blog的统计数据


我的经验


对我来说,开源世界一直都很有趣,但是我不知道从哪里开始。 因此,当我发现有关Google Code-in的信息时,我认为这将是一个好的开始。 为Wikimedia执行的任务。 为什么是这个组织? 首先,这是一个比其他项目更大的项目,这意味着它应该是那里最有趣的事情。 此外,我们所有人都使用Wikipedia-为什么不帮助她做些回报呢?
您可以在MediaWiki的比赛页面上了解有关该组织参加GCI的更多信息。
Wikimedia正在开发MediaWiki(运行Wikipedia的引擎)以及与其相关的其他扩展和工具。


任务


开源世界的第一步令人兴奋! 很高兴认识IRC上的许多有趣的人(由Wikimedia以及许多其他组织使用以进行交流),并与他们一起完成任务! 指导者受到热烈欢迎,并帮助建立了所有必要的开发环境以及对代码审查(Gerrit)系统的访问权限。


执行任务时,我很快陷入了“流程状态”:收到第一个任务后,我又承担了一个任务,然后又承担了另一个任务-总共39项任务。 很高兴看到您的补丁何时被开发人员接受,并且该任务被标记为已完成。 我确保即使像我这样的初学者也能尽自己的一份力量。


任务已接受!


在Wikimedia,工作分配包括使用各种编程语言和技术。 这里的主要语言是PHP(因为它是由MediaWiki编写的),但是也使用了Python,C ++,C#,Java,NodeJS,Ruby,Objective-C,Lua。 这就是为什么GCI是学习新知识的好机会。
我执行了各种任务:从简单的任务(例如修复简单的错误,改善CI,改善单元测试范围,重构旧代码)到更复杂的任务,包括添加新功能。
例如,一项困难而又非常有趣的任务之一是基于机器学习来提高工具的准确性,以确定对商品所做的更改的质量。 我在不参考源的情况下在模型中增加了对文本量的跟踪(毕竟,如果源的链接很少或没有链接,这是否意味着文章的质量?)。


对于新功能,添加了测试,并编写了文档。 每个补丁的代码审查也是强制性的(就所获得的知识和经验而言,该过程非常有价值。我还检查了比赛中其他参与者的一些补丁)。


总的来说,在整个Wikimedia竞赛中,由50名导师带领的300多名参与者在完成以下工作的同时完成了约760个任务:Mediawiki核心,其扩展,API,Kiwix和Wikipedia移动应用程序以及其他工具,例如Pywikibot和Huggle。


任务实例


我所处理的最有趣的任务的简短列表-带有补丁的链接,Wikimedia Phabricator中的任务以及GCI网站上相应的任务页面。



即使没有以前的开源经验,也有很简单的任务可以轻松处理:为其中一个扩展( 补丁任务 )打开CI,修复错误页面设计中的小错误( 补丁任务 ),向CI添加静态分析矢量样式( 补丁任务


两个月的比赛充满了有趣的作品,并且与来自世界各地的人们进行了很多交流。 我非常热情,以至于我开始略微逃学,花更少的时间准备考试。 导师们做了出色的工作,编写了新任务,甚至在圣诞节和新年期间都检查了我们的补丁程序。 我也确实在竞争中脱颖而出:有空闲时间(例如,在等待任务验证时),我从bug跟踪器中提取了一些简单的任务。 比赛结束后,他还继续做出贡献。


完成GCI后,我收到了Google的来信,说Wikimedia选择了我作为获胜者,并且获得了“大奖”-访问Google在山景城的总部。


骑乘


这次旅行原定于6月-这样所有获奖者都可以获得签证,而不会分散在学校学习,准备和通过考试的注意力。


Google办公室


这次旅行充满了难忘的印象。 该组织处于最高水平:每时每刻都在考虑。


第一天,当所有获奖者聚集在旧金山的Google办公室时,我们被告知接下来几天我们将做什么,并举行了一场小型比赛以了解彼此。 我们收到了很多礼物。 来自组织的导师也参加了这次旅行。 几个月前与我一起工作的人中遇到一个人真是太好了。


第二天,我们去了位于山景城的Google总部-“ Googleplex”。 与Google开源总监Chris DiBona举行了颁奖典礼。


颁奖典礼


之后,我们被告知有关公司的许多有趣信息,我们参观了Google游客中心,在那里购买了纪念品并拍摄了大量照片。


行程组织者还准备了一个非常令人惊喜的惊喜:他们邀请了每个获胜者所在国家/地区的Google员工-我们有机会进行交谈和提问。 此外,“ Google员工”还向我们进行了介绍:一位员工谈论了他如何解决难题的加密任务,另一位员工谈论了他的开源项目,该项目是在HR的20%的工作时间中创建的-关于如何写好简历,开发人员关系-有关Google中与开发人员“保持联系”的各种程序。


Waymo的发言人


Waymo(无人驾驶汽车的子公司)的发言人甚至没有时间回答问题! 听他说话非常有趣,尤其是看着窗外经过的Waymo汽车。


第二天,我们在城市中游览了主要景点。 很好玩,拍了很多照片。


金门
当然,我们参观了金门大桥。


旧金山湾
傍晚,他们在旧金山湾航行。


在最后一天,Google员工发表了一些非常有趣的演讲。 我们被告知有关Kubernetes的知识,并在工作中进行了演示。


关于Kubernetes的演示
容器非常有用-但这并不意味着应将其用于所有用途。


我们还了解了开源软件的许可(非常有用,因为在这里我用一种清晰的语言解释了我之前难以理解的内容)。 还有一个有关Project Fi(Google的虚拟网络运营商)的有趣演讲。


此外,Wikimedia在旧金山设有办事处。 因此,我决定借此机会拜访他。


维基媒体办公室


这次旅行留下了许多愉快的回忆。 我很高兴与Google Open Source团队,导师和GCI成员会面。


结论


国家统计
国家统计-Google开源博客


不幸的是,今年,除了我之外,没有来自乌克兰或后苏联时代其他国家的获奖者。 希望我的帖子能帮助俄语使用者引起人们对Google Code-in的关注。
如果读者(或他们的孩子)中有学生-请在10月中旬的日历中注明-届时将知道参加GCI 2018的组织,竞赛本身将于11月下旬开始。 我计划成为Wikimedia的指导者-如果您选择该组织,请写信-我将很乐意为您提供帮助和回答问题。


对于学生,我建议您注意Google的“代码之夏”(由从事GCI的同一支Google团队组织),这是一个为开源做出贡献的好机会。


一般照片
获奖者,他们的父母和导师-摄影:Stephanie Taylor,CC-BY-SA


最后,我想说的是,开源在现代软件开发领域中起着至关重要的作用。 互联网的基本功能归功于开源(Linux,Apache,MySQL,Mozilla Firefox,Chromium,PHP,Python,NodeJS,Go ...-所有这些都是开源的),并且这就是未来。


谢谢您,并成功请求请求!

Source: https://habr.com/ru/post/zh-CN417233/


All Articles