The biggest obstacle to progress within the programming sector is undoubtedly tutorial hell. This is a place that most beginners, some intermediates, and even some experienced individuals will visit. It's okay to visit it for a little while, but staying there too long will prevent you from making any meaningful progress in programming.
My Experience
I have been programming for over 7 years now (it is undoubtedly more than that, but that's what is registered on my GitHub). However, it hasn't been 7 years of coding just once in a while. I have programmed consistently on a daily basis for 7 years straight.
And all of that was achieved by myself with the help of the internet (primarily YouTube). So, you could say that I am a self-taught developer. On the strength of that experience, I have landed 3 software developer jobs.
That being said, it is fair to say that I have gathered some wisdom around being a self-taught developer. I'm not completely self-taught, as I have also studied web design, which included a bit of coding. But nonetheless, I have been on a self-taught programming journey for over 7 years now, so I know a thing or two about learning to code on your own.
The Genius Programmer
During one of my software development jobs, I met a genius coder. This guy was only 19 years old and had achieved senior-level knowledge. Do you think that's impressive? Well, he did it in about 2 years...
However, I must mention that this guy had some advantages. He has a slight mental disorder, which allows him to grasp coding concepts faster, and a significant portion of his family is already working within tech. Yes, all this does create an advantage for him, but there is one thing he told me that propelled his knowledge forward.
He doesn’t watch any tutorials, especially YouTube video tutorials.
How Almost All Programmers Learn Nowadays
Being a professional programmer for the past 4 years, I have seen hundreds of developers. And I kid you not, almost all of them learn programming by consuming and watching tutorials. Learning from tutorials isn't bad, but it becomes problematic when it's your primary source of knowledge and learning.
When I started my programming journey, I also fell into this trap, a place called tutorial hell. I roamed in tutorial hell for around 3 years. Were those 3 years wasted? No, but I can assure you that I could have made 4 times more progress if I had approached my self-taught journey differently.
I can understand why watching/consuming tutorial videos is the go-to method for learning coding:
- It creates the illusion that you are learning.
- It creates a feeling of progress.
But don’t let that fool you and result in you staying too long in tutorial hell.
Why Tutorial Hell Is Really Bad
At the beginning of your journey, you will inevitably turn to YouTube or some other video tutorial platform (like Udemy) to start your coding and programming journey. While this is fine in the beginning, when you're just grasping the fundamentals of programming, it should not continue beyond that.
Beyond the fundamental knowledge, you should absolutely not use video tutorials as your main source of knowledge.
I personally made that mistake during my self-taught coding journey, which resulted in 4 years of making minimal progress. I say it was minimal, but in actuality, the rate of progress I was making was normal, aka the average.
After getting to know the genius programmer, I came to the conclusion that almost all self-taught programmers were learning to code in the wrong way. And the reason why he was considered a genius programmer was not because of his genetics; it was because of his method of learning.
To reiterate: He does not watch any coding tutorial videos.
Discovering that he doesn’t watch any tutorial videos prompted me to think about why he prefers reading written tutorials over watching video tutorials.
Here are some points:
Pain to Find a Specific Piece of Code
This is one of the most annoying aspects of learning by watching tutorials, an experience you've probably had yourself. The code isn't working correctly, and you have to skim back to a specific part of the video to figure out what you did wrong.
This isn't a fun experience, especially since many video tutorials are over 3 hours long. So, during that time, you're not learning at all but just skimming through the entire video to find where you went wrong.
Personally, I've experienced this phenomenon, even after I finished the tutorial. Often, when I'm hitting a wall while building my own application, I vaguely remember that the solution is somewhere described in a video tutorial, which was 5 hours long.
So, I embark on my quest for the solution. Let me tell you, it's a real pain to find that piece of code within a video tutorial. If you're used to learning by consuming, this phenomenon will occur more often than you'd like.
At least with written tutorials, you could use Ctrl+F to find your desired solution very quickly. But even written tutorials could not solve this problem entirely…
Debugging
At the beginning of my journey, I set a goal for myself to watch 10 hours of coding tutorials every single day for an entire year. I kid you not, and I achieved that. If I said that I didn’t learn anything, I would be lying. Of course, I learned a bunch of stuff.
However, the danger with tutorials is that they don't teach you many skills you need when building your own projects. Tutorials are pre-made and pre-recorded to be easy to follow. But that's not how real-life coding or programming works.
In real-life scenarios, you'll make countless mistakes—a boatload of them. So, you need to have the skills to solve these problems.
- Knowing how to formulate your questions properly to direct Google to the exact solution you need.
- Understanding the most modern way of solving your coding problems.
- Knowing how to use ChatGPT correctly to produce the most appropriate solution. (Don't rely on this too much yet; I've noticed that ChatGPT still makes a lot of mistakes.)
This is a major part of programming. Most of the time, you're debugging. This is the reality of programming.
Preventing Thinking for Yourself
Tutorials prevent you from thinking for yourself. When you're not thinking for yourself, you're simply offloading your thinking and decision-making to the narrator of the tutorial. If you're just watching the tutorial passively, you're not learning anything.
And if you're coding along, you're not thinking for yourself. In a sense, you're just a mindless body, and the narrator is your brain.
There's a lot that goes into building a project that you will not see in the tutorial.
- What technologies should you pick?
- How will you handle file naming?
- How will you approach variable naming?
- How will you structure your code?
- When is it appropriate to divide your code into reusable functions?
All of these questions and many more remain unanswered by solely relying on tutorials to learn.
But most people have a lot of trouble quitting tutorials because it is…
Addictive
Yes, you read that correctly. Tutorial hell is comfortable and nice to visit—warm and cozy.
Why is that?
It's because tutorials give you a fake sense of progress. You think you're learning something, right?
Wrong.
You aren't thinking for yourself; you're just offloading your thinking to the narrator of the tutorial.
The reality is that learning by doing is much, much harder. Learning by consuming tutorials is very easy. You just have to sit and watch. Maybe you're coding along, but even this isn't conducive to real learning.
But the thing I want you to remember is that it's addictive because it creates a false sense of progress. This false sense of progress generates dopamine, which makes it addictive. Plus, the fact that it's easy to do. You just have to sit idle and watch.
The fact alone that it creates a false sense of progress is highly dangerous and addictive.
So, what's the solution?
Solution
The solution to making faster progress feels ironically slower than the path of tutorial hell. That is by, you guessed it, creating your own projects. This is, in my opinion, and I dare you to prove me wrong, the best way to learn how to code.
Of course, if you are just starting out, it is fine to watch tutorials to grasp the fundamentals. Videos that explain the basic concepts of a language are good. But those videos aren't performing very well on YouTube. Aka, they are not popular.
Do you know what videos perform very well on YouTube? Project videos. Projects built with a specific stack. And those videos are the worst to follow. You have seen them before: Netflix clones, YouTube clones, Todo list projects, etc.
If I could start my coding journey all over again from scratch, I would start by quickly grasping and learning the fundamentals of programming. After that, I would just create my own projects.
Starting off with creating my own website clones—DO NOT WATCH TUTORIALS TO DO THIS—just do it all on your own. You will fail and fall and bump into errors. And that is okay. I would say that it is even good and a necessary part.
You will learn one of the most fundamental skills in programming, which is debugging and working through issues.
Once you are comfortable building your own projects, you could work on your own ideas. The feeling of building and creating your own idea is, without a doubt, the best feeling you will get.
Don’t just build it. Deploy it and add your custom domain to it. Learn the basics of DevOps.
Making even one project from start to finish is worth more than 10 tutorials that last 10 hours.