DEV Community

Cover image for Stop Doing Coding Tutorials

Stop Doing Coding Tutorials

Devon Campbell on March 08, 2019

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 ...
Collapse
 
daviddeejjames profile image
David James

So true. Ive even seen tutorials these days that ask you to pause and think about/try the problem first. Another suggestion Ive seen is to not follow the tutorial 1-to-1 and produce a solution with your own spin on it. For example, instead of building just a TODO list app, making it a shopping list app with extra features. Anyway that can get you thinking about the code in a active rather than a passive way will work wonders in the long term!

Collapse
 
mykalcodes profile image
Mykal

Totally agree with you on this! I definitely see major value in taking tutorials that cover tech your wholey unfamiliar with as long as you make sure to make it your own along the way.

Collapse
 
alara_joel profile image
Alara Oluwatoyin Joel

This one is very true

Collapse
 
andrewharpin profile image
Andrew Harpin

This is a chicken and egg problem, tutorials vary and as you are learning something, how does the individual know when they have sufficient knowledge to break out?

Or is this a representation of poor tutorials?

Software engineering can be taught, but not all of it can be taught online. As you stated they are known problems. Problems that supply you with the answer are part of the problem.

The challenge is educating the pupil to identify the problem, this is not impossible, but is generally overlooked by many tutorials.

Sometimes this requires a experienced human observation, i.e. did they achieve the set problem without any predefined solution?

Another input which can be done online is providing examples of known issues, but having the pupil identify them.

The final one is getting them to repair or extend something that already exists, this is how education is done in business, build them up slowly inside out. Rather than typical outside in approach usually taken by tutorials.

This allows the pupil to gain the experience and knowledge without having to conceive an entire system. Which is generally beyond their capabilities and their stage of development.

Collapse
 
justalever profile image
Andy Leverenz

As a tutorial author I must say that "creating" tutorials helps you, the instructor learn. You have to talk through your process and make the end user understand why you chose the path you've led them down.

I consider tutorials supplemental but extremely beneficial. Saying you should never follow a tutorial is a little overkill. I got my start following them to understand core concepts. It absolutely takes practice outside of following someone's lead to really learn. I find this to be the case for education entirely.

Collapse
 
joehobot profile image
Joe Hobot

I have this nice chrome extension called momentum that I wrote in big'a$$ letters "PYTHON IT" - which reminds me that every-time I want to look something up I also have to think about how I would do this in python. It's a small thing but it forces me to think about it every-time I open browser or new tab.

Collapse
 
tiffany profile image
tiff

This was my Achilles heel and something I struggled to break out of for three years. I wasted three years of my life being afraid of getting my hands dirty and as such have failed at an internship and some interviews.

The end of last year and this year has been completely different. Yeah, I have courses but I rarely finish them; I just need to get the gist of a thing then I dig in. I've also started working with basic sandboxes on Codesandbox.io to sharpen my skills. It's helped me level up more in one year than in the previous three. I can't stress building things enough.

Collapse
 
anduser96 profile image
Andrei Gatej • Edited

Great article! I totally agree with you.

What I've noticed though is that sometimes watching how other people solved a problem can be very beneficial. I'm not exclusively referring to video tutorials, but also to open-source projects.

Whenever I'm seeking for inspiration or for best practices, I like to explore how other people approached the problem. This inherently implies that I already know the basics of the technology I'm working with. It is up to me then to extract the things that I need and to apply them in my projects.

I think doing this could serve as a complement to building things on your own.

I've been doing this for a while and I'm content of what I've achieved.

Collapse
 
ondrejs profile image
Ondrej • Edited

100% agreed. Coding by doing tutorials leads nowhere. One has to use his own logic and set up his own goals. I understand the fact that tutors could be handy for beginners but the best way is to really think about architecture and logic of your app, read the documentation, have a slow progress, learn stuff the hard way but it's only way that really matters.

Collapse
 
ondrejs profile image
Ondrej

But - to be clear - just watch the tutorial. Just to see how it works. But then deploy your own app using your own logic. I didn't want to say that tutorials are useless, but it's only first step. They can show you how things work, but the rest is up to you.

Collapse
 
lenoir_aaron profile image
Aaron

It may depend on what your goal is: to make something or to make something that is of technical superiour quality.

I personally feel that reading the documentation is inefficient and I only do it if I need to do so. Which is usually when something isn't working as expected. In documentation, I usually skip immediatly to the code examples.

Collapse
 
stealthmusic profile image
Jan Wedel

I don’t know, I’ve never had any problems with tutorials. Usually I start with the tutorial, then I will apply the knowledge to some real problem that I want to solve, then I’ll look up the tutorial information again to find out why some decisions have been made in that way.

One very important thing is that tutorials can tell you the intentions of those who made the language, library or framework and how it is supposed to be used. This is very helpful if you can see it with real code examples and examples that are tied together to an application that actually works. Because sometimes the documentation only covers some slices of information.

So basically you’re right, after reading a tutorial you won’t know everything about a language and you won’t even know and understand everything that you’ve read with in the tutorial. But to me it’s still worth it...

Collapse
 
biz84 profile image
Andrea Bizzotto

Having been both on the “learner” and “instructor” camp, I can confirm that building things and solving problems is the best way to grow. Hovever, as an experienced developer I have also found myself jumping to an unfamiliar tech stack. In this context, good articles and courses are valuable, and can offer a more structured learning track.

Collapse
 
dylanesque profile image
Michael Caveney

Absolutely! One huge benefit of judiciously used tutorials is repetition, which is extremely useful with technologies that have a "learning curve", such as D3.js or Redux.

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
 
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
 
madhavgupta profile image
Madhav Gupta

What I do I follow a tutorial to grasp a concept and then apply it to the project in the tutorial and a side project of my own. Is it okay? I'd like to hear your thoughts.

Collapse
 
anthonybronkema profile image
Anthony Bronkema

Speaking from experience, I just think that if you walk away from a tutorial, book or StackOverflow answer and can actually use the concept to solve problems, you’re fine.

If you are only able to re-use the code from the lesson and not fit it to your problem, you haven’t learned the concept, you’ve just paid attention to the lesson.

Collapse
 
raddevon profile image
Devon Campbell

This is exactly the right way to use tutorials, in my opinion.

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
 
dirkncl profile image
Dirk Levinus Nicolaas

Very good advice...

Tutorials are just a way to open our way of thinking about how the basis of a program can work.

Curiosity and intelligent play logic are very helpful in creating or modifying programs.

Hold the principle of equality with the term If you can do that, I can do the same, even if we do not achieve equality, at least we have tried towards that, on the road to equality we will find new concepts or ways of designing a program .

What I did in this discussion was holding the principle above, even though I was not fluent in English because I was from Indonesia, I tried to achieve equality even with the help of google translate.

Collapse
 
macram profile image
Manu Mateos

I actually don't do tutorials based on "now copy this chunk of code on line whatever, and run, and now copy this chunk of code on line whatever, and run again". I read the code and I like to understand the solution chosen for that problem, but I don't understand following that point by point.

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?

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
 
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
 
maxkatz profile image
Max Katz

Doing real-world projects is always a great way to learn. But as often in technology, some developers like to learn from tutorials and some developers prefer starting a side project to learn. I don't think there is right or wrong way to go about this.

Collapse
 
jaakidup profile image
Jaaki

Tutorials are kinda great for that initial intro into a technology.

Personally I prefer videos, because lately the written tutorials seem to be incomplete, as many are written by beginners because someone said they need to write blog posts to get a job. URGH!!!

Just grasp the concept, then go build something.
Whilst building a project is when you'll figure out how to really use something you've learnt.

Collapse
 
theodesp profile image
Theofanis Despoudis • Edited

Not all tutorials are bad and you can learn a lot even if they serve them in a golden platter. Take for example the

Getting Started with iOS tutorial here which is really great link

Everything is step by step and at the end you have a real project. As a starting point is invaluable.

Collapse
 
ltdat287 profile image
dat le tien

I agree. Sometimes I try to follow the tutorials but I feel like a my problem solving skill is not used. Very passive.

Collapse
 
mattstuddert profile image
Matt Studdert

Completely agree Devon! This is actually the reason why I created Frontend Mentor.

There are so many great tutorials out there, but it's easy to get stuck in the comfort zone of theory and code alongs.

The bulk of the learning really does come from building actual projects and figuring things out as you go!

Collapse
 
hotboy01 profile image
Osasona Similoluwa David

Nice piece,if you learn without actually doing you tend to forget what you've learnt happened to me when I first picked up HTML CSS and JavaScript, but when I got my Udacity frontend Nanodegree scholarship I got the chance to do as i was learning.

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
 
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
 
ninbryan profile image
Bryan Maamo

I hate how viciously true it is. We must break away from learning and break into learning.

Collapse
 
treddson profile image
Taylor Short

I need to read this article to start off my day, everyday. Hopefully it'll shake me of the tutorial hell I've found myself in these past 2 years! Thanks for sharing!

Collapse
 
genta profile image
Fabio Russo

Totally agree with the "you will forget it, if you don't do It, for real".

Doing lots of tutorial will teach you that tutorials are usefull only if you really need that kind of stuff.

No one can understand this, just by reading a (well written) article, because of fears... fear to be a bad developer in a World where everyone is good (apparently).

Collapse
 
karlkras profile image
Karl Krasnowsky

Interesting observations and got me thinking about what the more impactful tutorials were for me and why.
What I've realized is, given the technologies evolve so quickly, tutorials written as recent as 6 months ago can become outdated and require attention to figure out solutions for deprecated code.
So this enforces how you figure stuff out rather than simply typing stuff by rote.
Okay, I might complain that the author should keep her/his content up to date, but it helps to challenge me to work through "bugs" that can happen in an everyday work scenario.
I do believe that tutorials can be helpful, especially if it's applicable to something you're currently professionally involved with.

Collapse
 
marcorichetta profile image
Rich

Although it's a bit contradictory, this is what I like about CS50 and his other courses like CS50 Web or Mobile. You're taught the technologies (HTML, Javascript, Python, SQL) and then you have to make a project related to what you learnt. The difference is that you have to search and read docs and make choices on your own (e.g. DB schema or tables), without knowing if they're the best solution.

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
 
anurella profile image
Anurella

thank you

Collapse
 
jjokah profile image
John Johnson Okah

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

Collapse
 
mcarpenter profile image
Matthew Carpenter

Great read! I think building while learning is a great tip. I’m going to implement this into my learning. I’ve been there, where I’m learning something new and had to double back. Thanks for the read!

Collapse
 
bradtaniguchi profile image
Brad

This this this! Learn by doing, not by watching! Great article, said everything I've been saying for years haha!

Collapse
 
lpozo profile image
Leodanis Pozo Ramos

Awesome post. That is the real path.

Collapse
 
aligear profile image
aligear

Couldn't agree more. I noticed that I was so overwhelmed with tutorials that I decided stop and dive in directly in a project, I learned far more from that than any tutorial I took.

Collapse
 
svasquez profile image
Smill Vásquez

I’m totally agree with you. Learn code by tutorial is not the right way to do that. The tutorials put a limit to your knowledge. Good article!!

Collapse
 
eddsaura profile image
Jose E Saura

It seems so easy but applying it to yourself...

Collapse
 
dowenb profile image
Ben Dowen

As a serial tutorial taker who recently starting doing some small projects... +1

Collapse
 
dkprog profile image
Daniel Koch

Such a great advice! Thanks for sharing.

Collapse
 
inflammatorydev profile image
inflammatorydev

But doesn't everyone just do TODO lists for their real work anyway?

Collapse
 
raddevon profile image
Devon Campbell

😆

Collapse
 
peacefulseeker profile image
Alexey Vorobyov

You just hit the sore spot!
Thank you Devon!

Collapse
 
trueneu profile image
Pavel Gurkov

Also, stop writing coding tutorials please.