As someone who has semi-recently started getting back into programming, this is a big deal for me. Starting with Ruby (reading The Well Grounded Rubyist) -- I read the book, felt like I understood a lot of it well except some of the more advanced stuff, but was stumped when considering my own practice problems and how to solve them.
Providing small, challenging problems is a very valuable resource. I'm currently reading An Introduction to Programming in Java (as preparation for the Princeton Algorithms course on Coursera). While the book may not be the best Java book, each section has 40+ programming exercises. Sometimes the exercises are boring, but I do most of them anyway because they are in themselves a learning exercise.