In Defense of Tutorial Hell

Ahhhhhhhhhhhhh!

Tutorial hell! It's a terrifying, terrifying place to be as a developer

Or...is it?

Tutorial hell is a phrase that comes up a lot. Especially as advice for new developers on how to move up in their careers. Tutorial hell is described as someplace to avoid, to try not and get trapped there. The advice can get discouraging if you are trying to learn on your own and the majority of your resources are tutorials.

This blog post will talk about what tutorial hell is, and the good and "bad" aspects of using tutorials to learn a new skill. I'll talk about my thoughts on tutorial hell and how it really isn't as bad as the internet makes it out to be.

What Is Tutorial Hell?

“Tutorial hell” means participating in tutorial-based content to create projects or apps. Most of your time is spent building what other people are telling you to build, instead of new, original concepts.

Now, I’ll dive into my thoughts on the good and bad aspects of tutorial hell.

The Good

As someone who is mostly a self-taught developer, I 100% get the appeal of tutorials. They can be a great instructional device to learn or get familiar with a new framework or programming language.

An example I like is the tic-tac-toe game as part of the Intro to React documentation. The tutorial says, it well, in why you should rethink skipping the tutorial.

We will build a small game during this tutorial. You might be tempted to skip it because you’re not building games — but give it a chance. The techniques you’ll learn in the tutorial are fundamental to building any React app, and mastering it will give you a deep understanding of React.

Yes to learning the fundamentals before diving into the more complex aspects of React! Since tic-tac-toe is a relatively easy game to play, and most people know how to play it, it's a good reference for building on the fundamentals of React (or whichever framework, language, etc you are trying to learn). Someone going through this tutorial can focus on "how do I pass props again?" instead of having to come up with a brand new concept (which is like having to learn two things at once).

Another point I would like to make is that tutorials (like building a simple game) are great for people to learn concepts better by doing, as opposed to reading documentation. I'm one of those people and have no problems going through a tutorial to help solidify core concept when I feel like am lacking in that area.

The Bad

From my perspective, there are two less-than-ideal aspects of doing too many tutorials

  1. You are jumping around to too many things / not going deep in a topic
  2. You end up with a lot of small projects that look very similar to everyone else

Jumping Around

I'll start this off with a positive note. Doing multiple tutorials in multiple frameworks/languages/etc is fine. You're allowed to try different things, to change your mind, to find a tutorial that helps you learn what you want to learn.

Where the problem tends to pop up, is that tutorials are—usually, but not always—aimed at a beginner/novice skillset. Again a tutorial as a learning tool is great. But you'll get to a point where you've learned that all you can from tutorials and need to start deepening your programming knowledge.

Again, as a mostly self-taught person who codes, I've done a lot of tutorials. I love them. Sometimes I do them for fun. But for the longest time, I felt like I stuck in learning the "100 levels" concepts, but did not know how to move to the "200 and 300 level" concepts.

Your Project List Looks Like Everyone Else's

There are strong opinions on either side if it's ok to showcase tutorial apps or projects in your portfolio. On one hand, showing that you know how to code a thing in insert-cool-framework is great, especially if you are getting started or trying to break into tech. I'd argue that some work to show is better than no work to show.

At the same time, yes you can code a thing, but employers or hiring managers may not feel the same way. Without supporting context, it can be difficult to tell how which code was provided as part of the tutorial versus how much you coded.

And if you did code it. What does that mean? Did you type it line for line as it was explained in the tutorial? Or did you go off a prompt—like, create a function that returns a random integer—and figure out your own solution?

Think about it this way. Do you understand the fundamentals of what each line of code does and why it works? Or just that it does work and you can't articulate how it works?

Conclusion

At this point, I hope you realize "tutorial hell", depending on what your goals are, is not a terrible place to be. Most advice doesn't go into detail, but the key takeaway I'd like for you to have is that tutorials can be a healthy part of your learning journey. However, there will be a point where you need to move past tutorials and execute your own ideas.