Read. And I don't just mean books (although they are a great place to start). Read technical blogs, read documentation, read other people's code. Seek out challenging reads that seem overly ambitious and use them to find out what your unknown-unknowns are, then use that knowledge to steer your learning.