Skip to content

The Dunning-Kruger trap - Mental Model for Developers

Hossein Kazemi
Hossein Kazemi
3 min read
The Dunning-Kruger trap - Mental Model for Developers

This post is part of the series of mental models for developers.

You might have heard the term Cognitive Bias.  Cognitive Bias is a tendency for people to perceive information based on their own experiences and preferences, resulting in a distortion in how they perceive reality. We all have our own cognitive biases, and humans are wired like that.

One particular Cognitive Bias is called Illusory Superiority, wherein a person overestimates their qualities and abilities concerning the same qualities and abilities of other people. No matter how experienced a person is or how high the ability, it is very common that they perceive themselves as superior.

Illusory Superiority has a little brother called Dunning-Kruger effect. It is a cognitive bias in which people with low ability or low experience overestimate their skills. In some literature, they call these people Confident Idiots.

Confident Idiots

In his article called, Lessons from Mt. Stupid Joseph Paris presents a very thoughtful narrative of Dunning-Kruger effect an includes a nice sketch of the evolution of an individuals' wisdom over time:

Dunning-Kruger effect, path to wisdom

To better explain this effect, below I will share my own experience with interviewing dozens of beginner developers for my mentorship program, the story below is based on true stories:

You start off your new journey in coding, you know nothing. Exciting times. Either you enroll in a coding school or you decide to learn by yourself. You follow the curriculum and follow some tutorials (copy pasting code). Things work as you expect and you start getting confident and tell everyone that programming has now become your "passion" after 3 months of coding.

At this moment, you are graduated form coding school with a huge promise that has fueled your confidence that now you can start looking for a job. You are at the "peak of Mt.Stupid" waiting for some cool companies to grab you with open arms. With a high level of confidence you start applying, you either get no answers or get rejected. Luckily 1-2 companies give you an interview but to your surprise they reject you with "lousy" reasons after the first interview. Chances are really high that you came in too arrogant and started advertising how cool this new framework you are using and solves all the problems and challenging the senior dude who is interviewing you and asking them why they are not using it.

Without knowing, and as a normal human-being, you've fallen victim to the Dunning-Kruger effect. You are over-estimating your knowledge and skills with actually having any (or a little).

Believe it or not some people are so disillusioned that they stay at the peak of Mt.Stupid for a very very long time. I interviewed someone who was there for almost 1.5 years. But for others, reality kicks in and they realize the world is not as they were expecting and find themselves moving downhill towards the Valley of Despair.  

At this point, some people find that programming is not really their passion and it was all an illusion. Other will find there is just so many things that they still don't know and their knowledge is not at the level required by the market (praise to some coding schools). They don't give up, possibly seek help and continue their learning journey. After all, they are truly passionate and on the path to a better self-awareness. Your are one of them reading this post.

Continuing your journey, you face a lot of "A-ha" moments, dots start to connect. You start understanding your weaknesses and strengths and you can easily talk about them. You start absorbing knowledge. Hint: use Selective Ignorance. You are on the "Slope of Enlightenment". You get a few interviews and you can easily say what you've done what you know and what you don't. Since you are on the Slope of Enlightenment, you don't want to miss any learning opportunities and you say this in your interview. You tell them that you are open and if they give you the opportunity you will absorb their ways. (Consider this paragraph as a job interview advice)

You get the job, you are now on the "Plateau of Sustainability". You Keep Calm and Carry On.

This whole thing is not really specific to junior developers, it can happen to everyone in every stage of their career. The key thing here is self-awareness. You need to keep critically asses yourself to know where you really stand and jump the Dunning-Kruger trap and the Valley of Despair as fast as you can.

Mental ModelsMental Models for Developers