Sometimes you need to read up on a problem; other times you need to find some problems to work on–as well as the possibility of finding the answers (or at least some help finding those answers). Unlike the resources I’ve been listing in the past week or so here, these websites give you more active help in learning to program.
This post started out from a post on Reddit, Cool site to practice coding with. Decent sized problem sets with test cases, and it lets you know if you failed. The original poster pointed to the first site in the list below, but as so often happens, there is a lot more information provided in the comments. Here’s the list:
- CodingBat offers “live coding problems”, with solutions. The brainchild of Nick Parlante, a lecturer at Stanford, CodingBat currently has problems in Java and Python. Nick is also the author of another one of my favorite sites, Google’s Python Class.
- CodingQuestions.net is pretty new–and as of today, it only has four actual questions, but it could be an interesting place to find new programming challenges.
- UVa Online Judge has a lot of well-defined, and helpfully described programming problems, and you can submit your code for judging. The site seems to be oriented toward competitive programming, though I’m not really clear on how that all works; what’s most important to me is that there are those nicely defined programming questions, many of which seem to be well within reach of even novice programmers.
- codeboff.in is mostly intended to be a resource for employers for testing potential employees, to see if they actually do know how to code. So far, just C/C++, but they intend to add more languages. What makes it relevant is that they also offer some free, timed, coding challenges for all comers.
- Sphere Online Judge is another judging site, based in Poland, and offering thousands of problems in 44 different programming languages.
- The Python Challenge looks to be one of the more interesting challenges: it’s a game. You advance from level to level by producing bits of (allegedly) simple Python code. Haven’t started yet, but it looks intriguing.
That’s it for now; I’ll have to keep working on trying all these things out to see how they actually work.