The Journey I Think Every Young Programmer Should Take — My Experience with GCI

Over the past few weeks, I have participated in Google’s Open-Source programming contest, Google Code-In. I first found about it when I noticed someone at a competition I was attending had a T-Shirt from one of the previous contests. After discussing the whole process with him I was convinced that I would take part this year.

The 23rd of October came and I looked through all the organisations on offer. There was a great selection with a record number of organisations taking part! I picked out the organisations which were most suited to my skillset. Two organisations stuck out, OpenWISP and Sugar Labs. I decided I would try one organisation for a few tasks and then try out the other organisation to get a better picture of which one would be most suitable for me.

OpenWISP definitely would be a great org to work with however for me, I felt more comfortable with Sugar Labs and this comes to my first piece of advice for any future students:

I really feel this is what made my time during GCI a great experience. I’m sure OpenWISP is a great organisation to work with but for me, personal satisfaction came from knowing that my code was going to be used by young people across the globe.

The Sugar Labs Logo

Another key factor to getting the most out of the contest is keeping it as a hobby and not as a lifeline. I definitely have been keeping active with tasks during the time period. However being in my GCSE year (national exams in the UK) I can’t really afford to just dodge school and be pulling all-nighters doing tasks. I instead replaced all my usual hobby time with GCI, this kept the whole process enjoyable instead of a stressful one.

I am guilty of frequently looking at the task count and comparing it to others. However, I am fully aware that the task count can be deceiving. For example, someone could have done 30 quick changes to the documentation and gained 30 tasks. Yet someone else, who has only done 15 tasks could have written over 5000 lines of code which directly benefits the organisation. If you were the organisation administrator, who would you choose?

I also think that obsessing with the task count again distracts you from the point of the contest. It is important to remember why you are doing GCI and the benefits it can bring to you. For me personally, I now understand why most programmers say you can learn on the job. In the beginning, my JavaScript knowledge was flaky at best. I knew the basics but I much preferred Python. However now at the end of the contest, I can tell my skillsets in each language I used have increased drastically.

These are my main takeaway messages from Google Code-In. Additional advice I would offer to any prospective GCI students is:

  • Join any mailing list, IRC, Slack, Zulip… whatever. It will help you get an idea of the bigger picture of the organisation and what goes on within it. Community engagement is also a factor taken into consideration when the Grand Prize Winner’s are chosen.
  • Looking over previous Grand Prize Winners posts you will see the message “quality over quantity” and believe it or not it is true. You should always be trying to put your best effort into a task. In doing so you will gain more from the process and have a higher chance of being chosen as a winner.
  • If you’re stuck on a problem, do not become obsessed. Take a break and come back later. You will be in a more clear state and ready to tackle it again.
  • The mentors are trying to help you achieve your potential. You may be struck when your mentor responds with “More work needed” but this is completely normal and happens often.

My Tasks

In total, I completed 30 tasks within the GCI period.

I mainly completed coding tasks during the contest period with platforms like Sugarizer and Sugar Social. I also had a fair share of Design Tasks as well. Originally I aimed to do a task every other day. I have achieved this goal but I decided this when I didn’t really know too much about the competition and I would not suggest you have a fixed task count aim. I have made an interactive timeline to show my tasks along with the work I completed, you can view it by clicking the run pen button below.

An interactive timeline of all the tasks I completed for GCI.

Overall I am happy with the contributions which I made to Sugar Labs and I feel my contributions all bring value to the organisation. My favourite task was designing the contributors page for the Sugar Labs website as overall it was a fun project as it combined several different languages and skills to get it all functioning. I also think it highlights the fact that Sugar Labs is run off contributions from the open-source community and provides a way of giving gratitude for their work.

Another highlight of my GCI is directly helping another student who needed some help with implementing a feature in his code. It really showed me how far I had come through the process from where I had started.

I also ran a session with a group of students aged 10–11 on the basics of programming. I used Music Blocks to convey this with a selection of practicals for the students to try. I came out of the session impressed with their intuition and hope to run more sessions demonstrating some more advanced concepts.

Final Words

I feel Google Code-In has helped me get out of what was a coding plateau that I was experiencing prior to the contest. There are clearly great rewards for those who would excel and of course, I would be lying if I didn’t do it partly for the chance of being a Grand Prize Winner. However, I feel Google Code-In is a great way to get some valuable experience of what it is like to contribute to the open-source community.

I honestly would have never believed where GCI would have taken my programming and for that, I am immensely grateful to the entire process. Without the help of my mentors, Google and the excellent documentation provided by each Sugar Labs repository I would never have got to the stage where I am today and it makes me even more excited for the future. It has improved my confidence in code and has given me a new mindset for approaching problems. What I used to think was impossible is now approachable which I really think is the most valuable asset I have gained from GCI.

To finish, I would like to thank everyone at Google for creating such a unique experience and I know that even though it’s been quite a lot of work I will miss the emails in my Inbox… I will definitely go on to continue supporting Sugar Labs in their endeavours and perhaps work with some other open source projects as well, now I know the benefits it can bring. The mentors are the real heroes, all of them volunteering to create, mark and help students on a daily basis in their own time is a real commitment and I offer my sincere thanks to all of them because without them GCI would not be possible.

Feel free to contact me if you have any questions around GCI.