How to do hard things, by David R. MacIver

Source: How to do hard things, by David R. MacIver

“The Fully General System For Learning To Do Hard Things”. It’s a useful conceptual framework for how to get better at things that you currently find difficult. … The goal of the system is not to save you work, it’s to ensure that the work you do is useful.

The Single-Loop System

When you know what success looks like but cannot currently achieve it, the system works as follows:

  1. Find something that is like the hard thing but is easy.
  2. Modify the easy thing so that it is like the hard thing in exactly one way that you find hard.
  3. Do the modified thing until it is no longer hard.
  4. If you get stuck, do one of the following:
    1. Go back to step 3 and pick a different way in which the problem is hard.
    2. Recursively apply the general system for learning to do hard things to the thing you’re stuck on.
    3. Go ask an expert or a rubber duck for advice.
    4. If you’re still stuck after trying the first three, it’s possible that you may have hit some sort of natural difficulty limit and may not be able to make progress.
  5. If the original hard thing is now easy, you’re done. If not, go back to step 2.

The reason this works much better than just practicing the hard thing is because it gives you a much more direct feedback loop. There is exactly one aspect of the problem at any time that you are trying to get better at, and you can focus on that aspect to the exclusion of all else. When you are practicing something that is difficult in multiple ways, you will be bad at it in all of those ways. More, you will be worse at it in all of those ways than you would be if you’d tried them on their own. Additionally, when you fail you have to do a complicated root cause analysis to figure out why.

Instead, by isolating one aspect of the problem that is difficult, you will fairly rapidly improve, or hit the limits of your ability.

The Double-Loop System

If you don’t know what success looks like, you need to do double loop learning, where you mix improving your understanding of the problem with your ability to execute the solution.

  1. Apply the single loop system to the problem of improving your understanding of the problem space (e.g. consume lots of examples and learn to distinguish good from bad) in order to acquire a sense of good taste.
  2. Apply the single loop system to the problem of doing well according to your own sense of good taste.
  3. Get feedback on the result from others. Do they think you did it well? If yes, great! You’re good at the thing. If no, either improve your sense of taste or theirs. If you choose yours, go back to step 1 with the new example. If you choose theirs, apply the single loop system to the hard problem of convincing others that your thing is good.