You could try code kata (
http://codekata.pragprog.com/) or koans, (just search Google for your language + 'koans') but those are really only a fun way to work on a specific, easily-tested skill, that also happens to be the very first a novice learns, that's implementation. By all means, if they help, knock yourself out.
The thing about programming is that to get better at it, you need to expand the way you think about abstraction. You have to think not just in terms of how you will maintain what you wrote, but how the end user will use it and how the domain might change.
Any novice can hack together something that will work for one specific purpose, it takes someone skilled to pull useful abstractions out from that single-use code and turn it into something flexible enough that even years from now another novice will be able to pick it back up and understand it enough to be able to reuse it.
All that is to say is, any purported exercise isn't going to get your brain thinking the way it needs to. They're only going to take you to the end of the very first step of mastery, that's in "getting the computer to do what you want it to".