Sunday, 24 January 2016

My experience with Google Code-in

Over the past six weeks, I have been participating in a contest called Google Code-in. It is all about open-source software development, and all of the challenges and skill involved. I have been working with Wikimedia in this contest, and I have been participating in the development of many different parts of the project, most notably Pywikibot. It has been a lot of fun to jump right into a form of development that I have never even seen before, much less participate in! There were a lot of ups and downs, and it wasn't easy, but it was worthwhile in the end.

I actually never got introduced to the contest by anyone in particular, in fact I only found the contest by chance! I found it simply by clicking random links related to the Hour of Code event. Somehow I found the contest. After talking it over with my parents, I signed up for the contest and got my first task started.

This contest really made me step outside of my comfort zone on many different occasions. Joining the IRC channels made me very nervous at first because I had never really joined a chat room like that before. I tried to avoid communication with people I didn't know prior to this point. As the contest moved on though, I got more comfortable with talking to people over IRC, and I improved my online social skills greatly.

In the run of this contest, I have also used software and worked with languages that I have never really worked on in this scale before. I had never used Git/Gerrit before this point, and a lot of my time doing tasks was spent making sure that I uploaded patches correctly. For the first few times, I followed the Gerrit tutorial step by step to make sure I didn't mess anything up!

One major thing that I learned during this contest is how to ask for help and seek direction from mentors. At the beginning of the contest, I was failing some tasks because I was reluctant to ask for help in the IRC chat when I really needed it. I would tire myself out,  get frustrated, and then just give up. Only later in the contest did I really begin to ask questions to help with the tasks. I learned how to ask questions to get the answers you want, and when to ask them.

One of my favourite tasks that I did was when I had to simplify the 'generate_user_files.py' script in Pywikibot. I got to change a lot of code and experiment with different methods to accomplish things. I also learned a lot about Gerrit and Phabricator, My mentor and I got to review the code together and communicate over these two platforms. The line change total in Gerrit ended up being about 200 lines, and the changes that I made got merged into the main code.

A task that I did not like as much, was the task where I had to remove an asterisk from a dialog box inside of VisualEditor. I struggled greatly with getting Vagrant to work with the extension installed, and I ended up spending a lot of time and keeping my computer on overnight to try and get it working. I had to abandon the task later, because I could not get it working in time.

The thing that I enjoyed the most while doing the Code-in would have to be that it was the first time that I got to work with other people on something relating to programming. Living in a relatively small place with few outlets for learning programming is difficult, so I've had to learn on my own. I have been doing programming for about two years now, and I have never really been able to collaborate with other people on a project. I was finally able to jump into a project. One of the things that I didn't enjoy however, was how some of the tasks were not clearly defined. There was a few cases that I had to abandon a task that I had accepted because I didn't have a clear understanding of what was being asked.

Overall, I enjoyed the contest, and it was a very valuable learning experience. I have learned more important things about working in the real world here than I will ever learn in school. As for contributing to MediaWiki in the future, I probably will. I want to be a really well-rounded developer, and I would like to contribute to many open-source projects, including this one. I took a big risk by being in the Code-in, but all that I have done and learned has made it totally worth it. Thanks to all of the mentors and contributors that have helped all of us students, and I hope that this content will continue to take place for many years to come!

- AndyTechGuy

No comments:

Post a Comment