Kathy Sierra, author, game programmer, interaction designer, and original creator of one of the largest software developer communities, returned to the stage yesterday at the O’Reilly Fluent Conference.
I caught her Making Badass Developers keynote, a talk about cognitive resources and how developers can build their skill sets, on livestream. Here are my notes from her talk.
Imagine you’re at a dinner party with web developers and normal people.
Someone comments they know HTML and they want to be a web developer.
How hard can it be, they ask?
Everyone jumps into the conversation with their opinion. Eventually an argument starts about what you need to know to be a developer.
To be a web developer, you need to be a rockstar, ninja, and a hacker. And everyone will give you a different opinion of what you need to know as a web developer.
Which means no one really knows.
10k people, 10k opinions on who gets to be a web developer. #FluentConf
— linna (@lalalalinna) April 21, 2015
It’s not what you need to know, says Sierra.
A better question to ask is how fast can you learn and build skills quickly?
#FluentConf Kathy Sierra: it's not 'this is what you need to know', it's: 'how fast can you learn what you need?'
— Gene Kaufman (@gene_kaufman) April 21, 2015
Sierra described the three types of developers:
- Human: limited, scarce cognitive resources
- Unicorn: doesn’t exist
- Humanoid: consistently available cognitive resources with perfect memory
She pointed out the problem: you’ve been mistaken for a humanoid by your school, instructor, boss, and co-workers.
Cognitive Resources
Cognitive processing is one pool of resources that are easily depleted. The goal is to reduce cognitive leaks.
For example, meetings can be a huge drain on cognitive resources. Other examples are the small changes to an interface that you have to deal with.
I love Kathy Sierra so much. So glad she’s here talking about Death by a thousand cognitive resource leaks. #fluentconf
— David Stone (@stabbylambda) April 21, 2015
Where there is high expertise, there is a huge amount of cognitive resource management for efficiency for learning.
How to Get Better from a Cognitive Resource Perspective
Sierra offered a framework for getting better in a faster way.
Consider three boards with post-it notes. On board A are the things you can’t do, but need to, board B are those things you can do with effort, and board C are the things you’ve mastered.
Love this framework for thinking about cognitive resources #FluentConf pic.twitter.com/kZyEDH68K6
— violaleeblue (@violaleeblue) April 21, 2015
The goals is to move things across the boards, but there are three main problems:
- You don’t get better. People don’t make progress, too many things pile up on the B board. Too many cognitive resources are getting drained.
- Intermediate blues. Someone makes progress, but they plateau. Usually something has made it to C, but it’s outdated or not high quality.
- It takes too long. We don’t have time, when there’s places like Quora, etc. telling us what we need to learn.
How do you fix the pile-up on the B board?
Move things to the A board. You don’t have to learn the whole API, learn it in pieces.
Split things into small sub-tasks, and take those tasks to C. ~ Kathy Sierra #FluentConf pic.twitter.com/Vd67fIYMcQ
— Deborah Edwards-Oñoro (@redcrew) April 21, 2015
Sierra identified how developers can determine what size of a sub-skill to learn.
If you can take a skill from Can’t Do to Mastered within three sessions of 45-90 minutes each, you’ve determined the right amount of time.
Otherwise, split the sub-skill into smaller pieces.
Practice makes permanent. Reduce time spent being mediocre.
Move up to intermediate knowledge as quickly as you can. Consider what’s on your C board: people continue to recheck what they’ve learned on the C board. What’s on your C board?
"Practice does not make perfect. Practice makes permanent." If your practice is crappy, your skills are the same. -Kathy Sierra #fluentconf
— Kimberly B. (she/her) (@obiwankimberly) April 21, 2015
Sierra has been programming for 30 years, and just started using an integrated development environment (IDE) two weeks ago.
After about two days, I’m killing myself about all the cognitive resources I’ll never recover for not doing this.
Bypass the B board when you can. Go from can’t do it to mastering the knowledge as quickly as you can. You can do it.
Sierra shared the example of bypassing B with the chicken sexing program (sorting chicks by sex) in Japan. Master chicken sexers couldn’t teach others how they were able to sex the chicks.
Instead, people who were going to be a chicken sexer were told to randomly sort the chickens. Eventually they got better over time, with no training.
Brains are great at pattern matching, if we get out of the way. Which explains why people with expertise can’t describe why they know something works or doesn’t work. They just know.
High Quality, High Quantity Examples
What we’re currently doing with our work as developers is looking at two or three examples in a book, course, or website.
To sort signal from noise, our brains need to have a large number of exposures to high quality examples in a short amount of time.
As a community, we need to build a large library of very high quality examples to help us move from board A to board C quickly.
We need more high quality, very high quantity code examples to learn while preserving cognitive resources #FluentConf
— violaleeblue (@violaleeblue) April 21, 2015
We have to care about each other’s cognitive resources. Look at the people around you, realize they’re not humanoids or unicorns.
They’re humans with limited, scarce cognitive resources. Think how you can help them and how they can help you.
Kathy Sierra killed it! Brain resources well used!! #FluentConf
— Paul Gower (@paulmgower) April 21, 2015