Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


There Must be Contest

We improve ourselves by victories over ourselves. There must be contest, and we must win.

—Edward Gibbon

Have you ever competed in a programming contest? If not, you must have deliberately rejected the opportunity, because there is an amazing number and variety of competitions for programmers—more, it seems, than for just about any other (nonsports) professional.

If you haven't competed, you may not be aware that it's possible to make a six-figure income purely from contests—or that there are companies whose entire business model consists of running programming contests as the sole means of producing commercial software. There's a whole subculture of competitive software development within the industry, and it has many parallels with professional sports. (Except that nobody in competitive programming is talking about banning the use of performance-enhancing caffeinated beverages.)

This is not to suggest that programming contests are all just for pros: There are also contests specifically intended for college programmers and for high school students. The ACM International Collegiate Programming Contest is in its 32nd (!) year and just finished its World Finals in Banff, Alberta.

There are, in fact, all kinds of contests: regional and national and international contests, contests where you may compete in teams, contests where team programming is a requirement, and contests for solitary coders. There are 90-minute or five-hour dashes, 24-hour codeathons, month-long competitions, and continuous contests.

The rules and problems differ greatly, but the BME International 24-hour Programming Contest, put on by the Electrical Engineering Students' Hungarian Association and the Karoly Simonyi College for Advanced Studies, can serve as an example of one kind of contest. This event winnows out hundreds of participants from dozens of countries in an online challenge, reducing the field to 27 competitors (plus the three best from the previous year) who make their way to Budapest, where they spend 24 hours from 9:00am to 9:00am coding for glory and 5000 euros in prizes. There's even a book about the contest, including the problem sets from the first five years. The problem sets are definitely challenging: One year the teams had to design an integrated circuit chip design program and also create an AI agent that can play a simple strategy game against another AI agent. Other challenges involve controlling robots, managing virtual worlds, and cryptography. This year, the onsite competition took place May 2-4.

Often the choice of language is up to you, but not always. Pick a platform or a language and there's a contest for users of that platform or language: Java, C++, Ruby, Haskell, Mathematica. For a few years there was a competition for Eiffel programmers called the Eiffel Class Struggle, but I think that's over. You can compete to solve multicore or mobile problems, artificial life or fractal coding or robotics challenges, or participate in a Super Mario contest. I'm not sure what that last one is.

If you feel like brushing the cobwebs off your Apple II chops, you can easily find an Apple II competition. If you get bit by that "running light without overbyte" bug, there's a contest in which your entry must solve a set problem in no more than 1K of 6502 code. And 4K of Java. Dr. Dobb's has put on a variety of programming contests over the years: Currently, the Dr. Dobb's Challenge has a prize pool of $10,000.

Some contests are just not all that serious—like the International Obfuscated C Code Contest. The fact that the rules contain deliberate typos tells you a lot about that competition, which was jointly inspired by the Bulwer-Lytton fiction contest and some execrable examples of C code.

Then there's OMGWTF, the "Olympiad of Misguided Geeks at Worse Than Failure Programming Contest," where the goal is to solve a simple problem in the most obscenely convoluted way possible.

More seriously, there's the Loebner Prize competition. Win the ultimate challenge there and you'll get $100,000, a gold medal, and considerable fame—because the ultimate challenge-winning code merely has to pass the Turing Test. Programmers Heaven holds weekly contests. In short, there is no lack of opportunities to test or flaunt your programming skills.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.