We interviewed two people who participate in Topcoder Short Round Matches and achieved high results (>= 89% percentile) in different years:
–Tomasz Idziaszek aka monsoon, a veteran competitor. His activity dates back to 2004-2008, but he still occasionally play SRMs;
–Ivan Žufić aka falanga has been participating in SRMs for the last 4 years on a regular basis, made quite a climb in his rating graph back in 2015.
Please introduce yourself: where are you from, what do you do for a living, etc.
Ivan: Hi, my name is Ivan, I live in Croatia and I’m studying mathematics at University of Zagreb.
Tomasz: My name is Tomasz Idziaszek, I have graduated from the University of Warsaw with PhD in computer science, but now I live in Wroclaw.
I have been involved with competitive programming community since 2002, and currently I work on different projects related to programming competitions as an organizer, popularizer, coach and (if time allows) participant. I was the author and editor of "Looking for the Challenge?" book which second edition has been released recently. You can find more about me on my new website algonotes.com.
What do you do in your spare time (hobbies maybe)?
Ivan: When I’m not occupied with math or programming, I like to play bridge, some computer games, and also to play the piano.
Tomasz: I like to play catchy tunes on the piano (mostly film music from composers like Vangelis and Hans Zimmer) and listen to Polish and British radio dramas (especially works from BBC radio). Three years ago my wife have introduced me to long-distance running, and to stay fit we try to do it on a regular basis (last year we have finished a marathon and now we are preparing for a triathlon).
What programming language do you use? What language (or technology stack) do you consider “the best”?
Ivan: I usually code in C++. Which language is "the best" mainly depends on what you need to do. For competitive programming, C++ is the best in most cases. However, language is not the most important thing, it’s the programmer who’s using it.
Tomasz: For programming competitions I use only C++ (but of course without any fancy stuff,
so it’s just C with some containers from standard library), since it’s the most widespread and gives you the low-level control over computer resources.
For other projects I mostly use Python, since I really like its readability and big amount of libraries. I think it’s perfect for fast prototyping and quick scripts.
How did you find out about Topcoder?
Ivan: A friend told me.
Tomasz: In 2003 a team from the University of Warsaw won the ACM-ICPC World Finals.
Everyone wanted to be like these guys, so exceptionally many people participated in the next-year qualifications at the university.
One of the member of this team, tomek, when asked how to train, mentioned Topcoder site, so I decided to give it a try. I got additional motivational boost a couple of months later, when tomek won the first place in 2003 Topcoder Open. I trained hard the following year (which in Poland needed some dedication, since I had to woke up at 3am to participate in most SRMs). But it payed off: in 2004 and 2005 I had advanced to Google Code Jam (then played in Topcoder arena), Topcoder Open, Topcoder Collegiate Challenge and the ACM-ICPC World Finals.
What would you advise to people who want to start participating at Topcoder competitions?
Ivan: Just do it. I mean, don’t waste time thinking if you’re good enough now or should you improve first, just pick the first round when you’re free and do it. I’d suggest solving some easy tasks from previous rounds to get yourself familiar with the system though.
What motivates/motivated you to take part in Topcoder competitions?
Ivan: Topcoder competitions often have quite interesting problems. It was the most important thing for me back when I started, and it still is.
Tomasz: I really like solving problems. It’s so much fun.
How do Topcoder competitions (and competitive programming in general) help you in real life?
Ivan: The biggest influence of competitive programming is on one’s way of thinking. It trains you to see both the big picture and small details in the same time, foresee difficulties in advance, and act accordingly. Furthermore, it helps you to stay calm and concentrated under high time pressure. Topcoder competitions are especially good at this, because coding phase lasts for only 75 minutes.
Tomasz: One thing I really think competitive programming gives you is the ability to confidently write correct code under pressure of time. Which in the long run builds your confidence which may help you in different aspects of life.
What is your favourite Topcoder problem?
Ivan: There are many interesting problems, one recent which I liked a lot was HeroicSchedule.
Tomasz: It’s hard for me to pick a particular problem, but I really like dynamic programming problems (the more dimensions, the better).
How can you become a successful Topcoder algorithmic competitor?
Ivan: Except the standard "solve a lot of Topcoder problems" answer, I’d suggest solving a lot of combinatorial problems (from math competitions, not programming). They force you to think outside of the box and truly understand what you’re doing, thus developing your problem-solving creativity, which is essential in being a successful Topcoder competitor.
Tomasz: I won’t be original when I say that the most important thing is practice. The best results I have achieved were mostly due to fact that I have worked hard on solving problems. Of course you need to solve various kinds of problems, and learn new things, but since variety of Topcoder tasks is so big, I think that strategy of solving archive SRMs one by one and reading their editorials is quite a good one.
What is the best thing about Topcoder?
Ivan: Interesting problems.
Tomasz: I think it’s the community of really talented people. I remember that I immensely enjoyed reading posts on Round Tables (Topcoder forums). I think one of the key to success is listening to your community.