I try to work through hard technical material. Personally, I enjoy both technical books and MIT OCW lectures. There were a number of courses in school that I was interested in and didn't have time for, so I've been looking at the online equivalents.
"Working through" means doing exercises and projects. Reading or watching material without applying it doesn't help.
I aim to spend an hour a day on this. It doesn't always happen, but it's a reasonable enough goal that I can find time for it most days. Occasionally, I'll take a full day to study on the weekend.
Some specific recommendations:
books:
SICP (https://mitpress.mit.edu/sicp/)
K&R
The Art of Computer Programming (if you have lots of time)
On Lisp (http://www.paulgraham.com/onlisp.html)
Learn you a Haskell
Types and Programming Languages
CLRS
The Dragon Book (Compilers, http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811)
OCW Courses:
6.172 (High performance engineering)
6.046 (Algorithms)
This is just what I've been interested in and is by no means comprehensive. Outside of CS, math is great to learn if you haven't studied it formally.I've found it's best to pick a topic you know enough about to be motivated to study it, but haven't done serious work in.