📜 ⬆️ ⬇️

Google Code-in 2017

Google Code-in 2017: Wikimedia


To begin, let me tell you what Google Code-in is for those who do not know - this is an online contest for schoolchildren of 13-17 years old, which aims to acquaint them with the world of Open Source, providing an opportunity to work with organizations developing open source software. I took part in this year and became one of the winners.


How is this competition held? 25 open source competition organizations create small (requiring 3-5 hours to complete) tasks that participants must work on. This year such organizations were: Wikimedia, Ubuntu, Zulip, FOSSASIA, Drupal, BRL-CAD, coala, Haiku, OSGeo, Apertium, JBoss Community and others. Mentors of organizations perform the check and provide assistance if necessary (after all, for most of the participants, GCI is the first experience with open source projects). The contest lasts 7 weeks (end of November - beginning of January).


There are prizes. For performance of 3 tasks participants receive a T-shirt. Each organization also selects the top 5 participants for the overall contribution to the project - they get a hoodie, and the top 2 of them are awarded with a trip to Google headquarters (Mountain View, California, USA).


On Habré there were already publications of the winners of the past years: Ilya Kovalevsky - 2012 (KDE) , Mikhail Ivchenko - 2013 (KDE) , Stanislav Krivenko - 2014 (Apertium)
However, the competition is changing and gaining popularity, so I decided to also share my experience of participation.


The number of participants is growing annually
The number of contestants is growing every year - statistics from the Google Open Source Blog


This year more than 3.5 thousand schoolchildren from 78 countries took part (2.5 times more than last year).


Age of participants
Age of participants - statistics from the Google Open Source Blog


My experience


For me, the open source world has always been very interesting, but I did not know where to start. So when I found out about Google Code-in, I decided that this would be a good start. Tasks performed for Wikimedia. Why exactly this organization? First of all, this is a larger project compared to other projects, which means there should be the most interesting of all. In addition, we all use Wikipedia - why not help her in return?
You can read more about this organization’s participation in GCI on the contest page in MediaWiki .
Wikimedia is developing MediaWiki (the engine on which Wikipedia works) and other extensions and tools related to it.


Tasks


The first steps in the open source world were exciting! It was very nice to meet a lot of interesting people on IRC (used in Wikimedia, as well as in many other organizations for communication) and to work with them on assignments! The mentors provided a warm welcome and helped set up all the necessary environment for development, as well as access to the code review system (Gerrit).


While completing the tasks, I quickly got into the “state of flow”: after they took the first one from me, I took up one more, then another and more - with a total score of 39 tasks. It is very nice to see when your patch is accepted by developers, and the task is marked as completed. I was convinced that even beginners, like me, can contribute.


Task accepted!


In Wikimedia, assignments included the use of various programming languages ​​and technologies. The main language here is PHP (because MediaWiki is written on it), but Python, C ++, C #, Java, NodeJS, Ruby, Objective-C, Lua are also used. That is why GCI is a good opportunity to learn something new.
I performed various tasks: from simple ones (such as fixing simple bugs, improving CI, improving unit coverage, refactoring old code) to more complex ones, including adding new functions.
For example, one of the difficult, but very interesting tasks was to increase the accuracy of the tool based on machine learning to determine the quality of the edits made to the article. I added tracking the amount of text to the model without referring to sources (after all, if there are very few or no references to sources, does this say something about the quality of the article?).


For new features, add tests, write documentation. Code review of each patch was obligatory (the process is quite valuable in terms of the knowledge and experience gained. I also checked some patches of other contestants).


In general, during the entire competition in Wikimedia, more than 300 participants, led by 50 mentors, completed about 760 tasks working on: Mediawiki core, its extensions, API, mobile applications Kiwix and Wikipedia, as well as other tools such as Pywikibot and Huggle.


Task Examples


A small list of the most interesting tasks that I worked on - with links to the patch, task in Wikimedia Phabricator and the corresponding task page on the GCI website.



There were very simple tasks that can be easily understood even without previous experience with open source: enable CI for one of the extensions ( patch , task ), fix a small bug in the design of the error page ( patch , task ), add static analysis to CI Vector Style ( patch , task )


Two months of the competition were filled with interesting work and a lot of communication with people from all over the world. I was so passionate that I started to miss a little school and spent less time preparing for exams. Mentors have also done a great job composing new tasks and checking our patches even for Christmas and New Year. I also performed work out of competition: I took simple tasks from a bug tracker when I had free time (for example, while waiting for a task to be checked). After the competition also continued to contribute.


After completing GCI, I received a letter from Google, where it was said that Wikimedia chose me as the winner and I get a “grand prize” - a visit to the headquarters of Google in Mountain View.


Trip


The trip was scheduled for June - so that all winners could get a visa and were not distracted from school, training and exams.


Google office


The journey was filled with unforgettable impressions. Organization - at the highest level: thought out every moment.


On the first day, when all the winners gathered at Google's San Francisco office, we were told about what we would do in the following days and a small game was held to get to know each other. We were given a large number of gifts. The trip was also attended by mentors from organizations. It was incredibly nice to meet someone from the people with whom I worked so much a few months earlier.


On the second day, we went to Google Mountain's headquarters, the Googleplex. The awards ceremony was held with the director of Google Open Source Chris DiBona.


Award ceremony


After that, we were told a lot of interesting things about the company, we visited the Google Visitor Center, where we bought souvenirs and took a large number of photos.


The trip organizers also prepared a very pleasant surprise: they invited a Google employee from the country of each winner - we had the opportunity to talk and ask questions. In addition, “Googlers” came to us with presentations: one of the employees told about how he solved a complex cryptographic problem, another told about his open source project created sometime in 20% of his working time, HR - how to write good Resume, Developer Relations - about various programs in Google for "keeping in touch" with developers.


Waymo speaker


Waymo's speaker (a subsidiary of unmanned vehicles) didn't even have time to answer questions! It was very interesting to listen to him, especially looking at the Waymo cars passing by the window.


The next day, we traveled around the city visiting the main sights. It was fun, made a lot of photos.


Golden Gate
Of course, visited the Golden Gate.


San Francisco Bay
In the evening, sailed on a yacht on the Bay of San Francisco.


On the last day there were some very interesting presentations by Google employees. We were told about Kubernetes and demonstrated in our work.


Kubernetes Presentation
Containers are very useful - but this does not mean that they should be used for everything.


We also learned about the licensing of open source software (very useful, since what I had difficulty trying to figure out earlier was explained in plain language). There was also an interesting presentation about Project Fi (Google's virtual mobile network operator).


Moreover, Wikimedia has an office in San Francisco. So I decided to take the opportunity to visit him.


Wikimedia Office


The trip has left a lot of pleasant memories. I was very happy to meet with the Google Open Source team, mentors and GCI members.


Conclusion


Country Statistics
Country Statistics - Google Open Source Blog


Unfortunately, this year, apart from me, there were no winners from Ukraine or other countries of the former Soviet Union. I hope that my post will help draw attention to the Google Code-in Russian-speaking audience.
If there are schoolchildren among the readers (or their children) - put a note in the calendar for the middle of October - at this moment the organizations that will take part in GCI 2018 will already be known. The competition itself will begin sometime in late November. I plan to be a mentor in Wikimedia - if you choose this organization, write - I will be happy to help and answer questions.


For students, I recommend to pay attention to the Google Summer of Code (organized by the same Google team that works on GCI), which is a good opportunity to open source.


General photo
Winners, their parents and mentors - photo by Stephanie Taylor, CC-BY-SA


In conclusion, I want to say that open source plays a crucial role in the modern world of software development. The fundamental functions of the Internet work thanks to Open Source (Linux, Apache, MySQL, Mozilla Firefox, Chromium, PHP, Python, NodeJS, Go ... - all this is open source), followed by the future.


Thank you for your attention and successful pull requests!


')

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


All Articles