One of the things I usually do is immersing myself in a topic. Buying a couple of books on a subject and going from one to the next. Starting with a more intro book and progressing to more advanced materials creates a very natural feeling learning curve. Since starting this my overall retention has improved greatly.
In-between the immersion cycles I read more general CS type books. It creates a nice mix of topical knowledge and theoretical knowledge.
Frameworks change at a much more rapid pace than the underlying languages. With ebooks you can usually find more up to date content than buying print books. Looking at the published date before buying is important. In the python space there are a lot of current books on interesting topics. There does seem to be a serious lack of Django titles that are current.
I buy most of my books directly from the publishers websites. Between informit.com and orally.com there is always some sort of 50% off ebooks sale going on. I have bought ~45 books this year and paid full price for 3 or 4 of them.