esc from tutorial hell

The Sha(w)shank Redemption, for programmers

About

tutorial • hell

noun

  • a perpetual cycle of going through programming tutorials.
  • a recurrent state between a programmer and developer, often recurring with a probability of 1.

Picture this: You wrote your first ‘Hello, World!’ program and are excited to enter the world of computer programming. An online course that you picked up holds your hand from declaring a variable all the way through to declaring classes. After diligently working through the course, you are now (arguably) a better programmer and pretty chuffed with yourself. Maybe you were already familiar with the basics, in which case you decided to go through one of the countless “Learn Node JS in only 2 hours” tutorials on YouTube. Life was, without a doubt, better after you had finished your tutorial than when you started it.

Or was it?

With your tutorial all wrapped out, you are now ready to venture out into the world to develop your own projects. You look at possible Node projects for inspiration. There’s ExpressJS, a massive enterprise of a web framework built on top of NodeJS. Perhaps something smaller to begin with, you say to yourself. “Maybe a better way to get my hands dirty would be to fix bugs in Node.” You log on to GitHub and make your way to the Node repository - after all your tutorial taught you everything there was about Node, didn’t it? You quickly find that Node itself was written in C, and the biggest contributors have committed over a million lines of code to the codebase already!!” All of this seems so hard.” If only there was only a tutorial which showed you how to work with Git/how to learn C/how to build a Node package, you could’ve done it. And you wander off into the infinite woods that is the Internet in search of this next tutorial.

Sounds all oh-so-familiar doesn’t it?

What I’ve just described to you is the state of mind known as tutorial hell. Most programmers, and probably all self-taught programmers, enter it. Very few leave. There is lots at play here, and this blog discusses my journey into understanding this phenomenon through the lens of social sciences, psychology, and the nature of programming and education itself. I also hate giving (as well as receiving) prescriptive advice, so I will also chronicle my own venture into battling my personal tutorial hell. May the programming Gods smile upon us!

Talk is cheap. Show me the code.
Linus Torvalds