Take the 2-minute tour ×

I would like to test my C++ programming skill level by competing with others. What programming contests are there for C++?

share|improve this question
If you want to test your C++ skill level, try source-diving boost :). –  Kornel Kisielewicz Dec 29 '09 at 3:16

12 Answers 12

up vote 10 down vote accepted

There's Google Code Jam, but only once a year; TopCoder, with many more contests; and others listed here.

share|improve this answer

Contests won't help you with learning dark corners of a language. Most of them are about speed and you can only achieve speed if you trim down your usage of a language to a bare stable minimum. You don't want to spend hours trying to figure out why your clever templates could not be compiled, you don't want to write readable and understandable code as it slows you down, you don't want to test it, you just want to be done with it as quickly as possible.

If your goal is to learn a language, contests are utterly wrong way to do it.

Read sources of boost and STL, try to copy and modify some of the code from them, that is a good way.

share|improve this answer
Slight caveat: boost and STL (but you really mean stdlib, right?) implementations have special constraints not present when you write a program or application. The standard library must only use certain identifiers, and at least one vendor I've seen shipped a purposefully obfuscated stdlib. Boost must conform to a wide variety of compilers, many of which a single developer will never see. The same applies to frameworks that maintain backwards compatibility---you don't need that in new projects. (OTGH, if you are writing a library that must work with 40 different compilers, copy Boost.) –  Roger Pate Dec 29 '09 at 3:46
It's good to know those tricks Boost are using anyway, they might come handy one day. Understanding them is a good exercise. And you rarely can really understand the trick without taking it apart, which means copying and modifying it until it breaks :) –  vava Dec 29 '09 at 4:07
"Contests won't help you with learning dark corners of a language." Thanks in large part to the IOCCC, I know more about the dark corners of the C language than any sane person could know. It gets dark in there. Oh so dark. –  Jason Orendorff Sep 24 '10 at 22:27

There's little point in testing C++ skill level, as ultimately it would not be about thinking, but either be very simple, or be about knowing the little pitfalls in differences between compiler implementations, or pitfalls in the standard itself.

To test one's knowledge about C++, the easiest way is to get involved in some hardcore C++ project like boost, or C++0x standard development.

To test your skills and algorithmic knowledge in general, as a thinking programmer, you should try contests like the ACM programming contest or TopCoder.

share|improve this answer
+1 for contests like TopCoder testing your algorithmic knowledge (instead of just testing "skill in C++"). –  Roger Pate Dec 29 '09 at 4:02
Thanks, my English isn't good enough, and I couldn't find a proper word for "thinking in programming", so if you excuse me I'll shamelessly edit it in :> –  Kornel Kisielewicz Dec 29 '09 at 4:06

There are some:

  1. Topcoder probably is best for you. It has algorithmic programming contests very often, the competitors there are world class. It also has a general purpose component programming, e.g. designing/implementing a XML processing library etc. Topcoder awards money to the best few contestants. Best of the best, you can see others' source code!

  2. Sphere Online Judge. and many others: acm.timurs.ru, acm.uva.es, acm.pku.edu.cn etc. These are only for algorithmic skills training. You can have a lot of fun there :)

share|improve this answer

UVa Online Judge has a lot of contests running throughout the year and they have a large userbase for nice competition. "World Finals Warmup" contests will be coming up in January. The site also has nearly 3 000 problems for you to solve, lots of fun and very challenging.

share|improve this answer

You can pass c++ test on brainbench.com, for example. Some type of contest too...

share|improve this answer

I participated in one of David Bolton's program challenges once. He posts a new one every month or so.

share|improve this answer

I wonder, that nobody mentioned Codechef. As others already stated, a coding competition might not be the optimal way to test your skill level, but Codechef is a slightly different case.

They offer monthly programming competitions with multiple assignments. You can enter in almost any language and you have 1 week of time. So there is no rush, but even then, the competitions will rather test your logical thinking and problem solving abilities, than your knowledge of the C++ language. (Though, one can learn much from reading the source code of other entries.)

However, I can only encourage everybody to enter at least once - programming is fun! =D

share|improve this answer

If you are only into C programming, there is always the IOCCC

share|improve this answer

about.com's C/C++ section has a programming challenge that is ongoing. Here's the latest: http://cplus.about.com/od/programmingchallenges/a/challenge30.htm

share|improve this answer

You can try High School Programming League, but it might be a little frustrating as the teenagers sometimes appear to be extremely good!

share|improve this answer

codingame.com also run monthly competitions and they have an ongoing training session (their online IDE supports several languages including C++)

share|improve this answer

Your Answer


