By Marga Salvador on January 1, 2017
When stacked up against foreigners, many Filipinos get intimidated and hide behind the likes of "I'm from a small country," or "We don't have the best resources there." While both are true, they aren't excuses and once in a while we get a reminder and dose of Pinoy pride when one of our own makes it in their field.
Meet Kevin Atienza. You might miss him walking down the street but this guy has got a programming resume that will make you do a double take. He placed 25th globally in Google Code Jam 2015 and is currently #1 in Southeast Asia. Today, Kevin holds the #2 spot for Google Code Jam 2016. He is also one of the founding software engineers of Kalibrr.
Put simply, Kevin is a competitive programmer. To put that into context, he's part of the top 0.15% coders in the world. "We are trying to solve math problems with programming, and programming problems with math. I would use the word "algorithm", but it isn't as well known as it should be, so "math" is the closest thing."
We got to talk to Kevin about the competitions he's joined and what this master programmer is looking forward to in the future.
How did you get into this line of work?
I started training in my second year of college, back in 2008, when the coach of UP Diliman's programming team recruited me. My first contest was in Jakarta, after six months of training. Since then I've been continuously training and joining numerous contests from around the world.
Nowadays I also write problems for such contests. I started by being a member of the Project Euler team, and then the HackerRank and CodeChef teams later on. I have even been invited to visit India once for it, for their SnackDown 2016 contest!
Is this what you want to do or are you working towards something else?
This is definitely a fun thing to work on, but another thing I'd like to do is teach. I find it fun to teach someone about programming topics, and problem-solving.
I've been doing this to some extent in the National Olympiad in Informatics - Philippines, where we train the best high school programmers to compete in the International Olympiad in Informatics. This contest is the most prestigious programming contest for high school participants, and getting medals in it comes with so many advantages, like admission / scholarships in top universities, e.g. the National University of Singapore.
In the long term I also want to get higher academic degrees, e.g. Masters and PhD.
Serving up some humble π
Despite what Kevin has accomplished, he's grounded himself with humility and credited where he is now to his early passion for mathematics. "I started programming in college so I can't really call myself a prodigy. And even then, I didn't feel very comfortable calling myself a "prodigy".
Before college, my main passion was mathematics. I joined several math contests in our region and even won some of them. They weren't anything big and I was nowhere near the level of the best high school math competitors of the world. But math and programming are tightly related, so I guess my love of math translated easily to my love of programming."
What's the most nerve wracking competition you've joined so far?
It was my first ACM ICPC World Finals in 2010, in Harbin, China. The ICPC lasts five hours, and I almost always get nervous during the first 30 minutes. But during the 2010 World Finals, I think my nervousness lasted for up to two hours, almost halfway through the contest. I think it's due to the immense pressure being with the best competitors in the world, and also realizing that qualifying into the World Finals is so difficult that we may never be able to do it again.
Luckily I had two teammates with me to help out, and also share the pressure. :D
Google Code Jam: Besting the some of the best
Last August, the Google Code Jam 2016 World Finals went down in New York City where the top 26 coders and programmers from all over the world faced off against each other in a series of timed algorithmic problems. Take note that before Google Code Jam 2016, Kevin was already a part of the elite 0.15% top coders. He put up a good fight at the onsite competition and beat 24 of the world's best programmers, only being bested by Gennady Korotkevich, the two-year reigning champ from Belarus.
"It took several years of training, creating problems, and joining contests regularly. When I started joining the Google Code Jam, I never even imagined getting into the finals, much less winning 2nd place. I think I got really lucky this year! But I would say luck is only 10% of it. The other 90% is pure dedication and hard work. It helped a lot that I was enjoying all the problem-solving and training, that I was able to spend my free-time doing all of it, and have fun doing so."
In his preparation for Code Jam 2017 and hopefully taking the top spot, Kevin says it's a different ball game. "Well, #2 is something, but #1 is something else. In this case, I would say you need 900% hard work and 1100% luck. I don't think there are any other secrets to it. You need to dedicate a lot of time and effort to it. The improvement is never noticeable day by day. One only notices it over several months, or even years, of training."
Programming—the good and the bad
For most of us, programming and coding is an alien language and that is frustrating in itself. What gets to Kevin are the resources at his disposal. "The tools required to do my job make things difficult. Many of the tools I use are not really well-built, but in most cases I have no choice. This makes my task 10 times harder than it should be."
But of course, there's a flipside to this too. "What excites me the most is the joy of being able to communicate interesting ideas to other people. Whenever I teach someone, it makes me very happy to I see in their eyes the understanding of the topic. I guess part of the reason I keep on trying to learn is that I want to be able to share more. Plus, a lot of the things one will learn from math and programming are just too interesting / clever not to share."
Words of wisdom from the master himself
If I could give my past self a piece of advice, I would tell myself to sleep at night and wake up in the morning. A lot of the problems I had could be fixed by something as simple as that. Oh, and also, learn to communicate better with your team members.
To anyone who wants to be a software engineer, or a contestant in a programming contest/hackathon, or even a problem-writer, my advice is to not be afraid of failing and being wrong. Many people I've met don't like to be wrong, so they tend to avoid things they don't understand right at the start. This does nothing but to hold them back.
This is especially true in a programming contest, where 90% of your time is spent thinking of the solutions, and only 10% to actually code them.