Skip to main content

Command Palette

Search for a command to run...

4 stages of the Dunning Kruger effect

The four stages of the Dunning Kruger effect and why does it matter to coders

Published
4 min read
4 stages of the Dunning Kruger effect

The Dunning Kruger effect for coders

The Dunning Kruger effect is a phycological effect that explains why experienced people doubt themselves and novices are so confident about themselves. Here we will be going through the importance of the Dunning Kruger effect for coders and the four stages people go through when learning to code.




Stage 1: The beginner


This is the stage when you are just starting learning to code (from 0 to around 2 months since starting coding), during this phase you have the highest confidence and no experience and this confidence is due to the fact you don't know the topic you are talking about and the world of coding for you is the single technology you learnt, you will say things like HTML is web development or java is app development. This stage is called the mount stupid.

Stage 2: The harsh reality


This is the stage when you are just starting discovering technologies about your topic(from around 3 to 9 months since starting coding), during this phase you have the lowest confidence and very little experience and this lack of confidence is due to the fact you know that there are so many topics you need to learn and you feel that world of coding is so vast and you know nothing and thoughts of quitting coding start popping and you may make excuses for yourself that coding is not for you and the people who code are different. This is the most difficult phase to go through just the key to going to the next stage is to continue learning even if you don't want to learn and it doesn't matter how much you learn daily but learn that's the key. This stage is called the valley of despair.

Stage 3: I don't know a lot but it's fine


This is the stage when you continue learning to code and you have learnt quite a few things (from around 10 to 36 months since starting coding), during this phase you start gaining confidence and you are a bit experienced and this gain of confidence is due to the fact you know that you don't know a lot of things about the topic but you have learnt a bit and you can learn other things too. You know that the things to know are a lot but you can learn them. This stage is called the slope of enlightenment.

Stage 4: The expert


This is the stage when you continue learning to code and you know a lot of things (from around 37 months since starting coding to forever), during this phase you have confidence but not as high as the starting phase and you are experienced and this confidence is due to the fact you know that the topic itself is very vast and complex but you know a lot of things and you know that no one knows everything. You start to be okay with the limited knowledge you have(comparatively limited but not less) about the vast topic and continue to learn. This stage is called the plateau of sustainability.



We are done now, just a few things to keep in mind, that if you are a beginner it's okay you don't know a lot just remember every master was once a beginner and you can check out this article about mistakes to avoid as a beginner

3 biggest mistakes beginners make

Or If you are in the valley of despair just remember things will go the right way and you can do it, many people have done this before and they are just like you. I hope you enjoyed this article even though this was not directly related to coding but I thought it's good to know about this effect and this will help developers of every level of experience. I would like to know which stage you are in, so you can comment below about your level of experience and there is nothing to shy about. Until next time happy coding.

D

having a strong "why" is important when you're in Stage 2. people are surprised to learn that i must've quit programming a dozen times, but i kept going back to it because i had strong motivations to try again; i had things i really wanted to build, but there were no off-the-shelf solutions nor did i have the money as a teenager to pay anyone to build anything for me anyway. it took time to get a proper foothold where i could really build things, just like learning any spoken language it's pretty rocky up front but you progress more consistently once you get the foundation down. you stack experiences where something was really hard but you persevered and figured it out, so eventually you approach new problems remembering it might not happen overnight and it might be a little painful at times, but you can do it.

even as a senior developer with years and years of experience at this point, i still often feel like i don't belong, so i tell young developers that the only real differences between them and i are that i've been around enough to know nearly everybody in the room feels like an imposter at times too (certainly those worth working with), and i've merely had thousand times more failures to know a better starting point on the next attempt. you'll never stop reading documentation, reading blogs like this one, learning new languages and techniques, etc. - you just get to a stage where you can laugh at how much more epic your failures have been.

3
A
Avichal4y ago

Thanks a lot for sharing your story it was very inspiring and I can relate to the reason why having a strong "why" is important. I missed the "why" part and also the continuous feeling of being an impostor even when you are experienced in the article they were very important, it just slipped from my mind. Thanks a lot for taking the time to write such a beautiful comment

1