Code Jam is an annual programming competition in which professional and student programmers are asked to solve complex algorithmic challenges in a limited amount of time, using the programming language of their choice. This year, Google engineers based in the Tokyo office came together as the Google Code Jam Japan team to create a unique set of problems and prepare a fully internationalized contest UI, all in Japanese. We sat down with some of the GCJ Japan team members, Frank Chu, Shuhei Takahashi, Pascal (Koichi) Suematsu and Yusuke Konishi, to find out more.
Code Jam Japan—how did it come about?
Code Jam Japan—how did it come about?
Frank: I am a member of the original GCJ team based in MTV. I requested to work in Tokyo because I always had a lot of interest in Japan. Knowing from past experience that there were a lot of Code Jam finalists now working in the Tokyo office, I thought it would be a good idea to start a Code Jam team in Tokyo.
Shuhei: I participated in the Code Jam Finals in 2006, which is also the reason why I believe I am at Google now. While I know that there are a lot of Japanese participants in Code Jam, I know that there is also a large pool of potential participants who can’t take part in it due to language barriers. I saw this as the perfect opportunity to give those programmers a new opportunity.
Koichi: Frank was working in the Tokyo office, and when he proposed the new idea of creating a localized Code Jam team, I fully supported it.
Yusuke: I believe that there is a large presence of programmers in Japan, but most of them are not visible in the world of programming competitions. This is most likely due to the fact that most programming competitions are run in English. This was a great way to reach out to those non-English speaking programmers.
What were some of the challenges you faced while preparing GCJ Japan?
Frank: The biggest challenge for any GCJ/programming contest is coming up with the problems. GCJ has very high standards for problems (i.e., you need many sample solutions, input generators, etc). It involves a lot of work and a lot of people.
Shuhei: Creating the problems in Japanese was very difficult. Each time the problem had to be changed or edited, we had make sure that the Japanese translation was as accurate as possible.
Koichi: The contest system was only in English, so it was challenging to create a localized UI in Japanese.
Yusuke: It was difficult creating problems while ensuring that the level of the language was not too difficult for the participants. It was hard to reach out to a large number of Japanese programmers while making sure that everyone would be satisfied with the level of the problems and enjoy the competition.
Did you learn anything new by being a part of the GCJ Japan team?
Shuhei: Although I have participated in many programming competitions, it was my first time actually creating a system that thousands of programmers can use it at once. A small mistake can affect the entire competition. I definitely learned about the challenges of managing such large systems and projects at this scale.
Koichi: I learned how to fix problems in the system while the competition was actually taking place. I definitely learned a lot from Frank.
The Google Code Jam Japan team at work
What are some of your most memorable moments from GCJ?
Frank: Working with the team, brainstorming point systems and those hours of long discussions were memorable.
Shuhei: When all of the problems were localized and ready for testing, we created a mini contest for Google engineers in the Tokyo office. The purpose of this contest wasn’t to have everyone solve the problems, but to have them find as many bugs in the system as possible. The top ten Googlers to find the greatest number of bugs would win a prize. But if there were no bugs, then the GCJ Japan team would award themselves. Results? There were many bugs.
Pascal: Since Frank wasn’t very good at reading Japanese, we secretly planted his name in every problem direction (like “Frank is a King. He is facing a problem. Please help him by solving this problem.”) But when I arrived at the office on the day of the final round, all of it was replaced with “Pascal”. (Note: you can view problem list on the team’s website.)
Did you have any initial concerns about running the competition?
Frank: I was concerned that there would not be enough demand for a localized GCJ Japan competition. But the turnout was more than I could have anticipated!
Shuhei: I wasn’t experienced when it came to creating a localized competition in Japanese. Because there was so much to localize for the contest itself, I was worried that we would not be able to have everything ready in time.
Pascal: I was worried about the number of participants for the competition. If there were a lot of participants, I wasn’t sure how well the system would hold, but it would have been disappointing if there weren’t that many participants for the competition.
Yusuke: Making sure that the problems were easy to understand, and that there was a fair playing field for everyone participating in the competition.
What would you do differently next time around?
Shuhei: This year’s GCJ Japan had both experienced and new participants in the world of PCs. I want to be able to reach out to more of those participants who have not yet had the chance to experience programming competitions and show them how fun it can be. I want to continue to provide this opportunity to these new programmers.
Pascal: I want to create a contest that focuses on other levels, specifically for young programmers in elementary, junior high and high schools. I want to help them have fun in programming and computer science. Maybe we can create a completely new programming language (or a puzzle) that nobody knows about yet. We should perhaps even create a new awarding system, where the top ten programmers receive special prizes.
Yusuke: I want to provide more than just a system where programmers can compete to solve problems. Since a lot of people participated in the competition this year, I want to do something where we don’t just give them the problems, but we also show them how these problems can be solved, and have them understand the “fun” aspect of solving these problems. Also, I want to use the opportunity to show them that the solutions can be used in several different ways, rather than for just solving one problem; I want to demonstrate the “usefulness” of these algorithms.
What does Code Jam Japan mean to you?
Frank: In college, it really helped me to make a lot of friends. I met so many people with similar interests, and many of them work at Google today! I learned so much from solving problems, and I want to give back to the community that gave me so much. GCJ gave me the opportunity to shine and opened many doors for me.
Shuhei: GCJ was a doorway to learning more about Google, and becoming an integral part of it. GCJ was a lot of fun, and it even provided me with my first opportunity to travel outside of Japan by myself. That year, I was the only participant who went to the finals from Japan. GCJ gave me that new and unique experience that I otherwise would not have had. Now I believe that GCJ has given me the background and knowledge to be able to create the same opportunity for other programmers out there.
Pascal: Code Jam, for me, is a place where you can make friends, compete with friends, improve programming skills and get a deeper understanding of computer science as whole. It’s also a fun way of collecting programming contest T-shirts, of course.
Yusuke: It’s like a festival in that it brings together all of these amazing and talented programmers from all over the world into one place.
Shuhei: GCJ was a doorway to learning more about Google, and becoming an integral part of it. GCJ was a lot of fun, and it even provided me with my first opportunity to travel outside of Japan by myself. That year, I was the only participant who went to the finals from Japan. GCJ gave me that new and unique experience that I otherwise would not have had. Now I believe that GCJ has given me the background and knowledge to be able to create the same opportunity for other programmers out there.
Pascal: Code Jam, for me, is a place where you can make friends, compete with friends, improve programming skills and get a deeper understanding of computer science as whole. It’s also a fun way of collecting programming contest T-shirts, of course.
Yusuke: It’s like a festival in that it brings together all of these amazing and talented programmers from all over the world into one place.
Add a comment