Practice Problems
There has been some increasing attention to the idea of coding practice. Whether it’s to prepare for an interview, or to prove you’re the best, coding practice problems is a great way to hone you’re programming skills. Here are a few sites that provide free practice problems.
Code Chef
New programmers can gain valuable experience by solving one of the many available practice problems on Code Chef. After gaining some confidence on the practice problems, you can take on the challenge of one of their monthly contests. The Code Chef website boasts that they accept contest submissions in over 50 programming languages.
CodingBat
CodingBat has a variety of simple problems to solve. Ideal for a quick brain teaser, perhaps as a daily practice problem while preparing for exams or interviews. Problems can be solved and tested in the browser, with ideal solutions available for each problem. Available in Java and Python.
Google Code Jam
Code Jam was started by Google in 2003 as a way to identify potential job candidates. The Competition is algorithm-based with no preference for any particular programming language. In fact, the competition accepts submissions in any language provided that the compiler or interpreter is available for free.
All the contest problems back to 2008 are posted at their website for you to try. There is a short list of “choice” problems near the top of the page.
Top Coder
Top Coder is quite a bit different than than the other sites I’ve listed so far. Top Coder is sort of a listing of real problems that need to be solved. Many of the listed problems come with a monetary reward for completion.
Top is not just for programming. They have problems for Designers, Programmers, and the new field of Data Science. So if you’re looking for some experience working on real-world problems check out Top Coder.
Code Hunt
I stumbled upon Code Hunt on .Net Rocks! Episode 1065 and was instantly impressed. This project came out of Microsoft Research, and is much more powerful than it appears on the surface. Check out the podcast episode to hear all the technical details.
Basically though, Code Hunt is a Unit Test-based game. It can be played as C# or Java. You get a series of problems where you see the results of a set of test expectations, and you need to modify a function so that all the tests pass. This all runs in the browser and has a really polished look and feel, with audio and everything.
Code Hunt makes learning unit testing fun.
There are more out there!
There are many web sites dedicated to programming practice problems. I’ve just scratched the surface here, and in fact I’ve pushed this out a little less complete than I would have liked because it’s been a while since I posted on this blog. If you have any favourite sites please post them in the comments and I may add them to the article.