Every programmer should try out Project Euler. For those unfamiliar, it is a series of programming challenges aimed at pushing the limits of your skill in any programming language. It is probably the most pure and language agnostic of any such challenge. 'Purity' in this context relates to the mathematical aspects. Many of the problems can be solved without a computer. 'Agnostic' refers to the complete lack of required interfaces. None of the programs require file access, networking or graphical output. If you are willing to hard code the initial conditions, one can get away without using input. Basic mathematical operations and the ability to report a result, common to all languages, makes it a fair test to any general purpose language. The puzzles are addictive. There are all ranges of solutions, from crude brute force to efficient elegance. Anything can be brute forced, but it is considered unfair if your program requires more than a minute to complete.
These challenges will gnaw at you. Maybe you want to clear a puzzle in the top 1%. Maybe to complete a solid stretch of 30 puzzles. Maybe to solve every puzzle relating to the prime numbers. Maybe there is a core set of puzzles to implement in any unfamiliar language. Maybe try solving the puzzles on the lowest end hardware available.
Whatever it is, you'll quickly hit a brick wall the first moment you don't have net access. Thinking ahead, you've already got a wget-ed mirror. But this is a mess of several hundred webpages and still depends on a browser. The sheer waste and inefficiency of this drove me up the wall. I threw together a little script to compile every problem together in a single flat text file, adding the attachments in a zip file.
Within my knowledge and googlefoo, no one has ever compiled a convenient offline copy of Project Euler. The conversion process goes to some lengths to ensure a highly readable copy. For example, multiplication, less than and greater than are not represented by ascii characters, but rather images. These images are automatically detected and converted to their ascii equivalents.
Every few months some of the problems change slightly. Typically these are increases in the problem's ceiling, to follow the advances in computer power. I'll keep this mirror up to date.
Project Euler is protected under Attribution-Non-Commercial-Share Alike 2.0 UK: England & Wales.