A couple of days ago, I was chatting with people on š about creating courses.
Until a harmless reply left me thinking for a while:
My friends on platforms, like You, usually know how to code, so this was unexpected.
So, how do you learn programming from scratch, Akos?
I have no idea.
I started coding about 20 years ago ā no YouTube, TikTok, or influencers.
The book in my drawer is where programming in C started for me.
When I closed the book, programming ended. When I opened it, it began again.
I wasnāt bombarded with notifications (which wasnāt even a word back then, lol) fabricated to create urgency.
In my experience, programming is a lot more approachable than in the past decades, but itās also more difficult because of VC and all the money they throw at influencers so they convince you why you need stuff.
On the other hand, as someone who teaches people how to code, I feel obligated to answer the question, of how to learn something. So hereās my take.
Before I share my take, let me put my money where my mouth is.
Iāll teach you how to build React Custom Hooks from scratch through a practical course in which all you do is build apps! No theoretical hocus-pocus. š§Ā Itās 35% off with this link. You didnāt learn a thing? Money-back guarantee š„
So, hereās what I think makes a good learning experience and what I used to put together my books and courses.
Dopamine
Weāve been on drugs since we wrote our first line of code.
Short bursts of dopamine when we solve a challenge keep us motivated and loving what we do.
We either succeed or fail.
If we succeed, we get that sweet dopamine hit.
If we fail, we feel bad and want to avoid repeating the mistake, so we try to remember.
But this process canāt go on forever.
If the task we choose isnāt achievable, the lack of dopamine will demotivate us and hinder the learning process.
This is why itās crucial to choose an attainable task.
As shown in Striatal Dopamine Signals and Reward Learning dopamine strengthens the connection between actions and positive outcomes, making learning more effective.
Specificity
Wanting to learn to code or skydive are fantastic ideas, though the latter is a bit more dangerous.
But as tasks, they are terrible.
To learn how to skydive, you first have to explore what certifications you need, where you can get them, what kind of gear is required, how you can fit it into your current schedule, and so on.
These are tasks that you can spend hours, days, or even weeks researching without feeling a drop of dopamine from your first skydiving experience.
This is why you quit learning to skydive two weeks later.
You must set goals that, in the big picture, lead to where you want to be, but today, or by the end of the week, they still reward you.
What would be the first task if you want to learn to program? Picking a language, right? I donāt think so. How could you possibly pick a language without knowing what kinds of industries exist in programming or what you can do with different languages?
Iād start by learning more about what can be programmed, what I want to program, and exploring the intersection of the two.
Criteria
It usually ends in one of two ways: you either learn the thing or forget about what you wanted to learn. Why?
Time.
Learning a new skill, skydiving or programming, doesnāt happen in a laboratory.
We donāt pause our lives and devote 100% of our time to learning.
Instead, we try to find chunks of time during the day to focus on it.
Maybe listen to something relevant while doing the dishes or watch a video while the baby is asleep.
These little fragments add up and create a learning experience.
Be specific and realistic with the time frame in which you want to learn something.
Most importantly, donāt be afraid to readjust when you realize you wonāt make it.
Iām not saying to find excuses to procrastinate, just acknowledging that weāre usually bad at estimating time.
So, what will you learn next?
š° Weekly shoutout
First, a thing from me. I dropped a new YouTube video about my updated developer blog, akoskm.com, you can watch it here:
Iāll be more consistent with videos in the future š¤ Making them is fun and from the comments I see they help people! š
What I enjoyed reading:
š£ Share
Thereās no easier way to help this newsletter grow than by sharing it with the world. If you liked it, found something helpful, or you know someone who knows someone to whom this could be helpful, share it:
š Subscribe
Actually, thereās one easier thing you can do to grow and help grow: subscribe to this newsletter. Iāll keep putting in the work and distilling what I learn/learned as a software engineer/consultant. Simply sign up here:
Very important topic Akos.
I really liked your advice about choosing an attainable task that gives you that dopamine hit to continue. Makes me think about how I should apply that to my own long-term goalsš
Also, thanks for the mention!
I think some people think "learning" means becoming the number 1 expert in some technology. It doesn't have to be this way.
The same way we have to scope down about time, we can scope down about results. If we make an unrealistic promise in a very short amount of time, it can lead to not feeling accomplished.
If we provide a feasible outcome in that period of time, everybody can get the dopamine hit.
Nice article, Akos!