I'm told I'm a fairly accomplished autodidact. I play the piano well; I've won several competitions. I'm a decent chess player and I also program fairly well. Warning: Study is Hard Work. It's also the title of an excellent book...
Learn to read
I can't understate the importance of this point. I don't simply mean literacy, either, when I say "learn to read." Learn to break books down into their constituent parts, summarize paragraphs, pick out concepts, and reconstruct the author's argument. Better yet, learn to do this as you read. To learn how to do this, there is no better resource than Mortimer Adler's "How to Read a Book." Buy it immediately if you haven't read it.
Learn to read fast
I'm going to come out and say that a lot of "speed reading" courses are peddling snake oil. That being said, I think it's reasonable to read at a rate of up to 3000 words per minute, depending on the material and how thoroughly it's being read. While I wouldn't recommend the entire course to anyone, if you read slowly, pick up Evelyn Wood's "reading dynamics" for some ideas on how to speed up your reading.
Learn not to read
An important part of reading is not reading. Learn how to tell when an author is about to diverge on an irrelevant tangent. This requires some familiarity with the author. It's also worth knowing how to spot "useless" information at a glance. Caveat emptor, you will miss irritating gotchas by not reading material thoroughly. That being said, when you're trying to get a "big picture" view of a new idea, "not reading" is very helpful.
Also, learn when to put the book down and just go figure stuff out the old fashioned way.
Learn to write
While it might not seem to help your ability to learn, to write clearly, you must think clearly. Clear thinking is essential to learning thoroughly.
Favor rigor
Avoid fluff books. If you can, purchase the most punishing, and most rigorous treatment of the material at hand. You can read the other books for funsies. This may sound like self-flagellation. It's not. Reading fluffy material and thinking you "know" anything is how you really shoot yourself in the foot.
Don't underestimate pure technique
While concepts are ultimately what the journey of learning arrives at, pure technique is valuable in and of itself. If you're a pianist, learn scales, and then learn Liszt exercises -- also, Dohnanyi, Bartok, Brahms (Hanon is intentionally excluded.) Chess players should drill tactics. Programmers should do code katas, play code golf, refactor old code, or whatever does the trick. Programming is by far the most nebulous skill I've encountered in terms of defining pure technique. Personally, I work through "Structure and Interpretation of Computer Programs" on a yearly basis. Find what works for you.
Maxims are maximally awesome
Maxims are easily quoted bits of wisdom. I like them because they're easy to remember. Tangentially, my favorite book of maxims is Balthasar Gracian's "The Art of Worldly Wisdom." Easily quoted is easily remembered!
If you can't use your brain, use your hands
This is a bit of advice I give to my students all the time. Make your life easier (this doesn't mean cut corners.) For instance, when learning Emacs, I had cheatsheets pasted to my walls. I instruct each of my piano students to write notes in the score if they can't read them fast enough, or to circle frequently missed notes in red.
Repetition repetition repetition!
This bears repeating (pun intended.) Repetition is the key to mastering any complex skill. To make repetition more efficient, I use spaced repetition software. Anki is my preference, but SuperMemo also works well. I don't just use these programs for facts, I mix in math problems and chess tactics to keep my skills sharp.
What occurs in the real world is an epiphenomenon created by what occurs in the mind
Obviously, this is only meant in the context of skills. I'm not promoting mysticism. This is especially important with physical skills. Learning to cultivate a perfect mental image--that manifests all of the senses--of what is to be done, is a huge step on the road to mastery. To a lesser degree, this applies to symbolic skills. In programming, it's important to learn to reason independently of the syntax of a particular programming language.
Something is better than nothing
This ought to be obvious, but when faced with the decision to do something or nothing always do something. I work a full time job, so I can't always commit to honing each of my skills for hours a day. If I know my day is going to be busy, I make a small committment on the order of 15 minutes or so. Usually I end up being pleasantly surprised by how much time I actually have.
I hope this is helpful to someone out there. This is the short version of most of what I know about how to learn stuff.