Yeah, one nice thing about the Modern Age (like 2011, late 2010) is that you can actually play with these concepts in a reasonable way.
The flaw with traditional CS book learnin' is that it doesn't engage much of your brain. Maybe CS books do better than math books in having at least some pictures to engage the powerful visual centers of your brain... but working with your hands is still missing if you're only reading about stuff. I think it leads to better/faster understanding if you add a sort of muscular component.
I just saw a picture of someone flipping pictures WITHIN sourcecode: http://weblogs.java.net/blog/cayhorstmann/archive/2011/03/22/having-racket-pictures-and-continuations
Turns out with Racket (a lisp), you get immediate picture and muscular feedback... scroll down this quick intro, where you build pictures: http://docs.racket-lang.org/quick/
As God intended — interactively. Not writing some turgid pictureless novel and then "running it". Nor writing some fibonacci sequence where you hand it some number and it spits out another equally dull one, and you're left to wonder how this could be intellectually enjoyable for years.
All the best, Tj