Dunning Kruger


Feeling Stupid? Don’t sweat it

Print Friendly, PDF & Email

Lately, I’ve been feeling stupid, and it has been getting me down.

Since last month, I’ve been working on a project called nutrify. The master plan for the application is that anyone can take a photo of food and immediately get its nutritional information. This will employ some complex computer vision algorithmic models to determine what foods are in the photo and link this to a nutritional database. The first obstacle is getting existing data to train the model. The initial stages of this project involve crowding sourcing data, labelled food images. The true mastermind behind this idea is Daniel Bourke.

He created the initial application in streamlit. His next endeavour is to write raw SQL for PostgreSQL. I wanted to save him the trouble and rewrite the application in Django.

I was able to build somewhat of a minimal viable product (MVP). Some parts work, some are broken. But the basics are functional:

  • Users can login,
  • Users can upload images, and
  • Users can see those images.

Unfortunately, I’m in a bit of a slump. Why? The self-doubt is starting to kick in.

Mr D Bourke has been away for a while. He’s been busy. But his absence has made me think. Is he going to utilise what I have made or go down the path or raw SQL? Sure, he gave a compliment. I’m just sad this may not be good enough.

The rewritten application still has bugs. It still has areas to improve. Those improvements will take many days and nights to implement.

I even sent the MVP out to friends. Only ONE person used it! (Thank you very much by the way — but I was expecting more!)

There is just so much to work on. It wasn’t as easy as I thought. I’m overwhelmed! Somebody, anybody, help?!

Now before we board the crazy train, let’s take a step back.

What I’m doing is learning, and learning a difficult skill — programming.

I feel the same about embarking on the Part-time Youtube Academy. And the same with writing this newsletter and blogging.

The Law of Diminishing Marginal Returns

More input doesn’t necessarily lead to proportional return

Learning towards mastery is cursed with difficulty. The law of diminishing marginal returns states that further input results in reduced returns.

In the early stages of a project, we see significant results with small inputs.

All this is needed to start a Django server

This is demoralising, especially at the beginning, when we see so much improvement.

A Django project, just like that

As the project matures, the fruits of our labour begin to diminish. Many nights can translate into a minor unnoticeable feature upgrade. Bugs become more and more challenging to fix.

This is demoralising, especially at the beginning, when we see so much improvement.

The gym equivalent is “noob gains”, where we see a personal best every time we attend the gym. And this applies to almost any skills we learn, where we see improvements early in the process and to see the same improvement require more effort and take a lot longer.

You aren’t as good as you think until you hit the valley of despair

This links to the hypothetical cognitive bias of the Dunning-Kruger effect, where lack of exposure to a topic leads to overconfidence. However, as one’s knowledge increases, the awareness of the unknown also increases. Confidence drops dramatically.

This comes to the point where people quit. Faith is tested. If they genuinely love what they do, they will keep going. If they don’t, then there is beauty in moving on.

For me, I thought programming was this mighty skill, but now I see limitations.

This nutrify project is going to be more complex than I initially thought. The same goes for writing. And creating content in general.

In the beginning, excitement! The circle of knowledge was small; there was not much known of the unknown. If I code every day, create every day, I will improve and even grow an audience.

As knowledge goes so does the awareness of the unknown

I did improve and I do have some people reading and watching my material. Too easy, right?

However, improvement grew my circle of knowledge, also growing the edge of the unknown. Excitement turns into despair.

The coding problems became harder. What I knew was so little and what I had to learn too much. My content won’t be anything spectacular. My confidence is plummeting. Do I continue or quit?

The Resolution

Unfortunately, the formula isn’t as easy as doing to work. It’s dealing with failure and disappointment. The worry of putting in lots of effort to see no result.

Counterintuitively, this is where we want to be. The honeymoon period is over. We want to feel like a failure for two reasons. One, we have departed unconscious incompetence plagued by the beginner phase. We now know what we don’t know, which is the first step of mastery. Second, we will know if this is our true love. Journey before destination. We are willing to put up with undesired results because we enjoy turning up most of the time. If we don’t have the spark, then we can move on to something else.

With nutrify, if my contributions don’t get accepted, at least I can be happy that I learned Django in greater detail.

With creating content, if I don’t go ‘viral’, I still enjoyed making the material and helping the people who do read this now.

On the day, we won’t see much change. Small incremental improvements over a long period of time, yield satisfying results. The key is patience.


When learning, feeling stupid isn’t bad. It’s the consequence of improvement and mastery.

In the beginning, the big improvements we see create overconfidence. As our knowledge in the area grows so does the awareness of the unknown.

This realisation can be demoralising. However, this is favourable because it means we are improving beyond the beginner phase, as well as testing our passion for what we are learning.

This is how I feel about nutrify, coding and creating content. What about you? Do you feel confident all the time about new skills you are learning? Or does the self-doubt kick in?

Related posts

Don’t give into the hype

Reading Time: 4 minutes A definition of hype: To publicize or promote, especially by extravagant, inflated, or misleading claims Recently, I talked about the wonders of the world of

Read More »
vr, virtual, virtual reality-3460451.jpg

The Future of the Web

Reading Time: 3 minutes With all the negatives happening in the world, there is one good: democratisation. But, what do I mean by that? The root word, democracy, originates

Read More »

Share this post

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest
Share on email
Print Friendly, PDF & Email

Leave a Comment

Your email address will not be published.