Why you aren't learning
When "tutorial hell" and the pursuit of "mastery" prevents you from achieving your goals.
I finished 3 tutorials but haven’t learned anything!
It doesn’t stick in my head yet
I have been trying to learn coding for sometime now and I have always failed
Tutorial hell is the bane of new software developers. It is the evil boogie man that hides under the bed, ever present. If you’ve ever caught yourself saying one of the above phrases, you too may have been caught in it.
You finish a tutorial, it walked you step-by-step through the process of making a tribute page, but you finish and realize you have no idea how to make a website by yourself. You feel like you just wasted days or weeks of time, maybe even some money. You might even think the problem is with yourself and that you should give up. Everyone else seems to get it, right?
No! The problem isn’t that you can’t understand how to program. It’s that you are approaching it wrong. In this article I’m going to explain my technique for escaping this pit of despair.
Spoiler alert: You can never learn enough to feel confident. No video series will ever make you job ready. You can only really learn how to code by researching and experimenting.
The Loop
New developers are often given the recommendation to just “find a tutorial”, “buy this Udemy course”, or “complete this course”, but I want to posit that this advice misleads. Instead of leading people to self-sufficient success, it gets them stuck using training wheels. Many users on Discord servers explain to me that they complete tutorial after tutorial and still feel like they don’t know what they are doing.
You can never learn enough to feel confident. No video series will ever make you job ready.
Tutorials and these software engineer YouTube influencers contribute to this issue. Just look at the titles to the courses on Udemy:
"Complete guide to learning how to program online”
“From complete beginner to advanced. Learn Webdesign and Become a Professional Front End Web Developer!”
These, and many other courses, are trying to convince you they have the magic secret. That you can sign up for their course and leave job ready. Instead what happens is that people complete the course, realize they have been hand-held the entire time, and have no idea how to code on their own.
Breaking Free
So what is the solution? Break free of the loop by reframing what tutorials are. They shouldn’t be seen as step-by-step instructions, but rather as a guide to lead you to lead you in the generally right direction.
First, come up with an idea of a fun project that motivates you. It can be a chat bot, social media site clone, anything! This should be your guiding principle, and as you learn new concepts strongly consider how this might help you build your goal project.
If you have never programmed before, you’ll need to learn the basics. Choose a language, such as Javascript or Python, that fits best to your goal project. Free courses and textbooks are great for this, but do not feel compelled to finish them. Learn the important fundamentals, do the practice problems to reinforce the ideas, then stop wasting time.
Now is the fun part, find a tutorial that uses the same language you learned the basics in that is similar to what you are trying to accomplish as your goal project. For example, if you are trying to create a chat bot, find a tutorial on how to build a Discord chatbot with Python. If you are trying to recreate Reddit, find an HTML/CSS/Javascript tutorial on how to create a blog.
Tutorials are not mandates from heaven, they merely point you in a general direction.
As you progress through the tutorial, start deviating from the instructions. Use different text, style your entries differently. Your tweaks should be small at first, then larger and larger after. You will have to start googling how to do something different until eventually you are no longer following the tutorial and just using Google to improve your creation.
A couple things to keep in mind:
If your goal project is a big one with many moving parts, don’t try learning all of them at once. Find a tutorial that adds one feature closer. You don’t want to go from your first Javascript functions to a frontend with React and a NodeJs backend. You’ll get there in time!
If you are finding things difficult, go through the tutorial exactly as instructed once. Then re-take the tutorial but start tweaking it towards your goal project.
Eventually, with this iterative approach, you will be creating awesome, self-driven projects! Most importantly, as you do your own research and experiment, you will start learning much more deeply than you would following any tutorial.
Last Words
I don’t want you to come away from this thinking that tutorials are bad or that the people who make them are bad. Instead, feel empowered. Tutorials are not mandates from heaven, they merely point you in a general direction. It’s your responsibility to take the reins and make it work for yourself.
This is the approach I still take to this day when learning a new technology, even with a decade of experience under my belt. If it works for me, it just might work for you too!