How I won a trip to Google by learning to code
Setting the scene
I’m a sixteen-year-old teen, and this is the story of how I went from noobie to becoming a Google Code-In (GCI) winner. Google Code-in is an international contest to introduce pre-university students (ages 13–17) to open source software development.
There are cool prizes as you advance through the competition: digital certificates, t-shirts, hoodies, and finally the Grand Prize Trip to Google HQ. This year’s edition had over 3500 students from 78 countries who completed 16468 tasks.
No story is complete without a flashback. Bear with me, as I bring you back in time. The good parts of the story grow more meaningful when you understand what’s going on backstage :)
Spoiler: The lessons learned were more valuable than the actual prize. So stick around until the end.
$journey = “Day 0 Zero D”;
486 days ago (16 months but fancier)
I was in 10th grade back then. I didn’t know how to program. All I knew about the subject from school was that HTML was a programming language. Pseudo-code? Nah, never heard of it. Python was the name of a reptile back then. Now I know it’s actually a beast.
One fateful day though, everything changed. While flipping through a (borrowed) textbook, I came upon a flyer. It was about the school’s robotics club. Quite a shabby-looking thing, with Comic Sans splattered everywhere. The designer in me writhed in pain, but me being me, I decided to give it a shot. That moment was my launch into the wonderful world of programming.
The first thing we learnt was visual programming with Scratch. We used it to tinker with robotics kits like Hummingbird and Finch. As someone with no prior knowledge of code, I found Scratch convenient. The fact that we used it for practical purposes concretized my opinion.
$journey = $events["Infotech", "GCI" ];
439 days ago
December was quickly approaching. Our robotics club wanted to take part in the annual tech exhibition (Infotech). At the same time, Logan from hackers.mu had started teaching coding basics for GCI. This would help us catch up to other countries when the contest started.
The real challenge though was managing my time between building our robotics projects and learning to code. At one point, I’d even thought of giving up on GCI. But, I decided to persist and do both. Best. Decision. Ever.
It was a stressful month of preparation, but the robotics club’s event was a success. We even got coverage from a local TV channel and newspaper. 😌
Next was GCI. Three days after the contest had opened, I registered and started working on my first task. I decided to go with Drupal since Logan recommended it. Drupal is a versatile and open-source Content Management System (CMS) software. (Click here to learn more about Drupal.)
My first task was to install Drupal and document the steps. Seemed simple enough to me: find a tutorial, follow it, then re-write it in my own words. Two hours later, click submit and voila. Now we just wait for approval. Wrong. It got sent back three times before it got approved. As a participant, it’s important to get used to rejections on a daily basis. Don’t give up. Mentors don’t mean to be mean or to mean that you’re mean. They just want to bring the best work out of you.
Initially, my progress in GCI was slow. My first expectation had been that we’d manage to get the t-shirt (three tasks). As the days passed I started to get a better gist of the process. Making friends in the competition and helping to solve each other’s problems made me love GCI even more. Tasks got approved faster as I made relatively fewer mistakes. Mauritian participants were doing so well that Google even made special mention of us. Working at 3 am to talk with mentors was one of my favourite parts of GCI.
I was honestly baffled at the fact that me becoming a winner was plausible. But that was my Achilles heel. I became obsessed with that prospect, and I started concentrating on winning. I’m not proud of this, but at one point I was even actively stalking other participants.
384 days ago (25th January)
I woke up, went to the toilet and pulled out my phone.
Oh hey, a mail of from Google. Don’t you see that everyday…
I guess this is what silver medalists feel like.
Being so close and yet so far.
I had wanted to be Africa’s first Grand Prize winner. I failed. But hey, Collins’ win did more to represent Africa than I ever could. I learned valuable lessons, made a new record for the school and country, and got the chance to stand up and try again.
str_replace(“win”, [‘enjoy’, ‘learn’], $journey[$aim]);
75 days ago
I did not stop learning to code throughout 2017. I constantly found myself missing GCI’s atmosphere, so I participated in hackers.mu events, workshops, anything related to tech. With the help of friends, I even organised my first hackathon at school.
And so GCI started. This year I concentrated solely on learning, working on things I love, and teaching others. The new Mauritian participants were very keen on learning to code, and I really appreciated that. I wish more of them had the conviction to move past three tasks. This year had even more participants than last year, and that has led to amazing moments together.
This year’s GCI was full of accomplishments. We created a renewed documentation guide for new GCI students. Tanish — a new student — even created an awesome video running through it. I explored Drupal modules and contributed wherever I could. I came to know of Social API and grew fond of it. Together with other students, we addressed a multitude of issues: documentation, refactoring code, and a lot more. The combined group effort made GCI a huge success for Drupal.
“Students continue to impress me every year. Even though we had many students attempting to cheat, we found several rock star coders who are the future of Drupal.”
— Matthew Lechleider, Org Admin for Drupal
19 days ago
Fast forward. It’s the 31st January. Let’s have a look at the results, shall we?😁
We felt let down that there weren’t other Mauritians among winners or finalists this year, but I’d like to mention that Tanesh, Heesen, Neel, Nissaar, Konrad, Hui and all the others did a great job. Many of them will have a second chance this year, and I’ll be there as a mentor to see them through :).
There are so many things I’ve learnt through GCI. I’ve discovered how to learn. I discovered Medium, and through it a lot more sources of information. I can’t list everything, but here are a few:
- Focus on the process, not the result. You’ll learn more and cherish the experience. The competition becomes a lot easier when you don’t consider it as one.
- Google is your best friend for everything, and this especially holds true for coding. Harness the true powers of Google by learning about Google Hacking. $resources = [0, 1, 2];
- Always self-review your work before sending it to your peers/mentors. Self-review doesn’t just involve going through the code but actually running it. I wish I’d known that back when I had created a 25 MB patch to fix one typo. Thinking about the incident still makes me smile.
- Mentors are human beings and need downtime. More often than not, they also happen to live in different time zones than you. Therefore, it is important to be patient. The optimum way to go about this is to continue working on another task while waiting for the first one to get reviewed.
- If you’ve been stuck on a particular problem for a long time, the best way to deal with it is to distract yourself. Go for a walk, or get some sleep. Your brain will work on the problem subconsciously.
- During the many sleepless nights, I have realized that waking up at the same time every day is easier than trying to sleep at the same time.
A little less tech-related, but useful nevertheless:
- Books are not useless or extinct. The world’s most successful people (especially technologists) read 2x or more books than average.
- Circadian rhythm has a say on your performance. It’s affected not only by light but also by eating habits, body temperature, and other factors. If you’ve ever been affected by jet lag, you can significantly decrease its effects.
- The food pyramid is not a healthy diet, neither is eating thrice a day. A ketogenic diet (high fat-low carb) is healthier because of how our body is wired up. It also helps because you consume less sugar (Refined sugar is poison!). Intermittent fasting, one of the many things recommended by an illiterate dude some 1400 years ago, has only recently become mainstream thanks to scientific studies. Have a look at this and this too :).
- Consuming more salt than the recommended intake by the FDA (2300 mg) actually leads to a lesser risk of disease than if you followed the guidelines. See this and this.
- Never compare yourself to others. The moment you compare yourself to others, you have placed them above you.
- Networking + Proactivity = eᵖʳᵒᵍʳᵉˢˢ
Networking and being proactive has made me progress exponentially. Winning would have been impossible without making the extra effort to learn on my own. Coming so far wouldn’t be possible if I didn’t reach out to valuable mentors like hackers.mu(❤), Getulio and the other Drupal-ers. I wouldn’t have learned about GCI if I did not take the time to check the notice board. My teacher would have never reminded me of the details if I didn’t take the initiative to join the robotics club. Proactivity makes all the difference between oneself and the mass of nameless faces.
Networking has brought enormous benefits. I’ve made friends. I’ve joined an awesome team. I’ve learned things I never thought would be possible.
A different perspective
I asked other participants to recount their experiences, so here are my favorite quotes from their responses. I have their full interviews posted on my blog here.
Tanvish Jha- Winner ’17 (Drupal)🇮🇳
My hardest task was creating a small module. It doesn’t look hard now that I have created and played around a lot of modules, but at the time I was totally inexperienced. When I first did the task I was not familiar with coding standards and layout of a module and why the certain code was to be placed in a certain folder. It all seems so simple now.
Hui Chan, Top 10 ’17 (Drupal) 🇨🇳
There are some moments I will never forget in GCI:
I met you and had a happy conversation. Your ability to empathize startled me as it’s difficult to let foreigners understand China.
I once sent a pm to Slurpee, and received:
<drupalbot> “<username> pm?” usually is a form of asking if it is acceptable to send a private message. Please do not send uninvited private messages to users. It is a courtesy to ask a user if you may engage in a private discussion before sending the PM. Furthermore, when you discuss the topic in a public channel, everyone can contribute and learn from the discussion.
It surprised me and as it is quite different from Chinese culture.
Once, I worked on a task until 0030 am. Tired but happy to see it approved. When GCI had ended, I finished 8 tasks for it and that kept me in the leader boards until the end. I have mixed feelings in my heart. like Oh… It’s over…
Utkarsh Dixit, Winner ’16 (Drupal) 🇮🇳
I am a lone wolf who likes to code and explore the world of programming in any way possible. I also enjoy contributing to open source projects, especially Drupal. In the beginning, I didn’t think I’d come this far, but I started getting confidence as I was getting near the end of GCI. A moment I’ll never forget is, of course, my first core commit. While GCI was organized wonderfully, I think that GCI should last longer. I mean, we could have completed more challenging and interesting tasks…
Tanesh Chuckowree, Top 10 ’17 (Ubuntu) 🇲🇺
I’m a proud user of Linux and I only recently started learning about programming. To be honest, I participated in GCI because one of my really good friends asked me if I would be willing to participate. Ubuntu was not really my first choice, but one of my mentors asked me to take up Ubuntu and I can’t say I regret that decision. At first, I thought I would be regretting participating in GCI since it would mean sacrificing my holidays, but gradually it became more awesome and l don’t think there is an adjective out there to describe how much fun I had.
Kartik Goel, Finalist ’17 (Drupal) 🇮🇳
Those one and a half months were probably the best times I’ve had. Initially, I was a little fed up like I was not getting how the things were working, but later with time, I explored things, tried my best to contribute to the community of my organization. Now, due to GCI, I feel like I’m personally attached to the community. Apart from learning and work, GCI overall was fun. I got to talk to students and mentors from all over the world with their own stories, having different skills. IRC was a very good place to chat and the best place to have fun :)
Konrad Klawikowski, Participant ’17 (Drupal) 🇵🇱
My name is Konrad, I’m from Poland, I like programming and all IT stuff including encrypting data, blockchains and many more! I do not know how to describe it, but the Drupal tasks were very diverse and everyone could find something for themselves. I had a lot of fun during GCI, I met new friends from several countries like India, Mauritius, US and Canada. I liked the contest and that was my first year, but I think I’ll go for more. In Drupal are some of the nicest and most clever people I have ever met; who respect me and have common interests with me. Thank you guys, I love you all ❤. I think I do have a future in Drupal. What am I going to do next? One man once said “Go big, or go home” and another stated, “People who are crazy enough to think they can change the world are the ones who do”. That’s all I will say about my plans.
Dhanat Thew, Winner ’16 (Drupal) 🇹🇭
I saw the news about GCI from Twitter. Having read some details, I saw that Drupal is one of the organizations so I decided to join GCI and chose to work with Drupal. My hardest task was to ‘Write a 3-paragraph essay to explain what is Drupal to grandpa/grandma’ because English is not my first language. I had to fix many grammar mistakes before it was accepted. I would absolutely recommend GCI and Drupal to future students. My advice is to focus on producing quality tasks and what will community receive from your works rather than winning a prize.
Sagar Khatri, Finalist ’17 (Drupal) 🇮🇳
Publii was the first introduction of mine to open source and I immediately started contributing to it by helping out the developers spot bugs in Publii. Then I entered GCI 2017, where I got my most information about open source. GCI was a lot of fun for me. My teacher allowed me to work on GCI in my school too so it was really fun to miss my classes and contribute to Drupal for two weeks. I’ll never forget the moment when I saw my name on the leaderboard! As for Drupal, it’s a really powerful CMS with a great community base. The community is the building block of an organization and Drupal has it at the next level.
Matthew Lechleider, Org Admin (Drupal) 🇺🇸
I wish I had GCI when I was a kid. That’s what pushed me to get Drupal started in GCI. Through it, I hope to educate students about the future of technology and open source. I think Drupal is a lifestyle, not just a job. Life as a mentor is spending a lot of time answering simple questions that can easily be answered by pointing students towards proper documentation, then see them go from newbs to rock-stars. It is really cool to watch students develop into a developer who will eventually earn a good life as a software professional.
A moment I’ll never forget is watching gvso go from GCI student, to GCI winner to GSoC (Google Summer of Code) student, to GCI/GSoC mentor, to presenting at Drupalcon, and now helping me with org admin duties. gvso for sure makes my life easier.
Well, that’s the end of my beginning in tech. It’s been a wonderful experience thanks to all these people. I look forward to more adventures with hackers.mu, and to follow gvso’s footsteps in open-source and Drupal.
It feels wonderful to be able to share the lessons I learned and my journey with a large audience like FreeCodeCamp. I hope this serves as an inspiration to other people to step into the world of programming and open-source.
If you have any thoughts or questions, don’t hesitate to drop them down below or at [email protected].