Personal projects make you feel stupid? Don't sweat it

Graph displaying the Dunning Kruger Effect
'A little knowledge is a dangerous thing' - Samuel Johnson

I’ve felt stupid. I felt dumb, like I don’t know what I’m doing. What am I doing?

This is especially with the case with personal programming projects. They get fun. Then they get hard very quickly.

It’s overwhelming! Somebody, anybody, help?!

What we are learning is difficult skill that takes years to master. And even the master proclaim they are still learning.

I even feel the same about embarking on the Part-time Youtube Academy. And the same with writing this newsletter and blogging. So, the feeling is universal and goes beyond programming.

The Law of Diminishing Marginal Returns

Diminishing Marginal Returns

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.

# a django server in 3 lines!

pip install django
django-admin startproject mysite

python manage.py runserver

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.

Dunning Kruger Effect

Hello, 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.

I must be a fraud?

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.

Circle of Knowledge

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?o

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 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 and persistence.

Conclusion

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?