One interesting strategy is to:
- Buy/find a programming book you're interested in.
- As your read, create an exercise for that chapter.
- Code the exercise that you created before moving on.
- Rinse and repeat until you've finished the book.
By creating the exercise and solving it, you'll learn better than if you just read the chapter. Remember that many programmers are lazy and are unwilling to put this kind of effort. You'll be light years ahead of your peers as you apply yourself.