Google Code-in 2017

Google Code-in 2017: Wikimedia


Zu Beginn möchte ich Ihnen sagen, was Google Code-in für diejenigen ist, die es nicht wissen. Dies ist ein Online-Wettbewerb für Schüler zwischen 13 und 17 Jahren, der darauf abzielt, sie mit der Welt von Open Source vertraut zu machen, und bietet die Möglichkeit, mit Organisationen zusammenzuarbeiten, die Open Source-Software entwickeln. Ich habe an diesem Jahr teilgenommen und wurde einer der Gewinner.


Wie findet dieser Wettbewerb statt? 25 Open Source-Wettbewerbsorganisationen erstellen kleine Aufgaben (die 3-5 Stunden benötigen), an denen die Teilnehmer arbeiten müssen. In diesem Jahr waren diese Organisationen: Wikimedia, Ubuntu, Zulip, FOSSASIA, Drupal, BRL-CAD, Coala, Haiku, OSGeo, Apertium, JBoss Community und andere. Mentoren von Organisationen führen Überprüfungen durch und bieten nötigenfalls Unterstützung (schließlich ist GCI für die meisten Teilnehmer die erste Erfahrung mit Open Source-Projekten). Der Wettbewerb dauert 7 Wochen (Ende November - Anfang Januar).


Es gibt Preise. Für die Durchführung von 3 Aufgaben erhalten die Teilnehmer ein T-Shirt. Jede Organisation wählt außerdem die fünf besten Teilnehmer für den Gesamtbeitrag zum Projekt aus - sie erhalten einen Hoodie und die zwei besten von ihnen erhalten eine Reise zum Hauptsitz von Google (Mountain View, Kalifornien, USA).


Die Gewinner der vergangenen Jahre wurden bereits auf Habré veröffentlicht: Ilya Kovalevsky - 2012 (KDE) , Mikhail Ivchenko - 2013 (KDE) , Stanislav Krivenko - 2014 (Apertium).
Allerdings ändert sich der Wettbewerb und gewinnt an Popularität. Daher habe ich beschlossen, meine Teilnahmeerfahrung zu teilen .


Die Anzahl der Teilnehmer wächst von Jahr zu Jahr.
Die Anzahl der Teilnehmer steigt von Jahr zu Jahr - Statistiken aus dem Google Open Source Blog


In diesem Jahr haben mehr als 3,5 Tausend Schüler aus 78 Ländern teilgenommen (2,5-mal mehr als im Vorjahr).


Alter der Teilnehmer
Alter der Teilnehmer - Statistiken aus dem Google Open Source Blog


Meine erfahrung


Die Open Source-Welt war für mich immer sehr interessant, aber ich wusste nicht, wo ich anfangen soll. Als ich von Google Code-in erfuhr, entschied ich, dass dies ein guter Anfang wäre. Aufgaben für Wikimedia. Warum genau diese Organisation? Dies ist vor allem ein größeres Projekt im Vergleich zu anderen Projekten, was bedeutet, dass es das interessanteste von allen sein sollte. Außerdem benutzen wir alle Wikipedia - warum helfen wir ihr nicht im Gegenzug?
Weitere Informationen über die Teilnahme dieser Organisation an GCI finden Sie auf der Wettbewerbsseite in MediaWiki .
Wikimedia entwickelt MediaWiki (die Engine, auf der Wikipedia läuft) und andere damit zusammenhängende Erweiterungen und Tools.


Aufgaben


Die ersten Schritte in der Open Source-Welt waren aufregend! Es war sehr schön, viele interessante Leute im IRC (in Wikimedia sowie in vielen anderen Organisationen für die Kommunikation) zu treffen und mit ihnen zusammenzuarbeiten! Die Mentoren waren herzlich willkommen und halfen, alle notwendigen Voraussetzungen für die Entwicklung sowie den Zugang zum Code-Review-System (Gerrit) zu schaffen.


Beim Abarbeiten der Aufgaben bin ich schnell in den „Fließzustand“ geraten: Nachdem ich die erste von mir genommen hatte, nahm ich eine, dann eine und noch mehr - nach insgesamt 39 Aufgaben. Es ist sehr schön zu sehen, wann Ihr Patch von den Entwicklern akzeptiert wird und die Aufgabe als abgeschlossen markiert wird. Ich bin überzeugt, dass auch Anfänger wie ich dazu beitragen können.


Aufgabe angenommen!


Zu den Aufgaben gehörten in Wikimedia die Verwendung verschiedener Programmiersprachen und Technologien. Die Hauptsprache hier ist PHP (da MediaWiki darauf geschrieben ist), aber es werden auch Python, C ++, C #, Java, NodeJS, Ruby, Objective-C, Lua verwendet. Deshalb ist GCI eine gute Gelegenheit, etwas Neues zu lernen.
Ich habe verschiedene Aufgaben ausgeführt: von einfachen Aufgaben (wie das Beheben einfacher Fehler, die Verbesserung der CI, die Verbesserung der Abdeckung von Komponententests, das Überarbeiten von altem Code) bis hin zu komplexeren, einschließlich dem Hinzufügen neuer Funktionen.
Zum Beispiel bestand eine der schwierigen, aber sehr interessanten Aufgaben darin, die Genauigkeit des auf maschinellem Lernen basierenden Werkzeugs zu erhöhen, um die Qualität der an dem Artikel vorgenommenen Bearbeitungen zu bestimmen. Ich habe das Nachverfolgen der Textmenge zu dem Modell hinzugefügt, ohne auf Quellen zu verweisen (schließlich, wenn es sehr wenige oder keine Quellenangaben gibt, sagt dies etwas über die Qualität des Artikels aus?).


Fügen Sie für neue Funktionen Tests hinzu, und schreiben Sie Dokumentation. Code-Überprüfung jedes Patches war obligatorisch (der Prozess ist hinsichtlich des erworbenen Wissens und der gesammelten Erfahrungen sehr wertvoll. Ich habe auch einige Patches anderer Teilnehmer geprüft).


Während des gesamten Wettbewerbs in Wikimedia haben im Allgemeinen mehr als 300 Teilnehmer unter der Leitung von 50 Mentoren rund 760 Aufgaben ausgeführt: Mediawiki-Kern, Erweiterungen, API, mobile Anwendungen Kiwix und Wikipedia sowie andere Tools wie Pywikibot und Huggle.


Beispiele für Aufgaben


Eine kleine Liste der interessantesten Aufgaben, an denen ich gearbeitet habe - mit Links zu dem Patch, Aufgabe in Wikimedia Phabricator und der entsprechenden Aufgabenseite auf der GCI-Website.



Es gab sehr einfache Aufgaben, die auch ohne vorherige Erfahrungen mit Open Source leicht verständlich sind: Wir schließen CI für eine der Erweiterungen ( Patch , Task ) ein, beheben einen kleinen Fehler im Design der Fehlerseite ( Patch , Task ), fügen statische Analyse zu CI hinzu Vektorstil ( Patch , Aufgabe )


Zwei Monate des Wettbewerbs waren voller interessanter Arbeit und viel Kommunikation mit Menschen aus aller Welt. Ich war so leidenschaftlich, dass ich anfing, eine kleine Schule zu verpassen und mich weniger auf die Prüfungen vorzubereiten. Mentoren haben auch großartige Arbeit geleistet, indem sie neue Aufgaben komponierten und unsere Patches sogar zu Weihnachten und Neujahr testen. Ich habe die Arbeit auch außerhalb des Wettbewerbs ausgeführt: Ich habe während der Freizeit einfache Aufgaben vom Bug-Tracker übernommen (zum Beispiel während ich auf die Überprüfung der Aufgabe wartete). Nach dem Wettbewerb trug auch weiter dazu bei.


Nachdem ich GCI abgeschlossen hatte, erhielt ich einen Brief von Google, in dem es heißt, dass Wikimedia mich als Gewinner ausgewählt hatte und ich einen "Hauptpreis" erhielt - einen Besuch im Hauptsitz von Google in Mountain View.


Die Reise


Die Reise war für Juni geplant - so dass alle Gewinner Zeit haben, ein Visum zu erhalten und nicht von der Schule, dem Training und den Prüfungen abgelenkt werden.


Google-Büro


Die Reise war voller unvergesslicher Eindrücke. Organisation - auf höchstem Niveau: jeden Moment durchdacht.


Am ersten Tag, als alle Gewinner in Googles Büro in San Francisco zusammenkamen, wurde uns gesagt, was wir in den nächsten Tagen tun würden, und es wurde ein kleines Spiel abgehalten, um uns kennenzulernen. Wir bekamen eine Vielzahl von Geschenken. An der Reise nahmen auch Mentoren von Organisationen teil. Es war unglaublich schön, jemanden aus den Leuten zu treffen, mit denen ich vor ein paar Monaten so viel gearbeitet habe.


Am zweiten Tag gingen wir zum Hauptsitz von Google Mountain, dem Googleplex. Die Preisverleihung fand mit dem Direktor von Google Open Source, Chris DiBona, statt.


Preisverleihung


Danach wurde uns viel Interessantes über das Unternehmen erzählt, wir besuchten das Google Visitor Center, wo wir Souvenirs kauften und viele Fotos machten.


Die Reiseveranstalter bereiteten auch eine sehr angenehme Überraschung vor: Sie luden einen Google-Mitarbeiter aus dem Land des jeweiligen Gewinners ein - wir hatten Gelegenheit zu Gesprächen und Fragen. Darüber hinaus gab es "googles" bei Präsentationen: Ein Mitarbeiter sprach über die Lösung eines komplexen kryptografischen Problems, ein anderer berichtete über sein Open-Source-Projekt, das irgendwann in 20% seiner Arbeitszeit erstellt wurde, HR - darüber, wie man gut schreibt Resume, Developer Relations - über verschiedene Programme bei Google, um mit Entwicklern in Kontakt zu bleiben.


Waymo-Sprecher


Waymos Sprecher (eine Tochter von unbemannten Fahrzeugen) hatte nicht einmal Zeit, Fragen zu beantworten! Es war sehr interessant, ihm zuzuhören, vor allem die Waymo-Autos, die am Fenster vorbeifuhren.


Am nächsten Tag reisten wir durch die Stadt und besuchten die wichtigsten Sehenswürdigkeiten. Es hat Spaß gemacht, viele Fotos gemacht.


Golden Gate
Natürlich besuchte das Goldene Tor.


San Francisco Bay
Abends segelte man auf einer Yacht in der Bucht von San Francisco.


Am letzten Tag gab es einige sehr interessante Präsentationen von Google-Mitarbeitern. Wir wurden über Kubernetes informiert und in unserer Arbeit demonstriert.


Kubernetes Präsentation
Container sind sehr nützlich - aber das bedeutet nicht, dass sie für alles verwendet werden sollten.


Wir haben auch etwas über die Lizenzierung von Open Source-Software gelernt (sehr nützlich, da das, was ich zuvor versucht hatte, herauszufinden, in einer verständlichen Sprache erklärt wurde). Es gab auch eine interessante Präsentation über Project Fi (virtueller Mobilfunkbetreiber von Google).


Darüber hinaus hat Wikimedia ein Büro in San Francisco. Also beschloss ich, die Gelegenheit zu nutzen, um ihn zu besuchen.


Wikimedia-Büro


Die Reise hat viele schöne Erinnerungen hinterlassen. Ich habe mich sehr gefreut, das Google Open Source-Team, Mentoren und GCI-Mitglieder kennenzulernen.


Fazit


Länderstatistiken
Länderstatistiken - Google Open Source Blog


Leider gab es in diesem Jahr außer mir keine Gewinner aus der Ukraine oder anderen Ländern des postsowjetischen Raums. Ich hoffe, dass mein Beitrag dazu beitragen wird, die Aufmerksamkeit des russischsprachigen Publikums auf Google Code-in zu lenken.
Wenn sich Schüler unter den Lesern (oder ihren Kindern) befinden - geben Sie bitte Mitte Oktober eine Notiz in den Kalender - zu diesem Zeitpunkt werden die Organisationen bekannt sein, die an der GCI 2018 teilnehmen werden. Der Wettbewerb selbst wird irgendwann Ende November beginnen. Ich habe vor, Mentor in Wikimedia zu sein - wenn Sie sich für diese Organisation entscheiden, schreiben Sie - ich werde Ihnen gerne helfen und Fragen beantworten.


Für Studenten empfehle ich, Google Summer of Code zu beachten (organisiert von demselben Google-Team, das mit GCI arbeitet). Dies ist eine gute Gelegenheit, Open Source-Mitarbeiter zu werden.


Allgemeines Foto
Gewinner, ihre Eltern und Mentoren - Foto von Stephanie Taylor, CC-BY-SA


Abschließend möchte ich sagen, dass Open Source in der modernen Welt der Softwareentwicklung eine entscheidende Rolle spielt. Die grundlegenden Funktionen des Internets funktionieren dank Open Source (Linux, Apache, MySQL, Mozilla Firefox, Chromium, PHP, Python, NodeJS, Go ... - alles ist Open Source), gefolgt von der Zukunft.


Vielen Dank für Ihre Aufmerksamkeit und erfolgreiche Pull-Anfragen!


Jetzt auch beliebt: