So, a few weeks back I stumbled with this article that was about tutorial hell. This is a term that I’ve been hearing about almost since I started learning to program, but I never stopped to really think about it.
Ever since I read that article, it got me thinking about tutorial hell and made me evaluate my progress as a developer: am I right now in tutorial hell? or at any point I was?. I think it was really good for me to start thinking about it. After self-evaluating, I realized that yes, I was at some point trap in the loop and I’m happy to say I’m almost completely out of it.
Because of it, I decided to write my own thoughts on this “tutorial hell”, and in case you still have doubts on whether is real or not, let me tell you that tutorial hell is very real and very dangerous for your progress as a developer, and there is a chance that you may be trapped in this loop without knowing.
With that in mind, let’s take a few minutes to think about tutorial hell and what possible options do we have to either avoid it or escape it.
Before anything, I think is better to answer one simple question: what in the world is tutorial hell?
Tutorial hell is nothing more than been trapped in this endless loop of watching programming tutorials one after another. This loop makes you feel in a false state of accomplishment in which you think you are learning how to program but as soon as you try to write your own code realize that you haven’t really learned that much. So, you go looking for another tutorial feeling that the last one wasn’t good enough, and keep going with more and more tutorials in an endless loop.
Now, before giving you my thoughts on how I think we can escape this tutorial hell, let’s evaluate why this happens.
First, let’s think about this. When we watch a tutorial, what we’re really watching is a finished product. A tutorial is something that the creator has put a lot of work on. When we watch a tutorial, I can guarantee you that its creator has put a lot of thinking, preparation, and editing into it. If you watch a tutorial about creating any web application and follow the tutorial along, yes, you end up with a finished application, but the biggest difference between the creator of the tutorial and the viewer is that the viewer didn’t struggle and didn’t spend weeks or maybe months thinking how to create the application, this is very important, and something that we will revisit at the end of this post.
So, when you watch a tutorial, you have to understand that what you’re watching is the polished version, the easy part if you will. That’s why you can see how easy is for the creator to explain their work, after all, they are the ones that did it. Of course, in many cases, they have years and years of practice and experience, which is also a factor in why they look so comfortable explaining the topic.
This is applicable to basically anything. Think of a chef that is starting a cooking show, every time the chef shows you a recipe I can guarantee you that chef had to practice a lot to be able to teach someone else how to cook. In the end, a tutorial is something that had been prepared before showing it to an audience, just like the lectures the teachers give at school or college.
So my first advice is to always remember when you watch a tutorial, you’re watching a finished product. The missing part is all the hard work the creator has put into it. It’s the same as front and back-end development. We (the user) only see what the front-end developer wants us to see. But behind there is a lot of work that we can’t see (back-end).
As I mentioned before, tutorial hell gives us a false sense of achievement. This has to do with the previous point. Because the tutorial was so good and very well explained, we coded along and finished the project and feel we really learned something, and then we try to write a couple of lines of code on our own, and surprise…we can’t!!
So, what happened? after all, the tutorial was really good, polished, and well explained. The big problem here is that we’re just coming along, we’re just following what others created. In other words, we’re not thinking. We’re not really analyzing the problem and how to fix it, because that has already been done by the creator of the tutorial.
We have to understand this, watching tutorials is not bad, what’s bad is to just keep watching them without trying to build your own projects.
I know what some of you may be thinking: I can’t stop watching tutorials because I’m not ready to code on my own.
Let me tell you this, when you’re a beginner, you will never know when you’re ready to code on your own. The only way to be ready is to actually go out there and start struggling, start writing code. Start developing those solving problems skills, your critical thinking. Those are the ones that will make you grow as a developer and sadly, no tutorial will teach you those.
I can tell you from my own experience that only when I started to build my own projects is when I really felt I was learning. And no, it wasn’t easy, I struggled a lot!!. But once I finished my first project I felt really proud of myself and I felt a real sense of achievement.
Now that we saw a bit of what is tutorial hell and why we fall on it, let’s analyze some possible ways of escaping it if we’re trap or avoiding it if we’re starting. The first thing to escape it is to admit we’re there. You have to evaluate your learning process and be honest with yourself. Ask yourself this:
Am I constantly watching tutorials without actually trying to create my own projects?
If your answer to the last question was yes or hesitant maybe. Then, congratulations. You just took the first step to escape tutorial hell.
Now, let’s see some ideas and tips that may help you to escape tutorial hell. After all, this is a process, it will be hard to just stop watching tutorials and start your own projects. So, we have to take it to step by step.
What I mean by this is to not rush through the tutorial by just coding along. There are some tutorial creators out there (especially the more experienced ones) that will challenge you to implement small portions of the project on your own before they show you their solution. Try it!!
Take a few minutes and try to solve their challenge. There is a good chance you will fail (after all, you’re learning), but also, there is a chance you can solve it. And by doing so, whether you fail or succeed you will learn a lot more than just coding along.
Another option is, put full attention into the lecture (don’t code along), once you have to go through a good portion of the lecture (5-10 minutes for example) then pause the lecture and start coding on your own. This way you focus on one thing at a time, first on the theory and then on the code.
Both of these strategies will help you start building confidence in yourself and in no time you will feel more confident to start your own projects.
When you watch a tutorial, try explaining what you saw to someone in your family or a friend. By explaining to someone you’re putting yourself on the test to see if you have really learned or not.
Also, many more experience developers encourage beginners to create the habit of explaining what they’re learning as another way of practice.
Once you finished the tutorial, take some time off (a few days or weeks) whatever time you need to process what you learned. Then come back and try to build the same project but this time without following the tutorial. By doing this you’ll be practicing your problem-solving skills without throwing yourself to the fire of creating a project from scratch.
There are many experienced developers that code lives on stream. You can watch them from time to time (youtube or maybe twitch are good options). This will help you understand their thinking process. You will see that not everything works on the first try for them, that they make a lot of errors and bugs, and also use google and other sources a lot. You will see them taking notes and writing on paper, trying different solutions. This is just completely normal and something that every developer does no matter how experienced or how good they are.
By watching these streams it will help you understand that not everything is as simple as it looks in the tutorial. It will show you a more realistic process than the one shown in the tutorial.
All the tips I gave you before will help you build your confidence, but in the end, only when you build your own projects, is when you’re really learning. There is no way around it. So, you have to challenge yourself to code your own projects. It won’t be easy, and as I have mentioned many times, you will struggle. But believe me, once you finish your project it will be a huge accomplishment.
A big part of being a developer understands that no project is easy, is understand that we will struggle and almost nothing will come easy. Another part is to admit when we don’t know how to do something, nevertheless, we look for a solution. If we get stuck, we know where to look for options. And no, we don’t have to start by building the next Amazon, or the next Netflix (of course you can if you are up for the challenge). Start small, and then the more capable you feel then go and try bigger projects.
Remember that every tutorial creator just as in anything we do have to practice a lot, hat to put in a lot of hours of hard work to be able to put a quality tutorial online. They are giving you your first tool to become a developer, they are giving you guidance and good practices, but what they can’t pass you through the tutorial is all the hours of practice and all the struggle to build the project they’re showing you.
Escaping tutorial hell is probably one of the scariest things you will do through your developer career. Because it means that you’ll stop depending on someone else work and start creating your own. You will start thinking and analyzing problems on your own, and yes it will be scary. I can tell you, going through your first project could be intimidating, but totally worth it. We have to learn to live with that fear and overcome it. Because just as in life, at the end of the day just by overcoming our fears is when we really grow.