View profile

Feeling dumb...

Feeling dumb...
By Shivan Sivakumaran • Issue #63 • View online
Kia ora e hoa,
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 with 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
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
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
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.
The Dunning-Kruger Effect
You aren't as good as you think until you hit the valley of despair
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
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.
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?
Did you find this useful? If you did, please forward this on to family and friends so they can find it useful too.
Thanks for reading and all the best for the week ahead.
Ngā mihi nui,
Shivan :)
My Favourite Things
  1. Video How To Build A Multi-Million $ Dating App | Shahzad Younas Founder & CEO of Muzmatch - Ali Abdaal and Shahzad Younas sit down and discuss the dating application for Muslims, Muzmatch. Created by Younas, he discusses the journey of building the app as well as hurdles. Some takeaways include: just because someone else is making it, means your should not stop; you can learn to code on the internet; some people don’t think they are good at coding, but haven’t tried.
  2. Video Thibauld Colas - Kontrasto - improving accessibility with Python - Providing accessibility in websites is important. This appeals to be especially since I work with people who are visually impaired.
  3. Article UsingVimWithDjango – Django - Since I’ve been learning Django as well as vim, this link provides a list of useful vim plugins to make coding in Django easier.
Blog Posts
Kindle Highlight of the Week
All animals are equal but some animals are more equal than others.
George Orwell, Animal Farm
Did you enjoy this issue?
Shivan Sivakumaran

My life's journey talking about technology 💻, optometry 👓 and a whole variety straight into your inbox every Sunday morning NZT.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Aotearoa, New Zealand