Topcoder is the platform organizing the most serious algorithmic competitions that I have participated in (I am referring to the Algorithm and Marathon tracks) – and I participated in a lot of them 🙂 These contests are, however, quite “brutal”. In Marathon contests someone can always submit a much better solution at any time, so one can't afford to sit comfortably on an apparently good solution. Algorithm track competitions are “brutal” because of the great time pressure (very short contests) and the need to consider all corner cases in order to not fail system tests. However, this is part of the experience which keeps getting me to participate again and again 🙂
Hard to name just one thing, as I consider “career” to be across multiple domains. From a job perspective, I am currently a Senior Software Engineer at Google Switzerland, which I consider a pretty nice achievement. From an academic perspective, I have a PhD degree in Computer Science and I also worked as a Post-doc, which allowed me to tackle some interesting research problems. As a competitive programmer, I am happy to say that qualifying to the TCO Marathon Finals is one of the achievements I am most proud of (because of the tough competition). Besides that, winning medals in the ACM ICPC World Finals and in the International Olympiad in Informatics, or being the top ranked long contest competitor on the Codechef platform for more than 1 year, or being “red” in the Algorithm track of Topcoder and on Codeforces are some of my other achievements.
– other programming competitions 🙂
– reading books (usually on the way to work and back)
– board games
Learn from the top competitors. After every contest (Algorithm or Marathon) read the source codes of the top competitors and try to understand what they did there. It will be hard and you won't understand all of it, but you may at least find some general ideas which will end up being useful for you in future competitions.
I heard about Topcoder around 2005, when some of my friends were frequently competing in Algorithm competitions and kept telling me to participate, too. But I somehow ignored their suggestions at the time 🙂 Then, in 2010, someone showed me how to use some Topcoder Arena plugins in order to be able to easily submit my code and run it on the example tests. However, I only participated in my first Topcoder Algorithm competition in mid 2012. Since then, I have been rather actively participating in Topcoder SRMs and TCO (Algorithm track) until mid 2014. I managed to become “red” early on, but I realized that it was very difficult for me to be one of the top guys in the Algorithm track (if not impossible 🙂 ), so I now kind of stopped participating in SRMs. Since the end of 2012 I started participating in Codechef long contests (they are 10 days long), which feature 9 standard algorithmic problems and 1 optimization problem (similar to TCO Marathon problems). I initially participated in such contests because of the long duration (which made everything less stressful than Topcoder SRMs), but I realized that I enjoyed solving optimization problems (and that I was quite good at that). I learned a lot from Topcoder member ACRush (by reading his source code), who was also participating in those contests and was winning them almost every time 🙂 Since I was becoming rather successful in Codechef contests, a friend of mine asked me if I ever participated in Topcoder Marathon matches. I had never heard of the Marathon track until then, so in 2013 I decided to get the feeling of these matches by participating in the TCO qualification rounds. I only spent 2-3 days in each round. The competition was very tough and it seemed to me that 2 weeks is a long time to focus on a single problem. And that if I didn't allocate the 2 weeks for working on the problem, then it would be very difficult to obtain good results (by “allocate” I mean working on the problem after work and during the week-ends). Because of this I didn't participate in any TCO 2014 Marathon round (I couldn't allocate a full 2 week interval in any round because of overlaps with other activities). I decided to give it another shot in 2015, where I could allocate (after work and during week-ends) the required 2 week interval for round 1 and an 11-day interval (minus the last 3 days) for round 3 (luckily 11 days + a few hours during the last week-end of round 3 were enough to qualify to the TCO Marathon Finals).