Breaking Out of the “Tutorial Trap”
How I learned to stop copying and start learning
Disclaimer: As a developer who has focused on and only worked in web, I will be using examples pertaining to web development. Even so, I believe this guide can help stop many people from making some of the mistakes that beginners often make when learning to code in general.
If you’ve ever followed a tutorial, guide example, or online course as a beginner, you’ve probably fallen into the tutorial trap.
The tutorial trap promises knowledge and understanding — prime bait for any aspiring developer — then puts its victims in a state of confusion. The victim will follow tutorial after tutorial, wondering why that “How to Build Your First React App” article on Medium isn’t getting them any closer to making that huge app they meant to start building.
We’ve all been there. I personally spent a lot of time in the downward spiral that I now refer to as the Tutorial Trap. It resulted in gaining a lot of very specific knowledge on achieving specific tasks, but didn’t teach me anything about programming. It seems kind of contradictory for me to be writing a “guide” on the subject, but with any luck this will help others break out of that trap or avoid it entirely.
Change the Example
When you read something like a tutorial on how to create a simple To-Do List App, it makes sense to copy the example exactly to produce the same result. I would highly encourage you to change your version of the example drastically. Instead of creating a List with To-Do’s, make an Address Book with Contacts. This will help you focus on the important aspects of the tutorial, since you’ll be forced to apply all of the principles in a different “environment”.
Changing the base idea of your example app and successfully using the lessons you’ve learned from the tutorial is a much bigger accomplishment than you might think. This means that you could change the “example” app to pretty much anything and still be able to use the “To-Do List” tutorial to help you along the way.
Stop Copying and Pasting
I know there are tons of people who joke about copying and pasting code when they look at things like Stack Overflow, but you’re better off typing your code — even if it’s someone else’s code. Typing code means that even if you’re just following along, you’re still the one naming the variables, calling the methods, and defining the classes.
It doesn’t matter if the piece you’re copying from is 9 lines or 90 lines.
Type. Out. The code.
Someone thought it up for you. It’s the least you can do.
Redo Examples From Memory
It’s no secret that programmers don’t memorize all of the code they’ve ever used. That being said, you should know what steps you need to take and what to look up when you’re making a project. If you’ve followed a tutorial or a short course on building an app, try to start from the beginning and recreate it from memory.
If you find yourself stuck at every turn and you’re referencing the same tutorial piece by piece, you’ve essentially fallen into the trap. Try to “cheat” as little as possible and keep on trucking. Soon enough, you’ll know how to tackle problems from your own perspective rather than that of the person who wrote the guide you read.
Ask Meaningful Questions. Write Meaningful Searches.
There is a dreaded “question” that I’m always “asked” when working with or trying to assist new developers.
It doesn’t work.
Not only is this not a question, but it also is an extremely detrimental approach to solving your problem. Basically, it’s the equivalent of staring at an unsolved jigsaw puzzle and saying, “It’s not finished”.
Ask yourself what you’re really looking for. As developers, it’s our job to figure out why the program isn’t working and how we can fix it.
Example of a meaningful question / search:
Why isn’t the router handling my request properly when I visit this URL?
Request not being handled by the correct Router function
All in All
Tutorials are great. Don’t get me wrong. They’re extremely effective at helping one bootstrap a project that they’re not sure how to get started with. Problems begin to surface when tutorials are used as shortcuts to circumvent actually learning the concepts involved.
If you’re going to use a tutorial specifically to learn, however, remember to:
- Change the example and force yourself to apply concepts independently.
- Type the code to better understand what its purpose is.
- Redo the examples from memory to make sure you understand them.
- Ask meaningful questions to others or yourself when you run into problems.
As developers, our job is not to reinvent the wheel, but rather to use and build upon existing tools to materialize even bigger ideas.