While perusing the archives of Łukasz Grzegorz Maciak’s blog Terminally Incoherent, I found this old post about using shell commands to generate a random password and I realized I needed some good programming exercises. I mean, I’m not particularly imaginative — I do best by running with a seed idea (which I often eventually modify beyond all recognition in the effort to fully understand how it works) — so it would be really nice to have a couple of ready-made challenges to solve, right?
And in my search for a few choice ideas, I stumbled upon this gem.
At the Sphere Online Judge (a.k.a. SPOJ), not only are there a huge number of programming exercises (something like 2100 pages when converted to a PDF booklet), but I can also see how I rate against other programmers, submit multiple solutions, view my old solutions, find tips on the forums, enter contests, even submit my own problems for others to solve!
Some problems are simple yes/no answers, while others are graded by hand. Perhaps the coolest feature of SPOJ is that you can submit your solutions in any of nearly fifty different languages (up to and including bash scripts!), making it an invaluable tool for learning new programming languages, since you can directly compare how different languages arrive at a similar solution.