DEV Community

Cover image for Escaping Tutorial Hell
Chris Benjamin
Chris Benjamin

Posted on • Updated on

Escaping Tutorial Hell

How I escaped tutorial hell

When you are first learning to code, you discover a place in your journey that is referred to as tutorial hell. You may not realize you are in this place until you get out of it.

What is tutorial hell?

Tutorial hell is referred to as a time in your new developer journey where you are watching tutorials, able to follow along, and replicate what the instructor is doing and it works. Sweet, so now I want to make my own variation of this so I break out a fresh project npm create-react-app awesome-app and try to pull from an API just like in the tutorial and it just won’t work.

The reason why is because the instructor planned their lesson, tested it ahead of time, knew which libraries to use, knew which functions needed to be made, new which abstractions would be used, and they tested it before they built it again and recorded it. The catch here is that the instructor went through the debugging and troubleshooting Part that you are stuck in right now the first time and they figured it out, but they only show you the working version.

This is similar to taking a driving test in the US, you’ve at least driven the car before and know how to operate it before you have to do it with someone watching who will determine if you performed well enough to be a licensed citizen.

The Escape

To escape Tutorial Hell, one must first realize they seem to be stuck in a loop.
If (editedTutotialCode !== success) return “watch another tutorial”
For your escape to be successful, you have to realize one thing, you have to realize what you don’t know. You watch the tutorial and it works, but if you think deeper you’ll realize you don’t know the libraries being used or aren’t familiar with a specific function or hook that was used. For example, if you followed a tutorial on fetching data from an API and the tutorial used a new library called Axios And this is your first time working with it. You then branch off from this tutorial and try to fetch data from another API Using Axios and your not getting the desired result. The problem is either in your knowledge of the library or the API being used and you must accept knowing that you don’t know how to use this library.

The solution

It’s important to understand that reading the documentation is actually really important. Take a moment and read that line again. The problem you are having is not unique to you, almost every developer goes through this at some point in their young developer career. The issue you are experiencing is simply not understanding the language, library, or feature before trying to use it. You must dedicate time to learn why a piece of code works before you can attempt to use it in your own product. The same would be if you copied code from StackOverflow and it worked, but why would you put that into production code if you don’t understand what it’s doing or why it’s working.

In the above example regarding Axios, let’s imagine you have never used this library before. You have two choices, watch another tutorial where the instructor uses Axios to fetch data from another API or reading the library documentation. If you read the library documentation your amplitude for success just increased exponentially because you are now learning how to properly use this library and can apply this knowledge to any future project where you have to pull information from an API.

One example from personal experience. I was trying to understand React Hooks after seeing it in a tutorial. I tried to use what I learned from a tutorial on the useEffect() hook. The problem I ran into was that it wouldn’t function how I wanted or though it would. I figured I must have understood this hook wrong and watched more tutorials on useEffect hooks and I still couldn’t make it work in my application. I did this several times and still was running into issues trying to apply what I saw in the tutorial in my own application.

What worked?

Going to https://react.org/learn and reading their documentation on hooks, and the useEffect hook itself and then I began to understand how to use the hook properly. There are three different uses of the useEffect hook and they have major differences on their affect in your code. I can now effectively use the useEffect() hook in any project confidently. This was a growth moment for me where I learned to read documentation and stop watching Tutorials and escaped tutorial hell.

You can have all the tools in your garage for building a house but that doesn’t mean you know how to build a house -Chris Benjamin

This is to say that anyone can possess the tools but this doesn’t mean you possess the knowledge. Take the time to educate yourself and level up your own skills, your future self will thank you!

Tutorials get your feet wet, but if you want to learn to swim you have to take the plunge and build something.

Takeways

  • Stop watching tutorials and following along without trying to create something
  • Start reading official documentation
  • Start understanding why it works and how it works
  • Know how to use the tools in your toolbox

I’m on @buymeacoffee. If you like my work, you can buy me a taco and share your thoughts 🎉🌮
Buy Me A Coffee

Latest comments (8)

Collapse
 
joostvanderveen profile image
Joost van der Veen

I learned a lot from tutorials on udemy and youtube. Still. But it is important to move on to the documentation in time and build something yourself. And everyone learns differently, for me it's seeing is doing and then I look at documentation.

Collapse
 
chrisbenjamin profile image
Chris Benjamin

Absolutely, learning by doing is an amazing learning tool along the journey. Tutorials are great, they get your feet wet, but if you are going to swim, you have to take the plunge and build something.

Collapse
 
bogdanbatsenko profile image
bogdanbatsenko

I would not turn down tutorials that much. Tutorials are important and a must to watch as soon as they help newbies to get grips on how exactly programming in let's say JavaScript works. To provide general background and understand how to write code.
Once grasped, you should try on your own and go through debugging and problem solutions stage.

Collapse
 
chrisbenjamin profile image
Chris Benjamin

I am not turning down tutorials, tutorials are wonderful tools. They help expose developers to new technologies, methodlogies, and thinking like a developer. What I'm encouraging people to avoid, is Tutorial Hell, whereas they are stuck in tutorial after tutorial and are not out their building by learning. Documentation is the fountain of truth.

Collapse
 
bogdanbatsenko profile image
bogdanbatsenko

Sure. You are 100% right

Collapse
 
vladi160 profile image
vladi160

I like the "ugly truth" type articles.
Learn a man to research, debug and read the docs and he can learn everything = "...teach a man to fish and you feed him for a lifetime"

Collapse
 
chrisbenjamin profile image
Chris Benjamin

I think the “ugly truth” needs to be said sometimes because the docs teach so much that you don’t get from the tutorials.

Collapse
 
waseyhasankhan profile image
waseyhasankhan

Motivational