DEV Community

Cover image for Stop Doing Coding Tutorials
Devon Campbell
Devon Campbell

Posted on • Originally published at raddevon.com on

Stop Doing Coding Tutorials

When you start learning to code, you’ll probably start with a tutorial. It’s a quick way to get up-to-speed with a new concept. Learn by following a step-by-step guide for building a canned project. You can quickly start to see how the technology works and feel the gratification of building something real.

That loop of reading the next step, typing out some code, and seeing it work is addictive. It’s too easy for newbies to get stuck in that loop.

What's Wrong with Tutorials?

The very thing that makes tutorials so addictive is also what stunts your growth as a developer: each tutorial is a solved problem. The difficult decisions are already made, the hard problems already worked out, and everything is laid out for you on a silver platter.

This is good for learning how to write code, but it’s not good for learning to solve problems. If you want to be a developer, writing code is an almost incidental part of what you do. People are actually paying you to solve problems. If you’re learning only how to write code, you won’t be able to be a web developer. It’s like the difference between paint-by-number and painting on a blank canvas. No one is going to buy your paint-by-number “masterpiece,” but someone might buy a work of art you painted from scratch.

What You Should Do Instead

As soon as you can, break away from tutorials and start applying what you’ve learned on projects. These can be pet projects you want to build or they can be freelance projects you do for clients. The goal is to get out into the messy real world and start dealing with all the unknowns.

The nice thing about your own projects is that they provide a kind of motivation to stretch your learning that is hard to come by in other ways. If you’re really excited about a project and driven to complete it, you’ll figure out new concepts, technologies, and techniques you might not have just for the sake of learning them. That’s because you now have a reason to learn them. They’ve become applicable to your life and critical for accomplishing your goals.

Instead of going out and trying to learn everything you might need to know before building anything, start building. When you hit a wall, go find some information on the one thing you need to know to break through. Apply what you’ve learned and keep moving. Rinse. Repeat. I call this “just-in-time learning.”

If you need some inspiration, check out my list of web development project ideas.

I mentor people like you to help them along in their career transitions. If you're not sure what to do next, sign up for a free mentoring session! We'll figure it out together. 👩‍💻👨‍💻

When Should You Do Tutorials?

If you don’t know anything about HTML, CSS, or Javascript, you can’t very well start a project using those technologies. Just-in-time learning only works from a solid foundation. Avoid the temptation to re-define “foundation” to encompass everything you haven’t learned. “I just need to learn React and I’ll be ready,” is the battlecry of the coding procrastinator.

The way you build that foundation can be through tutorials, books, mentorship, bootcamps (in-person or online), or other kinds of courses. Tutorials have a niche to fill, but that niche is much smaller than most people want it to be.

If you understand HTML and CSS, you can start a project. You may find parts of the project you can’t yet build, but you should start anyway. Here are the steps to take if you only know HTML and CSS:

  1. Start building your UI, applying what you’ve learned about HTML and CSS
  2. Continue building your Javascript foundation
  3. Layer in interactivity later after you’ve learned the basics of Javascript
  4. Layer in data persistence later still (if your project needs it) after you’ve built a foundation in back-end development
  5. Learn the next skill, technique, or concept your project demands

If you try to learn all these things without actually using any of them, by the time you get to the end, you’ll have to circle back and re-learn HTML and CSS before you can start a real project. Once that’s done, you’ll have forgotten everything you knew about Javascript. Welcome to the vicious cycle of learning web development.

Practice How You Play

How many elite athletes go pro by watching other players and mimicking their every move in contrived scenarios? How many world-famous pop stars play only faithful covers of other artists’ songs? You can’t expect to go pro as a web developer by following tutorials or doing what an instructor told you to do. People need to know how you perform in the real-world.

The only way to show them is to abandon tutorials for the messy, dirty, and uncomfortable realities of real-world projects.

Latest comments (59)

Collapse
 
teimoorbah profile image
teimoorbah

but how can i go from tutorials to build my own project? for example if i were to create a snake game in python what steps should i take to have a working program? can you help me with this?

Collapse
 
raddevon profile image
Devon Campbell

I'm not sure what you mean. You've created a snake game in Python, but it doesn't work?

Collapse
 
teimoorbah profile image
teimoorbah

no i just don't know where should i start from when taking a project like this.

Collapse
 
biffbaff64 profile image
Richard Ikin

Every language / Framework I've learned so far, excepting 6502 Assembly language, I've learnt by getting hold of an existing code base and playing with it.
Pascal, C, C++, C#, Java, Kotlin, COBOL, Z80, 680x0, 6809, 808x6, all learnt by playing around with existing code, making mistakes, and fixing them.
Rust and Python are about to be learned the same way.

Collapse
 
alara_joel profile image
Alara Oluwatoyin Joel

Thanks Devon.
So last week a dev made me feel a type of way. He said I was lazy not to be using docs, and rather learning with video tuts and blogposts.

Truth is i also search a lot of things out, and sometimes even spin up somethings on my own.

But yeah maybe I go to heavy on tuts sometimes.

So this is it, I have a full-stack web dev project (a very important one), on right now, and also have a full-stack tut from Traversy. and I wanted to work through how he structured his backend and apply it. I don't know if you get me?
I wanna do it side by side, and search out other things that will fit me.

On the front end, my styling is quite good. But my state logic in react is not 100% yet,
Is it wrong or counterproductive, working through the project this way.
In as much as I want to learn

Collapse
 
raddevon profile image
Devon Campbell

From my perspective, it's not wrong. The problem is with doing tutorial after tutorial and following the script to the letter.

There's nothing wrong with jumping into a tutorial to get what you need to apply to a project. There's nothing wrong with going through a single tutorial. (I do it all the time.) The problem happens when you get addicted to that feeling of completing tutorials, so you do nothing but that. It's like building a Lego set with the instructions. It's great that you can follow the instructions, but what if you smash the Hogwarts and the Millennium Falcon sets together? Can you build something cool on your own using what you've learned?

Just don't get caught in the tutorial trap, and you'll be fine.

Collapse
 
jjokah profile image
John Johnson Okah

Awesome Advice.
I try to learn fast so I could practice more.

Collapse
 
techy_tj profile image
Tanisha Jones

Thank you so much for posting this. You are absolutely correct that it’s so easy to continuously watch tutorials and get addicted and end up not learning a thing at the end. Trying to break this cycle NOW!

Collapse
 
raddevon profile image
Devon Campbell

I know only because I've done it so many times. 😜

Good luck breaking the cycle, Tanisha. Get out there and build your own project!

Collapse
 
farooqueabd profile image
Farooque Abdullah

Believe it or Not, this is the harsh Reality of Every Beginner

" If you try to learn all these things without actually using any of them, by the time you get to the end, you’ll have to circle back and re-learn HTML and CSS before you can start a real project. Once that’s done, you’ll have forgotten everything you knew about Javascript. Welcome to the vicious cycle of learning web development. "

So True.

Collapse
 
dkprog profile image
Daniel Koch

Such a great advice! Thanks for sharing.

Collapse
 
winas_ben profile image
Winas • Edited

Hello Devon, Thank you for that best article.
this is exactly what going on with me, I don't practice what I learned and after that, I got confused and forgot everything and got myself in the cycle of looping.

Collapse
 
raddevon profile image
Devon Campbell

Glad the post helped! Happens to the best of us.

Collapse
 
ssimontis profile image
Scott Simontis

I talked a lot of shit about sites like hackerrank and leetcode for a while, but when I started actually using them it was a really enlightening experience. Regardless of their validity or proof of competency, it's a lot more eye-opening forcing myself to sit down and work through an exercise instead of reading the description and being like "meh I can do that, why bother?"

Collapse
 
baamenabar profile image
B. Agustín Amenábar Larraín

Always do the tutorial, but never copy the code, change everithing and make it work.
I never use the same variable names, folder structure, component structure, markup, class names... damn, I even pull different dependencies if I can.

It will take you 5 times longer to complete, but you will understand what you are doing.

You will often end up deep withing the docs figureing why stuff doesn't work and learning why.

Do the tutorials, but never follow them!
You'll learn a lot.

Collapse
 
peacefulseeker profile image
Alexey Vorobyov

You just hit the sore spot!
Thank you Devon!

Collapse
 
anurella profile image
Anurella

thank you

Collapse
 
lpozo profile image
Leodanis Pozo Ramos

Awesome post. That is the real path.

Collapse
 
hailthedawn profile image
Ketaki Tilak

This is one of the best things I've ever read. My intern manager, in the past, was a passionate educator and avoided giving me answers whenever I asked how to do something. He encouraged me to find everything out on my own, after failing a thousand times.
This really needs to be highlighted.

Collapse
 
gtanyware profile image
Graham Trott

The difference between tutorials and Stack Overflow answers or code walk-throughs of the kind often seen on YouTube is one of intention. I think it's fine to inform, but as you say, education is far more than just copying. Most tutorials are like painting by numbers; you may get the result but did it actually pass between the ears?