Improving programming by solving puzzles.