Making Badass Developers by Kathy Sierra - Talk Summary


The following is my summary of Kathy Sierra’s amazing talk at the O’Reilly Fluent Conference in 2015.

As developers, we have a lot to learn. Nobody is questioning that. The question is: How can we learn things as fast as possible?

Think about learning in terms of cognitive resources. We have a very limited amount of cognitive resources and we want to spend them where they make the most difference to our learning. All our cognitive resources use the same energy storage, so if we deplete it, we don’t have the energy to spend on other resources.

In our daily life, usually we have thousands of micro-leaks to that energy storage, because we have to use our cognitive resources for a lot of things.

Everything from choosing what to have for dinner, to trying to remember where you left the remote, or choosing variable names takes up cognitive resources.

If we want to become good at something, we need to become good at managing our cognitive resources (and our energy).

The 3 Learning Stages (3 Boards Metaphor)

Imagine that we have 3 boards with post-it’s. Each of the boards represent a different stage of learning. Each of the individual post-it’s is something that we want to learn.

The three boards are:

A. Things I can’t do but need to.
B. Things I can do, but with effort.
C. Thing’s I’ve mastered (they are automatic and reliable).

Our goal is to move the post-it’s from A to C as fast as possible.

When we’re trying to learn something (move a post-it across the boards), there are 3 main problems that can come up.

3 Problems That Can Come Up

Problem 1: Learning Too Many Things At The Same Time

If we’re trying to learn too many things at the same time, we’re not going to be making progress on any of them. If we have too many items on board B, it’s going to be harder to move them to board C.

This is because everything that is in board B requires cognitive resources. It takes very little to drain our cognitive resources, and if we’re having to learn too much at the same time, then it’s going to drain our cognitive resources a lot and we’re not going to be making progress on any one thing.

We want to spend as little time as possible in board B, with any given task.

How to Solve Problem 1

There are a couple of things we can do:

As a rule of thumb, if something is taking us more than 3 learning sessions of 45 to 90 minutes each to move to board C (where it’s automatic and reliable - maybe not 100% reliable, but 95% reliable), then the task is too big. We should break the skill down into sub-skills, and take those sub-skills to board C before going back and learning the rest.

Problem 2: Reaching a plateau after mastery

If we’re making progress, learning things, and then we plateau, it’s usually because we’ve mastered it, but we haven’t re-examined it.

This is a problem because a lot of things we learn become outdated over time, or prevent us from learning new things. They end up stagnating our progress But because they are already automatic, and we don’t spend the cognitive resources needed to re-examine or re-learn them.

How to Solve Problem 2

To solve this problem, we need to spend some time pulling back some things from our board C into our board B. This takes cognitive resources to do, but it’s the best use of our cognitive resources.

In every area, the people who are masters at what they do spend some time questioning their assumptions and re-learning some things they took for granted. This is what solving this problem is all about.

Problem 3: It takes too long to get to board C

There’s too much to learn for us to take a long time learning any one thing.

How to Solve Problem 3

What we want to do is to speed up the process of going from board A to board C. Ideally, bypassing board B!

The way we do that is by using something called “perceptual learning”.

Perceptual learning is something that was discovered in the 60’s and that was thought to be about how we perceived things through our senses (hence the name), but it has more to do with the brain’s ability to pattern-match.

Our brains are great at pattern matching. And when we’re exposed to a very high quantity of high-quality examples of what we’re trying to learn, this helps our brains learn things very very quickly.

The way we can use this deliberately is to expose ourselves to about 200 or 300 very high-quality examples of what we’re trying to learn in a short period of time (personal note: maybe a 45-90 minute session).

The examples can be very small. They don’t have to be huge chunks of code. But we need to see a lot of them in a short period of time.