Practice Your Code-Fu: Programming Contests and Puzzles Online

by Jess Johnson in Fun Projects

This is a list of the best sites on the net for practicing your coding chops, showing off your programming skills, and competing for fame and fortune. Exercise your brain by untangling obfuscation, applying algorithms knowledge, growing your inner math geek, or playing a bit of code golf. These sites have exercises to build on and refine what you already know, or learn the language du jour.

Code Golf

When: Ongoing, new challenges posted sporadically

Languages: Perl, PHP, Python, Ruby

How it works: Based on the original perl golf, Code Golf allows you to show off your code-fu by solving coding problems using the least number of keystrokes. The challenges cover a nice mix of topics; example challenges are 99 Bottles of Beer, Tower of Hanoi, The Game of Life, and converting Roman numerals to base 10 integers.

How to win: Submit your code, and if it passes the challenge test cases, your entry is scored according to the number of characters. Win bragging rights by appearing on the overall leader board or the leader board for each problem.

UVa

UVa

When: New contests every month

Languages: C, Java, C++, Pascal

How it works: Each contest consists of anywhere between 3 and 10 problems. The problem sets demand quick thinking and a good computer science background with solid knowledge of algorithms, data structures, and mathematics. Common themes are palindromes, primes, and graphs. Check out the extensive contest archives for practice.

How to win: Contests are timed and usually last several hours, so have some coffee and brain food nearby. Submit code for each problem to the automatic tester when it’s finished. Contestants are ranked by the number of correct solutions and ties broken by the time taken to complete the challenge.

Mindcipher

When: Ongoing

Languages: Logic

How it works: Mindcipher is a social repository of the world’s greatest brain teasers, logical puzzles and mental challenges. No programming required, just logic and common sense. Some of the problems are taken from Google and Microsoft interviews so brush up your interview skills while having some fun. Categories of brain teasers are mathematics, physics, at the campfire, logical, riddles, lateral thinking, optical illusions, and general. Each puzzle is ranked according to difficulty and members can vote up favorite puzzles.

How to win: Answers are provided for each brain teaser, so there isn’t really any winning involved.

Project Euler

When: Ongoing

Languages: All languages

How it works: Each problem is designed to be solved by some combination of mathematical insight and algorithm design. Problems build on one another, getting progressively harder, so its a great way to keep your math skills fresh. After solving a problem you are given access to the forum containing algorithm discussion and solutions in a wide variety of languages, so Project Euler is a nice way to learn a new language.

How to win: Submit correct answers to the most recent 25 problems to earn a spot on the venerable Eulerians list. Or solve more than 200 puzzles to reach level 5.

TopCoder

When: Weekly rated competitions, and practice rooms that are always open

Languages: Java, C++, C#, Visual Basic

How it works: In TopCoder’s algorithm competitions, you have a set amount of time to complete the problem set (usually an hour). Code is normally developed inside TopCoder; there are multiple plugins that provide an IDE within your browser.

TC also holds "competitions" in bug fixing and component design, development, and assembly. These competitions are actually work developed on a speculative basis for companies who have outsourced development to TC, with "prizes" given to work with the best ratings.

How to win: For the algorithm competitions, develop, test, and submit solutions to the 3 problems in the set during the submission widow. After a 5 minute intermission you can view competitors’ code and challenge it by giving a test case that you believe will break the submission. Scoring is based on problem difficulty, time to complete the problem, results of the challenge round, and results of automated testing.

The International Obfuscated C Code Contest

When: Yearly (but currently on hiatus after 19 competitions)

Languages: C

How it works: Submit your most obfuscated ANSI C code. Each contest has a list of rules concerning code size, the build process, compile dependencies, etc. However, legal abuse of the rules is somewhat encouraged. Winners from previous years have all used nefariously tricky obfuscation.

How to win: Submissions are judged by a panel of judges based on how obfuscated the code is. Originality is important in both the type of obfuscation used and the purpose of the code.

# February 26, 2009 15 Comments

Discussion on
Practice Your Code-Fu: Programming Contests and Puzzles Online

by Jess Johnson in Fun Projects

15 Comments

  1. gravatar
    martind
    6:19 am UTC, 2009年02月27日
    You forgot http://www.spoj.pl/
  2. gravatar
    Programming Praxis
    7:02 am UTC, 2009年02月27日
    I just started a blog in which I will be posting "programming etudes" that provide practice "for the enjoyment and education of the savvy programmer." It will be updated weekly. Today's exercise is about generating text via a markov chain.
  3. gravatar
    Mike
    7:03 am UTC, 2009年02月27日
    Python Challenge is another good one.
  4. gravatar
    paket
    6:29 pm UTC, 2009年02月27日
    The IOCCC encourages and rewards bad coding practices. Should not be on this list.
  5. gravatar
    Aaraventin
    2:49 pm UTC, 2009年03月09日
    I've been coding for years and the problem on MindCipher.com has me stumped!!!!
  6. gravatar
    The Software Developer
    3:22 pm UTC, 2009年03月28日
    There are also some puzzles at the facebook website: http://www.facebook.com/careers/puzzles.php
  7. gravatar
    John Fredereich
    6:09 pm UTC, 2009年06月04日
    Really great post - I've been looking for info like this for awhile.
  8. gravatar
    Brian Bi
    2:40 pm UTC, 2009年07月09日
    The USACO training pages are pretty good but only C, C++, and Pascal are allowed.
  9. gravatar
    Jon
    6:27 am UTC, 2009年08月26日
    Mindcipher website link should be mindcipher.net, not .com
  10. gravatar
    Patricia
    10:52 am UTC, 2009年12月05日
    Great post, I'd Digg this.
  11. gravatar
    mohit
    10:14 am UTC, 2010年07月01日
    can anbody tell me any way to improve my algorith skill so that i can give solution to problem in website described above.
  12. gravatar
    dr-stupid
    3:11 am UTC, 2010年11月18日
    CodingBat is also really nice
  13. gravatar
    Agnes
    4:14 pm UTC, 2011年01月31日
    CoderCharts (http://codercharts.com) is the new kid on the block in online coding / programming contest. Right now we are holding our first contest in which there are 8 puzzles of various difficulty levels. Contestants can choose to use whatever language they feel like (we support quite a wide range of languages). The contest is going to end in 2 weeks. At the end of the contest, ther will be a lucky draw to give away an iPad. Hope all you coding enthusiasts give it a try.
  14. gravatar
    Snehasish Karmakar
    4:59 pm UTC, 2014年07月23日
  15. gravatar
    Snehasish Karmakar
    5:03 pm UTC, 2014年07月23日
    I meant "codechef.com" is also a good one.

Leave a reply

AltStyle によって変換されたページ (->オリジナル) /