As a guy with over a decade of programming experience and a good mathematical background, I occasionally want to throw all the other aspects of software engineering out of the window and just program stuff. Here are two sites I visit to get my quick programming fix.
TopCoder is a site that holds competitions for various phases of software development, from Architecture to Bug Fixing. Back in the day, however, it used to hold only one type of tournament: Algorithm Competitions. In this type of tournament, programmers are given 3 programming challenges where they must code functions in Java, C++, C# or Visual Basic .NET as fast as they can.
Typical Algorithm Single Round Matches or Marathon Matches are sometimes too complicated to have any practical use in the workplace. Fortunately, they’ve added a simpler version of the Algorithm competitions: the High School division. Easy and Medium problems in the TCHS are so easy that a competent programmer should only take around 15 minutes to solve them.
Of course, I’m not suggesting that you compete in the TCHS. The “Arena Applet” (where competitors code and submit their programs) have Practice Rooms where users can try the problems from the previous competitions. It also provides features that are available in tournaments like “challenging”, where you try to provide test cases to other people’s functions hoping they fail, and “system tests”, where you run predefined test cases created by the organizers on your function.
Project Euler is a more mathematically inclined programming challenge site. Unlike TopCoder, it does not worry about automated tests or challenges. Instead, you’re just given a problem and you just need to provide the final solution.
That’s right, you aren’t limited to using computer programs for solving the problems. I even solved problem 79 via pen and paper. 😀