What is “Tutorial Hell”?

Adrian Trujillo Duron
4 min readJan 11, 2022


Photo by Chris Barbalis on Unsplash

As a self-taught programmer, I have done many tutorials, courses and bootcamps that I come across online. Usually when I finish a tutorial, I start looking for another one quickly, I feel that I must fill my head with knowledge as quickly as possible. Since I can make the content of the project without problems, I begin to believe that I am an excellent programmer.

However when I try to do something on my own I don’t even know where to start! Do you know what could solve that? Another tutorial! And that’s how the cycle begins… Tutorial after tutorial, course after course, you keep feeling that after completing the next one you will finally be able to develop your personal project.

The truth is that there are a few reasons why we keep falling into this loop.

Lack of Risk — Building a project form a tutorial has no risk. You can’t fail. If you ever get stuck you can continue watching the video for the answer, or even check the GitHub repository for the complete code! You don’t feel a real risk because you already have all the answers.

Feeling of Progress — After finally completing the “Hero to Zero”, “A-Z”, “Complete Roadmap” courses and tutorials we get a sensation of progress. We like to feel that we are moving forward and are actually learning something.

Impostor Syndrome — The fear to being exposed as a fake programmer or developer is a very real condition most self-taught and even junior developers have. Making a tutorial is an excellent way to gain knowledge and calm this fear. But the true knowledge comes from actual struggle and searching for the right solution.

How to Escape “Tutorial Hell”

Photo by Linh Nguyen on Unsplash

Build Something From Scratch

The easiest and most straight-forward way of escaping tutorial hell is by simply stop doing tutorials and build something from scratch. And from scratch I mean from zero, no templates.

Relax, this you got this! For example, after doing a tutorial about React, try making a project like a movie website. After making a Django tutorial, try making a database for managing employee data for a company. If you are not ready for the jump try making the projects you made in the tutorial, but this time without watching videos or reading the code. You will be familiar with the task and that will make it easier for you.

It may seem tedious. But you will also learn a lot. Because you won’t have anyone to help you. You have to read and find among all the information, what you need and discard what you don’t.

Contribute to an Open-Source Project

Instead of building something from zero, you can try to add little contributions to an open-source project. I talk more in depth about open-source and why you should contribute in a previous post, but in short: The Open-Source community is very big and very helpful. You can choose your level of difficulty by first contributing to small issues and then moving on to making bigger contributions.

By working on the issues you will reinforce knowledge and also force yourself to learn new things that perhaps you would not have learned elsewhere. Contributing to an open source project also brings a great exercise for your social skills, you must have good communication with the community behind the project in order to make a good contribution.

Try changing something from the project every-time, don’t just copy! You will encounter problems that you will not know how to solve. Try finding the solution by asking friends, co-workers, mentors, Google, StackOverflow, Reddit, blogs, etc… A characteristic of a good developer is that they have the ability to search for information to come up with a solution that will solve their problem. You don’t get this ability overnight, you have to develop it! No matter how long you’ve been writing code, there will always be something you can’t do. The best thing you can do is to start coding, whether it goes well or badly, solving the problems is where you will have the real learning (the real fun). Don’t become an expert in Python, Java, React, etc … Become an expert in solving problems!