Code Google en 2017

Code Google en 2017: Wikimedia


Pour commencer, je vais vous dire ce que Google Code-in est pour ceux qui ne connaissent pas - il s'agit d'un concours en ligne pour les étudiants âgés de 13 à 17 ans, qui vise à leur faire découvrir le monde de l'Open Source, offrant la possibilité de travailler avec des organisations développant des logiciels open source. J'ai participé cette année et je suis devenu l'un des gagnants.


Comment se déroule ce concours? 25 organisations open source du concours créent de petites tâches (nécessitant de 3 à 5 heures) sur lesquelles les participants doivent travailler. Cette année, ces organisations étaient: Wikimedia, Ubuntu, Zulip, FOSSASIA, Drupal, BRL-CAD, coala, Haiku, OSGeo, Apertium, JBoss Community et autres. Les mentors d'organisations effectuent des vérifications et, si nécessaire, fournissent une assistance (néanmoins, pour la plupart des participants, GCI est la première expérience avec des projets open source). Le concours dure 7 semaines (fin novembre - début janvier).


Des prix sont disponibles. Pour effectuer 3 tâches, les participants reçoivent un T-shirt. Chaque organisation choisit également les 5 meilleurs participants pour la contribution globale au projet - ils obtiennent un "sweat à capuche", et les 2 meilleurs d'entre eux sont récompensés par un voyage au siège de Google (Mountain View, Californie, États-Unis).


Les publications des lauréats des années précédentes ont déjà été publiées sur Habré: Ilya Kovalevsky - 2012 (KDE) , Mikhail Ivchenko - 2013 (KDE) , Stanislav Krivenko - 2014 (Apertium)
Cependant, la compétition évolue et gagne en popularité, j'ai donc décidé de partager mon expérience de participation.


Le nombre de participants augmente chaque année
Le nombre de candidats augmente chaque année - statistiques du blog Google Open Source


Cette année, plus de 3,5 mille étudiants de 78 pays ont participé (2,5 fois plus que l'année dernière).


Âge des candidats
Âge du concours - Statistiques du blog Google Open Source


Mon expérience


Pour moi, le monde open source a toujours été très intéressant, mais je ne savais pas par où commencer. Donc, quand j'ai découvert Google Code-in, j'ai décidé que ce serait un bon début. Tâches effectuées pour Wikimedia. Pourquoi exactement cette organisation? Premièrement, il s'agit d'un projet plus important que d'autres projets, ce qui signifie que ce devrait être la chose la plus intéressante. De plus, nous utilisons tous Wikipédia - pourquoi ne pas l'aider avec quelque chose en retour?
Vous pouvez en savoir plus sur la participation de cette organisation au GCI sur la page du concours dans MediaWiki .
Wikimedia développe MediaWiki (le moteur sur lequel Wikipédia s'exécute) et d'autres extensions et outils associés.


Missions


Les premiers pas dans le monde open source ont été passionnants! C'était très agréable de rencontrer beaucoup de gens intéressants sur IRC (utilisé par Wikimedia, ainsi que dans de nombreuses autres organisations de communication) et de travailler avec eux sur des tâches! Les mentors ont accueilli chaleureusement et aidé à mettre en place tous les environnements de développement nécessaires, ainsi que l'accès au système de révision de code (Gerrit).


En effectuant des tâches, je suis rapidement tombé dans «l'état du flux»: après avoir reçu la première, j'en ai repris une de plus, puis une autre et une autre - un total de 39 tâches. Il est très agréable de voir quand votre correctif est accepté par les développeurs et que la tâche est marquée comme terminée. J'ai fait en sorte que même les débutants comme moi puissent faire leur part.


La tâche est acceptée!


Chez Wikimedia, les missions comprenaient l'utilisation de divers langages et technologies de programmation. Le langage principal ici est PHP (car il est écrit dessus par MediaWiki), mais Python, C ++, C #, Java, NodeJS, Ruby, Objective-C, Lua sont également utilisés. C'est pourquoi GCI est une bonne occasion d'apprendre quelque chose de nouveau.
J'ai effectué diverses tâches: de simples (telles que la correction de bogues simples, l'amélioration du CI, l'amélioration de la couverture des tests unitaires, la refactorisation de l'ancien code) à des tâches plus complexes, y compris l'ajout de nouvelles fonctions.
Par exemple, l'une des tâches difficiles, mais très intéressantes, a été d'augmenter la précision d'un outil basé sur l'apprentissage automatique pour déterminer la qualité des modifications apportées à l'article. J'ai ajouté le suivi de la quantité de texte dans le modèle sans référence aux sources (après tout, s'il y a très peu ou pas de liens vers les sources, cela signifie-t-il quelque chose sur la qualité de l'article?).


Pour les nouvelles fonctions, des tests ont été ajoutés, une documentation a été écrite. Un examen du code de chaque correctif était également obligatoire (le processus est très précieux en termes de connaissances et d'expérience acquises. J'ai également vérifié certains correctifs d'autres participants au concours).


En général, pendant tout le concours Wikimedia, plus de 300 participants, dirigés par 50 mentors, ont effectué environ 760 tâches tout en travaillant sur: le noyau Mediawiki, ses extensions, les API, les applications mobiles Kiwix et Wikipédia, ainsi que d'autres outils, tels que Pywikibot et Huggle.


Exemples de tâches


Une courte liste des tâches les plus intéressantes sur lesquelles j'ai travaillé - avec des liens vers le patch, la tâche dans Wikimedia Phabricator et la page de tâche correspondante sur le site Web de GCI.



Il y avait des tâches très simples qui peuvent être facilement traitées même sans expérience préalable avec l'open source: activer CI pour l'une des extensions ( patch , tâche ), corriger un petit bug dans la conception de la page d'erreur ( patch , tâche ), ajouter une analyse statique à CI Style vectoriel ( patch , tâche )


Deux mois de compétition ont été remplis de travaux intéressants et de beaucoup de communication avec des gens du monde entier. J'étais tellement passionnée que j'ai commencé à sauter un peu l'école et à passer moins de temps à préparer les examens. Les mentors ont fait un travail formidable, écrivant de nouvelles tâches et vérifiant nos correctifs, même pour Noël et le nouvel an. J'ai aussi travaillé hors compétition: j'ai pris des tâches simples du bug tracker quand il y avait du temps libre (par exemple, en attendant qu'une tâche soit vérifiée). Après le concours, il a également continué à apporter sa contribution.


Après avoir terminé le GCI, j'ai reçu une lettre de Google me disant que Wikimedia m'a choisi comme gagnant et que j'obtiens un "grand prix" - une visite au siège de Google à Mountain View.


Ride


Le voyage était prévu pour juin - afin que tous les gagnants puissent obtenir un visa et ne pas être distraits d'étudier à l'école, de préparer et de passer des examens.


Bureau Google


Le voyage a été rempli d'impressions inoubliables. L'organisation est au plus haut niveau: chaque instant est pensé.


Le premier jour, lorsque tous les gagnants se sont réunis au bureau de Google à San Francisco, on nous a dit ce que nous ferions dans les prochains jours et un petit jeu a été organisé pour faire connaissance. On nous a donné un grand nombre de cadeaux. Le voyage a également été suivi par des mentors d'organisations. C'était incroyablement agréable de rencontrer quelqu'un des gens avec qui j'ai tellement travaillé quelques mois plus tôt.


Le deuxième jour, nous sommes allés au siège de Google à Mountain View - "Googleplex". Une cérémonie de remise des prix a eu lieu avec le directeur de Google Open Source Chris DiBona.


Remise des prix


Après cela, on nous a dit beaucoup de choses intéressantes sur l'entreprise, nous avons visité le Google Visitor Center, où nous avons acheté des souvenirs et pris un grand nombre de photos.


Les organisateurs du voyage ont également préparé une très agréable surprise: ils ont invité un employé de Google du pays de chaque gagnant - nous avons eu l'occasion de parler et de poser des questions. De plus, des «googleurs» sont venus nous voir avec des présentations: un des employés a expliqué comment il avait résolu une tâche cryptographique difficile, un autre a parlé de son projet open source, qui a été créé dans 20% du temps de travail, RH - sur la façon d'écrire bien CV, Relations avec les développeurs - sur divers programmes de Google pour "rester en contact" avec les développeurs.


Haut-parleur de Waymo


L'orateur de Waymo (une filiale de véhicules sans pilote) n'a même pas eu le temps de répondre aux questions! C'était très intéressant de l'écouter, surtout en regardant les voitures Waymo qui passaient par la fenêtre.


Le lendemain, nous avons parcouru la ville pour visiter les principales attractions. C'était amusant, a pris beaucoup de photos.


Golden Gate
Bien sûr, nous avons visité le Golden Gate.


Baie de San francisco
Le soir, ils ont navigué sur la baie de San Francisco.


Le dernier jour, des employés de Google ont présenté des présentations très intéressantes. On nous a parlé de Kubernetes et nous l'avons démontré au travail.


Présentation sur Kubernetes
Les conteneurs sont très utiles - mais cela ne signifie pas qu'ils doivent être utilisés pour tout.


Nous avons également appris la licence de logiciels open source (très utile, car ce que j'ai eu du mal à comprendre plus tôt a été expliqué ici dans un langage clair). Il y avait aussi une présentation intéressante sur Project Fi (l'opérateur de réseau virtuel de Google).


De plus, Wikimedia a un bureau à San Francisco. J'ai donc décidé d'en profiter pour lui rendre visite.


Wikimedia Office


Le voyage a laissé beaucoup de souvenirs agréables. J'ai été très heureux de rencontrer l'équipe Google Open Source, des mentors et des membres de GCI.


Conclusion


Statistiques par pays
Statistiques par pays - Blog Google Open Source


Malheureusement, cette année, à part moi, il n'y a eu aucun gagnant d'Ukraine ou d'autres pays de l'espace post-soviétique. J'espère que mon message aidera à attirer l'attention sur le code Google dans le public russophone.
S'il y a des étudiants parmi les lecteurs (ou leurs enfants) - mettez une note dans le calendrier pour la mi-octobre - à ce moment-là, les organisations qui participeront au GCI 2018 seront déjà connues. Le concours lui-même débutera fin novembre. Je prévois d'être un mentor chez Wikimedia - si vous choisissez cette organisation, écrivez - je serai heureux d'aider et de répondre aux questions.


Pour les étudiants, je recommande de prêter attention au Google Summer of Code (organisé par la même équipe Google qui travaille sur GCI), qui est une bonne occasion de contribuer à l'open source.


Photo générale
Gagnants, leurs parents et mentors - Photo de Stephanie Taylor, CC-BY-SA


En conclusion, je tiens à dire que l'open source joue un rôle crucial dans le monde moderne du développement logiciel. Les fonctions fondamentales d'Internet fonctionnent grâce à l'Open Source (Linux, Apache, MySQL, Mozilla Firefox, Chromium, PHP, Python, NodeJS, Go ... - tout cela est open source), et c'est l'avenir.


Merci et demandes de pull réussies!

Source: https://habr.com/ru/post/fr417233/


All Articles