The Dunning Kruger effect for programmers

Udenna Nebeolisa
4 min readApr 20, 2021

The Dunning Kruger effect refers to a chart that explains the relationship between a person's confidence in their ability and actual expertise/knowledge in a particular field. In psychology, put into simple terms, basically states that people with limited knowledge or competence in a given field or intellectual domain tend to overestimate their own knowledge and/or ability. Though this chart has many applications, I believe it shows a really good example of what the journey between going from a junior developer to a senior developer looks like.

Peak of “Mount Stupid”

First I will go over what exactly the peak of “Mount Stupid” is which is where a lot of junior developers are. When you first learn something a lot of the time you become highly confident because you don't actually know just how much you don't know which is especially true when it comes to programming. Coming from my own experience, an example of this was when I first learned ruby. I felt the syntax was easy to read, the program was easy to use, and I wouldn't have a lot of things to worry about until I was introduced to ruby on rails which opened a whole new window of things I can do with this language and revealed I had a lot more to learn. Many people who get to this point believe they know it all and sometimes even stop learning because they don't do any deeper research and are just too confident.

Valley of despair

As you continue learning you realize there is actually a lot more that you need to learn which brings you to the point in the chart labeled “valley of despair” which is where you start to see a lot of programmers who aren't prepared go through a depressive state. A good example of this is when new programmers go through impostor syndrome when learning how to code. This leads to a lot of self-doubts and your confidence starts to really take a hit. This is also another point where some people tend to quit because they feel like they’ve learned nothing and the hill to greatness is just too far out of their reach but this couldn't be further from the truth.

Photo by Jonathan Klok on Unsplash

Slope of Enlightenment

If you haven't given up learning once you're in the valley of despair, congratulate yourself because you've already gone past the hardest part of the learning curve that a lot of people don't reach. When you get to the “slope of enlightenment” part of the curve you've come to accept that you don't know everything and it's impossible to know everything but you continue to learn to continue to become better at what you do. This is where most of your “real” learning begins because you’ve gone from a mediocre programmer to a decent one because you now know what it takes to become a senior. Now, this isn't saying that there aren't junior developers who don't know what it takes to become a senior developer but when you’re first getting started it's almost like running a race without knowing where the finish line is.

Photo by Vlad Sargu on Unsplash

Plateau of sustainability

Lastly, we have the final part of the chart, the “plateau of sustainability” which is where you’ll find most senior developers and people who happen to be really good at what they do. Though it is very similar to the “slope of enlightenment” part of the curve this is where you understand the limits of your knowledge and you actively and precisely work to improve your knowledge. This can be clearly seen if you ask a junior dev and a senior dev the same question when it comes to a bug in a program. A junior dev might tell you something along the lines of “how about we try this and see if it works” with no actual basis on why they want to try their given solution. In the same situation, a senior dev might tell you “I don't know, let's search it up and see if we can find this problem through the documentation” which shows that even though the senior dev doesn't know the answer to the problem right on the top of his/her head, they know what to do to find the answer.

--

--