I often compare open source to science. To where science took this whole notion of developing ideas in the open and improving on other peoples' ideas and making it into what science is today and the incredible advances that we have had...

Linus Torvalds

Hi there!

My name is Nikita Volobuev (also known as Phantom42 on IRC) and I would like to tell you about how I began contributing to Wikimedia codebase.
The world of Open Source software has been always interesting for me, but I couldn't find where to start. Luckily, I found out about Google Code-in, which helped me to begin my trip. This is a contest where young developers can choose an open source organization they would like to contribute to and work on tasks for it guided by mentors from that organization.
I really like opensource software (have I previously said that I am big fan on Linux?), but I also love the idea of free, open knowledge. That's why among all other organizations I chose Wikimedia Foundation to work with. Wikimedia Foundation develops MediaWiki (which powers the Wikipedia) and other related extensions and tools.
I am happy with my choice!
By the way, you can read more about Wikimedia participation in Google Code-in 2017 on mediawiki.org GCI17 page.

How everything started

I found out about GCI in 2016. This was my first year to participate and I really liked it! In fact, it is so sad that I hadn't found out about GCI couple of years earlier. I had a great time contributing to Wikimedia Foundation codebase in 2016, so I decided that during GCI17 I will work with this organization again!

My first task

I still clearly remember making my first steps in this world of open source software! It was so exciting to get onto IRC, meet such interesting people and work together with them on tasks! I liked the way mentors provided warm welcome and help with setting up Gerrit access (to review patches) and development environment.

The story begins...

After my first task was approved, I couldn't stop claiming more! It was interesting, it was fun, it was challenging sometimes ( and it is great! I love challenging tasks! ). And it was a great feeling when the patch finally gets merged and the task is marked as resolved! I made sure that even beginners like me can contribute to this community and those pieces of work can be helpful and be used by other people.
This is so involving, that it affected my daily schedule (it even changed my sleeping schedule as I worked at night a lot and as the result feeling completely sleepy during the day).

My Tasks

The good thing about contributing to Wikimedia is that here you can find tasks involving different programming languages and technologies. Main language here is PHP (as MediaWiki is written in it) with frontend stack (JavaScript + CSS), but other languages like Python, C++, C#, Java, NodeJS, Lua and even Haskell are used by this community! That's why GCI is a great opportunity to learn something new. And while contributing to Wikimedia I was learning something new literally every day. Isn't that great?
I worked on different tasks here: from easy ones (like fixing simple bugs, improving CI builds, adding unit tests) to more complex involving introducing new features. There were also some brain-hurting tasks but it made the process double interesting and satisfying once finished. I even worked on tasks related to artificial intelligence and previously I didn't even believe I can make something work in this area!

New lessons and experience

Wikimedia taught me a lot of new things. It helped me to improve my coding skills, reviewing skills, documentation-writing skills, testing skills, and maybe communication skills too. Previously people told me that I will learn a lot while contributing to open source and now I personally made sure that it is true! So if you are thinking of participating in GCI and contributing to some organization, you definitely have to do this! You won't regret! And of course, I recommend working on Wikimedia tasks!

It is not the end of the story!

I worked on patches to Wikimedia codebase not only as a part of GCI. I also worked on tasks after GCI16 and before GCI17, I worked on tasks apart GCI during GCI itself while waiting for mentors to check my tasks. GCI just gave me a headstart, introduced me to this world and the most interesting part of the trip is ahead of me. I like being the part of this community, that's why I decided to continue contributing after GCI too! I also liked helping other GCI participants (I even got some experience reviewing patches), that's why I think I will help with mentoring next GCI! I also hope to contribute to Wikimedia when I will be participating in Google Summer of Code in the future!

Thank you!

First of all, I would like to say "thank you!" to the whole Wikimedia community for working on making knowledge free and accessible for any person of this planet!
I would also like to thank GCI admins (Andre Klapper, Florian Schmidt, John Vandenberg, Sam Reed and Srishti Sethi) for organizing Wikimedia participation in GCI and providing support all the way!
I also appreciate mentors' work. They were putting so much passion into it! Thank you for guiding me, answering my (often stupid) questions, giving useful tips and reviewing my patches!
I have couple of words to you:
Andre Klapper - thank you once again for all that hard work during GCI, organizing Wikimedia participation and helping students! Additionally, thank you for reviewing this blog post!
Florian Schmidt - thank you for your help and tips! It was great experience to work on tasks mentored by you in GCI2016 and GCI2017!
Derick Alangi - thank you Sir for being so friendly on IRC and helpful with tasks! Thank you for suggesting tasks for me to work on apart from GCI! Thank you for reviewing this blog post too!
Niklas Laxström - thank you for your i18n tasks and providing quick support! You did a really good job! It was nice experience working with you (including tasks apart from GCI)
Brian Wolff - thank you for awesome tasks descriptions! It made the whole process a lot easier! I wish GCI had more tasks like you were mentoring!
Volker Eckl - thank you for your tasks and hard work at Wikimedia! I learned some interesting CSS things while working on task mentored by you!
Legoktm - thank you! I did unit testing tasks and thanks to you learned new things in the process!
Petr Bena - it was really interesting for me to work on your WikimediaBot and Huggle tasks. It helped me to imporve my C# and C++ skills.
Tony Thomas - it was pleasure for me to work on Newsletter extension tasks both previous year and this year! Thank you for fast reviews and interesting tasks!
Étienne Beaulé - your Score extension tasks allowed me to learn more about music!
John Vandenberg - thank you for your pywikibot tasks, some of which were brain-hurting! Thank you for reviewing my patches quickly and giving helpful tips!
Amir Sarabadani - thank you for mentoring my GCI artificial intelligence task, the most interesting task of the whole GCI! Also thank you for recommending machine learning course on Coursera. I hope this will make my knowledge level in this area better!
Zppix - thank you for your ZppixBot tasks and allowing me to break it while working on it in my GCI free time!

I have couple of words to other GCI participants too: dear Justin (from USA, gci16 participant), Albert (from Poland), David (from Poland too), Rafid (from Indonesia) and all other students - thank you! You did a really good job and I had a nice experience working and communicating with you.
Finally, I would like to thank Google for its support for open source. Google Code-in is an event which introduced me to this world, helped me to meet awesome people, learn new things.
Thank you!

P.S. If you are reading this and thinking about participating in GCI next year or beginning to contribute to Wikimedia - feel free to contact me and I will be happy to answer any of your questions!

Please note, that unlike other posts in this blog, this post is licensed under CC BY 4.0 license.
Google Code-in and the Google Code-in logo are trademarks of Google Inc.