Reading a lot of books about obscure areas of CS is great and all, but real skill (applied programming) comes down to practice. Pick challenging projects that force you to learn about new topics (i.e. low level networking, graphics, UI, REST API's, etc...). Make sure you take the time to write large (relatively) programs in different types of languages (object oriented, functional, etc...).
I always found the best way to learn and RETAIN the knowledge is to utilize it while reading some new topic. For me I purchase books on Amazon, watch Coursera and iTunesU courses, and then created a few applications or open source libraries based on this information.
I always found the best way to learn and RETAIN the knowledge is to utilize it while reading some new topic. For me I purchase books on Amazon, watch Coursera and iTunesU courses, and then created a few applications or open source libraries based on this information.