Google Code-in 2019: My Experience and The Joy of Becoming a Winner
Tags: google, javascript, gci
Published: 2020-03-29 08:33:50

<!-- wp:paragraph -->
<p><a href="http://codein.withgoogle.com"></a><a href="http://codein.withgoogle.com">Google Code-in ( GCI )</a> is an annual programming competition that introduces teenagers ages 13-17yrs old to the field of Open Source through coding, research, quality assurance, or design tasks for an organization of their choice. By the end of the competition, each open source organization will choose two students as Grand Prize Winners, who will be granted an all-expense four-day trip to Google Headquarters in San Francisco, California USA.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":572,"sizeSlug":"medium"} -->
<div class="wp-block-image"><figure class="aligncenter size-medium"><img src="https://notesandcodeshome.files.wordpress.com/2020/03/gci2019-1.jpg?w=300" alt="" class="wp-image-572"/><figcaption>The 10th Year Anniversary of GCI was a blast! Image source: Google Open Source Blog</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:heading -->
<h2>My Brief History with GCI</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>This was my 3rd year joining this competition and is probably one of the most memorable. I first joined GCI back in 2017, and have chosen Catrobat as the organization which I will contribute to. Wanting to win the contest on the first shot was I think a bad idea for me as it became stressful and no longer enjoyable. I then changed my mind set, that although I still want to win this competition, I want to learn something new and enjoy what I'm doing. This time, I chose Sugar Labs as my organization for GCI 2018.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":581,"sizeSlug":"large"} -->
<div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://notesandcodeshome.files.wordpress.com/2020/03/sugarlogo.png?w=400" alt="" class="wp-image-581"/><figcaption>Images Source: Sugar Labs</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>There are two reasons why I chose to work with Sugar Labs. First, I liked its mission to provide educational opportunities to children through the Sugar Platform. Second, it uses Python (along with JavaScript, HTML &amp; CSS) as it's language for developing its apps and games ( known as Activities ). Although I'm more familiar in Python Language, my old computer couldn't handle the environment required for Python contributions so I ended up programming in JavaScript, which I have zero experience during that time. Obviously, I didn't win, as I only finished 9 tasks. However, I did manage to be at the Top 20 students with the most tasks completed, and that's something for me.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>To prepare myself for the next GCI, I dedicated my summer holidays to contribute to one of Sugar Labs' product, Sugarizer, which uses JavaScript. I then became more familiar with the programming language used and more comfortable with the environment I'm working with.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Google Code-in 2019: To join, or Not to Join?</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>GCI 2019 started on December 3, 2019 and lasted until January 26, 2020. Weeks before the start date, I was having second thoughts whether I should sign up again or not, as the competition would clash with school review and exam schedules, and I have a goal of making it on the Dean’s List. But something tells me that I will regret it if I wouldn’t join the GCI 2019, and this thought went on for a couple of days before I finally signed up on the day the competition started. I chose Sugar Labs again as my organization, specifically working with two of its products, Sugarizer ( web implementation of Sugar ) and MusicBlocks ( visual programming language focusing on music composition ). The first few weeks wasn't so bad as I expected, as I had a study break where I used to do more tasks and finished about 2 tasks per day during this time. It only went tougher during and after the exam week, where I only get to finish 2-4 tasks per week.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The difference with GCI 2019 and the previous years was that I've enjoyed it more. Some of my favourite tasks are:</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>1. Editing Synthesizer Length for Music Blocks</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>String and wind instruments should be able to sustain longer note length. Before implementing my fix, Music Blocks' synthesizers could not fully sustain a whole note, thus creating a rather abrupt end to its sound. Although it was specified in the task description to find new synthesizers, I found it much harder, as I have to consider the license of the audio I'll be using. Instead, I used the same synthesizer from Music Blocks, and edited it's soundfont for it to loop a little longer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>2. Adding Automatic Re-initialization Functionality in Open Widgets</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Music Blocks students expect that when they change their code, the open widget updates base on their code. However, the student must manually re-initialize the widget for it to show the changes made. I've implemented an automatic re-initialization of the widgets for a more user-friendly experience.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":802,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://notesandcodeshome.files.wordpress.com/2020/03/reinit3.gif?w=1024" alt="" class="wp-image-802"/><figcaption>The open widget updates when code blocks are changed</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p><strong>3. Fixing Bugs and Regressions</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Fixing bugs are one of my favorite things to do. It helps me to be more analytical and creative, as bugs are fixed in different kinds of ways. One fix I did was the regression on the search autocomplete functionality on Music Blocks, while there's another one from Sugarizer, where the fix requires putting a whole chunk of code above another line for it to be run first.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>My complete tasks list can be found <a rel="noreferrer noopener" aria-label="here (opens in a new tab)" href="https://github.com/AndreaGon/GCI-2019-Tasks" target="_blank">here</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The competition went on for about 8 weeks. I finished 31 tasks, surpassing my previous year's task counts. I felt proud of myself for this new achievement.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":783,"width":609,"height":364,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large is-resized"><img src="https://notesandcodeshome.files.wordpress.com/2020/03/tasks-1.png?w=730" alt="" class="wp-image-783" width="609" height="364"/><figcaption>Yay! New Achievement Unlocked</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2>The Waiting Begins</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>I read somewhere from previous winner's blog that Google privately emails the chosen Winners and Finalists before the actual public announcement on the Open Source Blog, which was on February 11. I felt very nervous. My heart jumps whenever I check my email notifications. There are lots of students who did great job in my organization, but I still hope to be chosen as a Grand Prize Winner, or as a Finalist at least. By the time January was coming to an end, I decided to stop thinking about it, and let tomorrow takes its course.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Then, on the afternoon of February 2nd, I was sitting in our dining area, designing a website for a study group. I just came from a youth gathering event, and my phone buzzed with messages from the other youth group members. I decided to take a break from my website and read through my messages, when I received an email notification. The first thing I saw was the word "Winner" in the email. It didn't register on my mind, so I read the email’s Subject again, this time fully reading the words "Congratulations! You are a Google Code-in 2019 Grand Prize Winner!". And because it’s not every day we get to receive an email like this from Mr. Google, I have to read the subject three times before the great news sank into me.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>I quickly ran to my parent's bedroom, told them the news, and broke down into tears. I felt so happy at that moment that my happiness turned into tears of joys. All throughout the contest, I remember visualizing every night, that I'll win this time, visit Google, and meeting my Mentors and fellow GCI 2019 winners. This dream is becoming more real than ever!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>There are lots of things to do before the trip. Lots of documents to fill up and submit for the US visa. After scheduling my visa appointment, all I have to do is wait. I’m going to use this time to look through previous winners’ blog posts and read their amazing experience in Google HQ, San Francisco. I can't wait for my turn to take pictures on those Android statues!</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":629,"width":687,"height":505,"sizeSlug":"large"} -->
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img src="https://notesandcodeshome.files.wordpress.com/2020/03/android.jpg?w=728" alt="" class="wp-image-629" width="687" height="505"/><figcaption>Image source: Android Police</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>P.S. : By the way, I also did manage to be on the Dean’s List 😀. I feel so blessed.</p>
<!-- /wp:paragraph -->