4 Stages of Competence

Sergey Piterman
Outco
Published in
5 min readJan 31, 2019

--

This first model highlights the high-level stages that people go through when learning and mastering a new subject.

Everyone begins with a lot of unknown unknowns. You don’t know how bad you are at a subject because you don’t know anything about it. This first stage can be described as a state of unconscious incompetence, and it seems to me that it’s responsible for the Dunning-Kruger effect.

This is a phenomenon where people who are really bad at a subject feel irrationally confident in their abilities because they are so ignorant about the subject they don’t know how bad they really are. They just lack the proper context to assess their skills in any meaningful way.

So the lesson I’ve taken away from this is to always approach a new subject with a large amount of humility. Chances are, there’s a lot to be said about a subject, it’s just a matter of how deeply one wants to dive into it. This brings to mind the famous William Blake poem:

While we do expect engineers who come through the program to have some self-awareness of where their weaknesses are (most people who apply to us are doing so because they know they need help interviewing), we do also try to make sure folks have the right balance of humility and confidence to be able to improve their skills. Arrogance is usually a sign of a longer (and more troublesome) job search for a number of reasons: it’s typically a red flag for interviewers when they are assessing culture-fit, and it’s also a roadblock to being self-critical and being honest with oneself about where they can improve.

The second stage of mastery is where you become aware of the unknown unknowns and they become known unknowns. With this knowledge, confidence tends to drop because the vastness of the space starts to become more apparent, and there’s a better context for self-assessment.

But this is one of those misleading feelings that comes from a cognitive bias. How confident you feel isn’t necessarily correlated to how good your skills actually are.

I see a lot of folks who think they don’t understand a concept like recursion, but typically they’ll be 80–95% of the way there. It’s just that writing code can be very unforgiving, especially in certain languages. One misplaced semi-colon or a little too much whitespace and you’re whole program crashes.

But the important takeaway from this phase is that progress doesn’t always feel good. Learning how much you don’t know can make the task seem larger than it did initially, but don’t worry. You’re heading in the right direction.

Given enough time and practice, you’ll end up in the third stage of conscious competence. This is where you have to think hard about what you know and how you need to apply it in different situations. The going will feel slow and you’ll have to use a lot of brain power. But it means you understand the subject enough to work with it.

So for example, a conscious competence with recursion is being able to work through a problem by remembering to look for a base case, a recursive case, and drawing a recursive tree diagram. It might look like walking through a check-list of things to remember when coding out your solution, like returning the correct value, setting up the proper recursive relationships as a formula, and keeping track of all necessary state variables.

To get to this point, it’s good to have some type of structure which is essentially the goal of our curriculum. It’s to get people to this stage as quickly as possible, so they can develop the right patterns and start practicing them as soon as possible.

But once you get to the third stage, it’s just a question of practicing more and more questions and taking the training wheels off.

Because the fourth stage is to perform in a state of unconscious competence. This is where you can just operate on autopilot and don’t even have to think about the boilerplate parts of the problem.

Using the example of recursion. You have some notion of what it is. You know when and how to use it. You know it’s limitations and benefits. And the only thing you’re trying to figure out is how to apply it in the particular problem you’re facing. How is this problem different or similar to every other problem you’ve solved? Because once you’ve done enough they all start to look the same and you become aware of the deeper patterns.

And all this happens at a nearly unconscious level. Often times when I just look at a problem, I can see that it needs recursion, just because of how it’s framed or setup. I have to actively think about why I know that that’s the right tool for the job, and come up with an explanation because I’ve just done enough problems that my brain unconsciously comes up with the solution.

At this point, I think it’s probably okay to abandon some of the old check-lists and heuristics that typically get used in the previous stage because now you’ve internalized those patterns and they come naturally. You don’t need to think about putting your left foot in front of your right foot while walking, you just do it.

The focus at this point then I think comes in being able to communicate these skills to others. I know plenty of people who fail interviews, not because they lack the technical skills, but because they can’t seem to transmit those ideas over to another person. And since most engineering is done on teams, communication is a crucial piece of the interview, and why we stress it so much. This stage also explains why some world-class professors aren’t always the best teachers. They are so good and so smart, they’ve forgotten a lot of the pitfalls they experienced while learning the subject and don’t know how to they overcame them. This cognitive bias is called the “Curse of Knowledge”:

One other caveat I want to add to operating at this stage is that cutting corners can cost you. If it turns out you are missing some detail about a problem, or something unexpected about it catches you off-guard, it’s nice to have the training-wheels handy so you can work through it. It’s easy to forget the tools that were helpful to beginners, and as an instructor, I’ve had embarrassing moments where skipping a step or two has led to students pointing out simple obvious errors.

I’ll end this first post here, but stay tuned for the next one where I’ll be covering Bloom’s Taxonomy, which goes into a little more on what mastering a particular subject looks like and how you can assess where you are in your learning.

And if you’re interested in leveling up your technical interview skills, you can apply to Outco here.

Until next time!

--

--

Sergey Piterman
Outco
Editor for

Technical Solutions Consultant @Google. Software Engineer @Outco. Content Creator. Youtube @ bit.ly/sergey-youtube. IG: @sergey.piterman. Linkedin: @spiterman