Note: This article underwent a significant revision on 5/28/2015. Thank you to estimator for all your feedback.
The most important meta-skill that anyone can learn is how to learn skills. With practice, you learn how to pick up new skills as they are needed, which is infinitely (quite literally) more efficient than trying to learn each skill individually in advance.
There are two basic premises that this method relies on:
A skill can be eventually be broken down into a series of trivial sub-skills.
The skill and its sub-skills follows a Pareto distribution.
The Pareto principle states that typically, 80% of a system's effects can be linked to 20% of their causes. Or in this case, learning 20% of the trivial sub-skills will make you 80% proficient at the overall skill. Empirically, many systems, both artificial and natural have been proven to follow this distribution, and skills are no exception. This guide is intended to teach you how to identify that 20%.
What lies below this is almost 1,000 words to describe something that's ultimately about condensing things and taking shortcuts. So, to be true to this attitude, I'll start with the "20% version", and those so inclined can continue to read the other 80%.
Break the skill you want to learn into several sub-skills.
For each sub-skill, ask "Is this trivial?" If so, add that to your "trivial list". If not, repeat steps 1-2 for each sub-skill. Continue to iterate until all you have left is a list of trivial sub-skills.
For each trivial sub-skill, ask, "How can this go wrong, and what can I do if it does?" Add this to your list of back-up plans, unless it is redundant.
Sort your list of sub-skills by how easy they will be to learn, then start learning and practicing them. Any time something goes wrong or you encounter a situation you did not account for, use one of your back-up plans.
Repeat steps 1-4 for any sub-skills you encounter that you did not account for.
So, that was the short version. If you find you need more context, here goes. Note that the first premise uses the word "trivial", which then begs the question: "What makes a sub-skill trivial?" A convenient answer to that is: "If you personally feel sufficiently confident that you can do it." Or, in other words, "Can you look up how to do it on the internet?" Which means, if the problem itself is trivial, you don't need to bother with this. Just look up a guide online.
Most skills are too complicated for someone to sit down and analyze every possible sub-skill needed to accomplish it. Fortunately, you don't have to. Your goal isn't to learn all the sub-skills, its to learn the important 20%. The overall efficiency of a sub-skill is a function of two things: how how integral it is to the overall skill, and how easy it is to learn. You're going to let System 1 do most of the heavy lifting here.
Fortunately, our brains are pretty good at pattern-matching. Goals are high-level concepts whose meanings are derived from the combination of several patterns and archetypes that you've got stored away somewhere. When you say, "I want to learn a foreign language", your brain immediately starts filling in the patterns of what exactly that means. It starts identifying the things that are integral to your idea of the concept. Then it combines them into one coherent concept, and that's what you're left with. The trouble is, most people don't preserve these individual patterns before combining them, and thus they're left with something that's purely conceptual, rather than actionable. "I want to learn a foreign language" or "I want to learn to code" or "I want to learn social skills".
So just let your brain go to work doing what it already does, but pay attention during the process and identify the key components before they get mushed into a concept. Make System 1 tell you "You want to be able to converse, interact, and function in a society that speaks a different language," instead of just, "You want to learn a foreign language." Remember that you don't need to identify all the components. Just the ones that are important enough for System 1 to dredge up on a moment's notice. Most likely, these will be the 20% that you're looking for. Of course, chances are the initial output is going to be a high level concept unto itself. There's no "to-do list" for "being able to converse in a society that speaks a different language". So you put System 1 to work again. What exactly do I mean by that? "Oh, what you mean is: you want to be able to ask and understand both questions and answers, and be able to express your thoughts."
Eventually you'll reach the point of triviality. You'll have a sizable list of trivial tasks such as "You want to be able to say the following twenty basic sentences: XYZ", and "You want to know the following 100 basic vocabulary words: ABC." and "You want to be able to identify the most common articles, prepositions and conjunctions." Here's where System 2 goes to work: you look at this big list and ask yourself, which of these would be easiest for me to accomplish? And then you sort the list accordingly.
Voila. There's your roadmap.
Now, all of this is fine and good, but at some point you will encounter a situation that doesn't fall under this convenient little roadmap you've followed. So you want to make a backup plan. System 2 needs to look over your roadmap and ask: "How can this go wrong, and what can I do if it does?" If you do this for each item on your list, chances are there will be a lot of duplicates and redundancies, which you can pare down. When all is said and done, you'll have a few plans of action in case things go wrong.
So, you have a roadmap to guide you through the 20%, and a generalized plan for the other 80%. What now?
Well, there's always room for improvement. If you do things right, you'll be pretty well immersed in the nitty-gritty of whatever skill you are trying to learn, which means you will be getting loads of first-hand experience as to all the different ways things can go wrong which you probably never could have anticipated. And you'll run in to scenarios that make you say, "I can't believe I didn't think about that."
Fortunately you don't need to get things perfect on the first try. If you encounter a situation you didn't account for it, then account for it. Ask yourself what happened, and let System 1 go to work on breaking it down. If something goes wrong in a way you hadn't thought about, come up with a separate plan for that. Eventually your model will become more and more robust as you start to learn many of the fundamentals that you probably skipped over when you made your roadmap.
There seem to be two different types of learning styles, the "academic" way of starting with the fundamentals and building from the ground up, and the "immersion" method of just throwing someone into the deep end of the pool and working from the top-down. This method combines both: you learn the fundamentals of the things that are necessary to immerse yourself. Instead of being "top-down" or "bottom-up", this is more like, "start at the bottom, skip to the top, then work your way back down through the middle."