The Right Way to Use Tutorials
Tags: beginners, learning, discuss
Published: 2024-01-17 15:30:00

This post is primarily aimed at developers early in their coding journey, in particular self-learners trying to break into the industry.

This is advice I wish I had when I was starting out.

> ##There's a right way to use coding tutorials and a wrong way to use coding tutorials.##

In this post, I'll explain what this means.

### The Wrong Way to Use Tutorials

The wrong way? Coding along with a tutorial, copying what the teacher is doing.

I'm guilty of this. I've done it countless times. And in a pinch, I still do it, just to solve a problem and get something out the door.

Why is this wrong? When you code along with a demo, you're not learning how to code. You're learning stenography. 

If you get into this habit, you'll probably struggle to build something on your own. And that's how you end up in tutorial hell - dependent on tutorials but unable to use what you're learning.

I'm not saying avoid tutorials. Tutorials are actually great. I mean, think about it: you can find a tutorial to learn just about anything coding-related, many of them for free. That's a good thing. 

But the trouble is, tutorials are just a resource. They're incomplete on their own. 

In school, you have homework and tests. While annoying, they're actually designed to check for knowledge, deepen memory encoding and recall, and translate knowledge into skills.

That's why we fall into the trap of coding along. Without an assignment, we try to skip to translating seeing into doing.

And don't get me started on copy-pasting the code from a tutorial without even reading/watching it. Let's just all agree that we've done it in the past, we might occasionally do that in the future, and give ourselves a pass.

### A better way to watch tutorials: Consume, Summarize, Practice

#### 1. Consume

Watch/read straight through the tutorial, taking notes. I recommend taking written notes rather than typing. Some studies have suggested that taking written notes helps with long term recall, because the physical act of writing forces you to slow down and actively engage with the material. 

While taking notes, try to avoid writing down every single step. Generally speaking, with programming you're not trying to learn a precise step-by-step process, but rather techniques and strategies for solving problems, and how these techniques work.

You should also pause/rewatch if something is confusing. Unlike a live lecture, recorded media puts you in control of the experience; use these controls to your advantage.

#### 2. Summarize 

Next, write a short summary description of the tutorial.

This process checks to make sure you understood the tutorial at a high level and remember the essentials.

Feel free to reference your notes at this stage. This isn't a test, this is translating what you've watched into your own thoughts.

**2b. Check Your Summary**

After completing your summary, watch/read through the tutorial again to grade your summary and fill in any missing gaps.

At this point, you should have a detailed description / step-by-step guide in your own words, which you can use for future reference. Congratulations, you're no longer dependent on the tutorial.

#### 3. Practice

Next up, you're going to practice your newly-learned skills by creating an assignment for yourself.

Write down the basic requirements of the assignment. List all the things the program in the tutorial actually does. You're trying to make a list of acceptance criteria for your assignment - what does your program need to do to replicate its functionality?

Next, complete your assignment. You should be re-creating the program from the tutorial from scratch.

During your practice, avoid looking at your notes unless you're completely stuck. Instead look at the program specs from your assignment and try to figure out the best solution.

The goal is the output / solution, so don't worry about getting each step right.

#### Bonus Practice

If you really want to go to the next level, create a second assignment where you change up some of the requirements.

Because applying what you know in a new situation is the best way to sharpen your skills.


### Conclusion

Do you use a similar system for learning? Do you take written notes or type them out? I want to hear from you what's worked.

And if you found this helpful, head over to [curricular.dev](https://curricular.dev/?ref=devto&src=tutorials), check out our developer learning guides where we recommend the top courses to learn in-demand topics, and sign up for our mailing list. Also, if you're on Twitter/X, [let's connect](https://twitter.com/curricularhq).

Stay tuned for more in this series, the Developer's Learning Toolkit.

Happy Coding!