Be sure to check out Pierce's new book, Software Foundations[0], which is available for free online. Learning how to use Coq is quite an amazing experience.
Now there's something I've been wanting to self-study but haven't found a good intro to. Thanks! (I'm an academic, but eventually they don't let you keep attending school, so you have to learn the rest on your own, and some of the same problems arise...)
I wonder if some better way of discovering books suitable for self-study would solve at least a part of the problem. I find a lot of textbooks are aimed mainly at being used as a resource in a course, which isn't quite the same use-case. Others are more of a compendium or reference, which also isn't the same thing, e.g. you could learn algorithms from either CLRS or Knuth, but I don't think they'd be engaging as introductions. So far my method is to ask around and make notes when people suggest things in threads like this one.
An even rarer genre of books is the high-level, creatively written book that lets you understand why an area is interesting in the first place, but which still digs enough into the concepts that you learn something about it. Sort of the textual equivalent of the dazzling lecturers you occasionally run across in universities (alas, not most of them, myself included, though I do try to provide students with a high-level map of what's going on in an area). There are some good books in physics, which attracts a lot of good popular writing leaning toward the harder-science end of the spectrum, but not as much elsewhere. In CS, only Hofstadter's Gödel, Escher, Bach comes to mind, though I'm sure I'm overlooking something.
[0] http://www.seas.upenn.edu/~cis500/current/index.html