DEV Community

Cover image for How I Escaped Tutorial Hell
Jacob Kim
Jacob Kim

Posted on

How I Escaped Tutorial Hell

Image description
Image generated by Meme Generator

Let me tell you something, kid. A long, long time ago, in a galaxy far, far away, a man, like so many others before him, left to the tutorial hell. Legends say he never returned. Don't be like him.

-- Developer, about to watch his 75th tutorial on how to create a blog web app

When Dante first wrote Inferno, he describes his experience traveling left to the tutorial hell like so many others before him through the nine different circles of hell. Being a 14th-century man, Dante probably didn't know of the existence of one hell - the seemingly benign but the most sinister and enfeebling of them all: tutorial hell.

Today, we are blessed with an abundance of tutorials. It is really easy to get started in almost anything that you want to do. There are also lots of high-quality tutors and teachers on YouTube, Udemy, etc. With so much guidance, you'd expect nothing to go wrong, right? Everyone can achieve their dreams and no one will be left frustrated, right?

Reality is never that rosy. The cornucopia of tutorials and guides has fostered a new breed of developers: those stuck in the infinite loop of tutorial hell. I was no exception as well, but I have managed to escape the vicious cycle. In this post, I'd like to share my experiences and give advice to those yet to escape.

Image description
Image sourced from gfycat

How I got trapped in the tutorial hell

It was back when I was in high school. I just taught myself how to write simple code in Python. It was good and all, but I quickly realized that printing out "Hello World" on a console with a for loop isn't the most useful thing to do. So I went on a soul-searching journey (that is, I googled what I can do with Python). I came up with the following list:

  • Data science
  • AI/ML
  • Web development

I decided to go with web development because I wasn't interested in the first two topics at the time. Also, one of my teachers recommended to me this thing called Django.

So because my knowledge of Django and web development was akin to that of a three-year-old kid, I thought that it was a good idea to watch tutorials put together by people who are well-versed in the topic. I watched a tutorial from Traversy Media and actually finished the entire series. At this point, I had a blog web app up and running, and I felt pretty proud of myself. Ok, let's see if I can do this from scratch again. I couldn't do it. Nothing came to my mind, and I was left dazed and confused. A humiliating defeat.

Was the tutorial bad? Probably not. Which means that I'm probably really bad. I should watch more tutorials and "learn".

-- Young Jacob, about to step his first foot into tutorial hell

The feedback loop: getting stuck feels bad, but trying to get out feels abysmal

Tutorials are powerful. They are a good source of knowledge. But it is a very protean and malleable substance. It takes the form of whatever you want it to be. This is an issue because, for most people, tutorials take the form of copium.

Image description
Image generated by Meme Generator

This might sound a bit harsh, but I think many people use tutorials as a coping mechanism. Watching these tutorials make us feel as if we know our stuff. We feel confident, and copying code verbatim following the steps through, and seeing immediate results can be a major ego boost. But as soon as we try to make something ourselves, we get pummeled by the harsh reality.

We haven't actually learned anything.

I am not off the hook on this. I watched hundreds of these "How to make X" tutorials and racked up thousands of hours of playtime. Every time I watched these videos, I felt awesome. I felt like I was being productive, and I was making something useful. I have a folder on my laptop that holds all my code from tutorials, and there are lots of dead blogging web apps and to-do list apps. One tutorial done, great, another web app to throw at the folder of oblivion. I have to admit, the state I was in was pretty pathetic.

Let's make it clear: watching tutorials to learn is fine, but being addicted to tutorials is lying to yourself, and is a form of instant gratification that we need to cut.

How to end this cycle

Watch the tutorial. Then try to recreate the same thing without looking at the tutorial. Fail. Your ego thinks you can do it, but your brain realizes that you actually can't. Feel the cognitive dissonance. Let that sink in a bit. This is a good wake-up call.

You need to realize that relying on the tutorial isn't going to help you in any way. It's like doing homework. The less you care, the more likely you are to cheat and copy answers off Chegg or Sladers. You need to care more. Think of why you wanted to start programming in the first place. Is it because you find the concept genuinely interesting? Is it because you like building cool things? Or is it just for the money? Whatever the reason may be, if you set your purposes clearly, then you will be able to build intrinsic motivation. In other words, make yourself want to do programming because you genuinely want to achieve something great.

Also remember, don't compare yourself to other developers so much. It's like comparing apples to oranges. Everyone is playing a different game, and their rules slightly differ from yours. Don't get crushed under the pressure to do better than everyone else. It is your first attempt at creating something yourself, and Rome wasn't built in a day. Instead, trust the process and keep up the honest work.

To me, the ideal way to learn programming consists of the following steps:

  1. Find something that you want to work on or create.

  2. Brainstorm and design the app's structure. What functionality will it have? How is it going to be implemented? Each functionality can be created into its respective module. Split your project up into smaller, more manageable bits.

  3. Pick your weapon of choice. Watch a tutorial or read the documentation to get a gist of how to use the tools you have picked.

  4. Using those tools, try making these modules yourself. Only look up documentation and tutorials when you get stuck.

  5. Repeat step 4 until you are done.

I followed the above steps, and I escaped the vicious cycle before I even realized it.


Tutorial hell is a trap that many new developers fall into, and it is a tough one to escape. However, it is something you can overcome. Know that many before you have succumbed to instant gratification as you have. But also know that many of them actually managed to escape. So don't lose hope, discipline yourself, and trust the process.

Thank you for reading! I hope this post can help new developers get over the tutorial hell and become strong. You can also view this post on Medium and my personal website.

Best of luck,


Top comments (6)

jonrandy profile image
Jon Randy 🎖️ • Edited

I really don't understand how 'tutorial hell' became a thing. I don't think I've ever done a coding 'tutorial' in my life. Learning to code for me was/is all about looking at some example code or documentation, then writing something similar, or modifying the sample code to see how it works.

A voyage of discovery driven by curiosity is far more rewarding than being lectured to by someone who may or may not know what they are talking about.

itscosmas profile image
Cosmas Gikunju • Edited

A wonderful piece. The true way to learn programming is to leave "school" and join the "world" . Build, hurt your ego while doing it, repeat.

yw662 profile image
yw662 • Edited

I avoid tutorial hell by avoid tutorials.
If you cannot understand it by just reading the docs, it is bad or bad for you. So, if it wants beginners to learn by tutorials instead of from docs, it is bad for everyone.

seek4samurai profile image
Gourav Singh Rawat • Edited

🦄This article is both Gold and despair at the same time, so true :(

masonharper profile image
Mason Marper

Thanks for writing this!

hazannovich profile image

Very helpful Thanks, seems applicable to any kind of studying and learning in general.