This is true of languages and libraries, but learning entirely new concepts is harder. First of all, one has to figure out what to learn, and then actually learn it.
If you just start reading some of the code-bases you use (libraries, compilers, operating systems, etc) to find out how they do the things they do, you'll quickly figure out what you need to learn—it'll feel like having absolutely no idea how the code you're looking at works.
That really hits the nail on the head. I am currently trying to learn chemistry, and trying to figure out the what to learn part has been extremely hard. Even trying to get a handle on the correct terminology so that you can then search online for more information was hard enough. I am trying a two-pronged attack on this problem. First I am reading Asimov's short history of chemistry, to try to get a basic understanding of the field. Second, I am trying a couple of projects where I think chemistry could be useful, and so by exploration I hope to also get a handle on some aspects of the field.