DEV Community

Cover image for Escaping tutorial purgatory as a new developer

Escaping tutorial purgatory as a new developer

Tony Mastrorio on May 25, 2018

For a long time I held off starting my own side projects because of how much I didn’t know how to do. For every project I could think of, there we...
Collapse
 
ben profile image
Ben Halpern

Yes. I've observed this behavior a lot, but haven't seen it articulated so well.

For what it's worth, I'd say I've always had the opposite instinct, of trying things without carefully following the tutorials. From either direction, I think there is definitely a sweet spot in terms of each type of learning/doing.

Collapse
 
juanfernandes profile image
Juan Fernandes

See when I first started I was the same, tried things first until I got stuck. Not sure when that stopped.

Collapse
 
tonymastrorio profile image
Tony Mastrorio

Thanks, Ben! Agreed regarding the sweet spot, and it's probably a little different for everyone.

Collapse
 
kayis profile image
K

"My code from that project isn’t pretty. It’s not DRY. It needs some refactoring, and there are probably a lot more efficient ways I could have done several things. There are also some things I did in that project that I didn’t even fully understand."

That describes pretty much all software projects, we are all human.

You learn about DRY, you write code, you try to apply it, you get it 30% 50% or 80% right and that's always better than never to have known about DRY and only getting it 5% right by accident.

Collapse
 
tonymastrorio profile image
Tony Mastrorio

This is an excellent point! And there's always a tradeoff between how much time you want to spend refactoring vs learning and building something new.

Collapse
 
kayis profile image
K

and while refactoring a whole architecture is a pain, VCS allow for code changes all the time.

Collapse
 
georgeoffley profile image
George Offley

I was trapped in this for a long time. The hardest concept for me to wrap my head around is to come up with a goal and use code to accomplish that goal, without a tutorial to guide me. I would say for anyone staring at a screen unable to move without a tut to guide them, start by looking for a small goal. Print a giant "F" with hashtags using your chosen language. Look for an api that looks cool to you and write out some requests. Anything to break you out of the mindset of being unable to do anything on your own, and just choose a goal and use code to make it happen.

Collapse
 
cat profile image
Cat

I've been so afraid of making my own stuff. In the end, you just have to do it, make mistakes, fix 'em, and refine your app along the way-- which means constant research and observation, doing and un-doing.

We learn better from it.

Thanks for the much-needed, well-written, amazing article!

Collapse
 
creativ_bracket profile image
Jermaine

I second what you said about being "afraid of making my own stuff". I've been experiencing this fear a lot lately, and it has been down to following the path of least resistance. And that's how we end up in purgatory–an attempt to map out that "path" through hours and hours of tutorial-porn.

The ugly truth about making progress is that it comes with a boat load of obstacles. The earlier we accept this, the earlier we dive into making our own stuff with the little knowledge we may have.

Knowledge about the size of a mustard seed is good enough to start the next project

Collapse
 
rpalo profile image
Ryan Palo

This is great! Thanks for sharing. It's a good reminder I think I needed.

I would also say that it's ok to not be ready to leave tutorial purgatory yet. If you're happy following guides and getting overviews of cool technologies, and you don't have a pressing need or desire to build something, don't feel like you are lame for liking to follow along with tutorials. :)

Collapse
 
shyakaster profile image
alex shyaka

Nice one. I love to code just to know what's happening in the industry. I'm more of an enthusiast than anything. I love tutorials. But true tutorials in and of themselves don't make you a developer. You have to build stuff.

Collapse
 
tmcsquared profile image
TMcSquared

Thanks Tony! As a novice programmer, That is exactly where I'm at, watching tutorials and not enough on my own(well okay add Google ;D ). I guess the saying is true: "Experience is a hard master, but the best teacher."

Collapse
 
smiter911 profile image
Wandu

To tell you the truth this is still me in more ways than one, I have tonnes of tutorial videos. Yet I have so many ideas in my head but don't really know how to implement...then I go on tutorials and read/watch on what to do...after that poof knowledge is gone. You are right, at times one needs to just bite the bullet and start something and learn by doing.

Collapse
 
maria_michou profile image
Maria Michou

Thanks for sharing, I'm sure a lot of us can relate. There has to be a point where you draw the line and start experimenting and not letting yourself judge yourself because of the mistakes you'll make during this process. Mistakes are what make us better in the end.

Collapse
 
peoray profile image
Emmanuel Raymond

You couldn't have said it better, This happened to me for a year before I decided to change many things. Now, I try to build projects that in turn help in my learning as it highlights what I need to know/learn for this project and how do I go about it.

Collapse
 
bonzerrlopez profile image
Rodrigo Bonzerr Lopez • Edited

This is sooo true :) I've been watching tutorials for a year now and they have helped me a lot,however, I also have been forgetting a lot of them from time to time so I repeat and repeat watching the tutorials especially when I still haven't understood one concept, but for this year my goal is to really build a lot of things :) Thanks a lot for this motivational blog :)

Collapse
 
beyondr profile image
Beyondr

Hey Tony, just wanna say I appreciate this my guy. Been struggling with the decision to either build something or just keep learning.

I'm familiar with MERN and I've moved on to another course that covers more "senior dev" stuff like performance, testing, ci/cd, typescript, nginx etc. Interestingly I was approached, in the midst of the course, by a company and given a small app to build as a little test. I had my challenges but I built that bad boi in like 3 days and it was fun as all hell... Then I had to go back to finish the course 🙄 because I feel like I should know that "senior dev" stuff especially since the job talk has gotten more serious and I don't want to disappoint.

This article basically encouraged me to do what I know I want to, which is to stop being a lil bitch, accept that I'm never gonna know everything and just build the damn things man. Mad respect fam. Stay well and woke 👊🏼

Collapse
 
daveskull81 profile image
dAVE Inden

This is so me and my story learning to write code. I have definitely been in tutorial purgatory for a couple of years now. You are right, it feels safe and it does feel like you are learning a lot. But, real experience building something teaches the most and teaches the skills you really need to be a developer. This is a big part of why I started Dancing Vikings. Great article!

Collapse
 
_justirma profile image
Irma Mesa

Great stuff - I think a lot of us face this, I know I do. And it’s hard to get out of it and not be scared. But we got to just go on our own and be okay with failing and googling.

Collapse
 
vbordo profile image
Victor Bordo

I've found that reframing the internal monologue is helpful too. Instead of viewing any missteps as a failure, seeing these side projects as pure experimentation goes a long way towards gaining confidence as a developer. Don't be afraid to try new things and break them!

Collapse
 
fabiorosado profile image
Fabio Rosado

First of all, I have to say that this is a great post and like Ben said it articulates very well what most of us feel when we are learning a new programming language.

The problem is that it takes a while for you to realise that you are in this tutorial purgatory, the reason why it takes so long for us to realise that we are in this state is because of the hold-hand feeling. It feels great following all those tutorials because we are building stuff and showing off how good we can code.

Jumping from tutorial to tutorial you can get a boost of confidence as you build more and more things. The issue is that you aren't really learning much since the solution to a problem is handed to you. You don't struggle and without struggling, there is little to no learning process.

I read somewhere that a great way to improve your learning with tutorials is by trying to build a similar project (but different enough that the tutorial doesn't give you the answer). This will make you struggle a bit and apply concepts that you learning, which in the end will make you practice what you have learned from the tutorial.

Collapse
 
ikenshu profile image
Kevin Morales

implement pagination or use AJAX in a Rails app

The AJAX part is me right now but with Django. I'm following a tutorial to learn more about this and plan to learn React this weekend. And learn how to use both of them on some kind of projects. I want to learn so much things.

Collapse
 
malgosiastp profile image
Malgosia

Amazing presentation of what I feel exactly right know.

I can read tons of tutorials, and IN Theory know any framework or mechanism. And exactly - in theory because from those simple use cases with solutions given right away it's like playing game knowing you can always check the walkthrough wheneven you gets stuck or tired.

The hardest thing here is actually to start. Even if you understand all that things you described perfectly. You still have to find the courage to start, to fail (probably a lot at the beginning) and still try step by step to get out of this fear that stop you from transforming theory into practical experience.

Thanks for this article :)

Collapse
 
luqman10 profile image
Abdul Qadir Luqman

I was also in this spot for at least 2 years. I think the problem is feeling safe in your comfort zone and thinking you know. You have to get out of that zone and build stuff. I call this strategy, learn as you go.

Collapse
 
bacchusplateau profile image
Bret Williams

I needed this article! I've been watching vid after vid on Swift dev and then switched to book based tutorials after that! Still I thought I didn't know enough about external storage, or complex UI transitions so on and on I went.

Collapse
 
kushalvmahajan profile image
Kushal V. Mahajan

This is such a wonderful article. This happens in very start of learning. Somehow this feeling is not there when implementing something ON JOB. It's expressway there. But yes deciding that thin line when to switch is hard in side projects. It's almost the feeling that "I am graduating with A grade in this concept" which holds us. Perfection and know all holds us since it's a side projec and not real world.

Collapse
 
mikefreedman12 profile image
Mike Freedman

I'm in this purgatory. Even when I know having a working side project is better for my experience, my career and is ultimately more fun once you get going. What keeps pushing me back to watching youtube and Pluralsight is that I feel I'm being more productive with my time.

Side projects are hard to get off the ground. Once you get started you actual coding, you may be messing with the simplest thing for two hours that you thought should take 20 minutes.

After working your day job and taking care of other day to day responsibilities, you may only have 2 hours for deliberate practice. It doesn't feel great when you such a small reward for putting in 2 hours of work. Watching a well done tutorial or Pluralsight course can provide a lot of new information in one video and it feels like that time is well spent.

I understand that it's habit I need to break. Those coding sessions on a personal project will ultimately be more rewarding. And what is the point of learning the skills if you aren't going to apply them?

Collapse
 
nax3t profile image
Ian Schoonover

Well said! No doubt, tutorials/courses are great, but learning how to learn is key and it sounds like you did just that.

Problem solving is a huge part of programming. You don't learn how to problem solve by watching someone else code for you.

Collapse
 
soterox profile image
SoteroX

Agreed, a major part of learning is to make mistakes and struggling over an over again on a problem until you finally solve it. With tutorials the problems are solve and their really are no errors

Collapse
 
tonymastrorio profile image
Tony Mastrorio

Could not agree more! Making mistakes and struggling feels uncomfortable at first and that's another reason it's so easy to stay in tutorial land.

Collapse
 
epogrebnyak profile image
Evgeny Pogrebnyak • Edited

... because tutorials felt safe. Thanks for putting it out so straight!

Collapse
 
lethaljd profile image
lethaljd

And here I thought I was the only one. Thanks for posting this! What helped me was to keep a list of ideas of side projects I’d like to develop. Anything from a full web app to a small hack or mod to make my life easier. As soon as I felt like I had enough understanding of how I might go about it, then I went off on that project instead. It was a great way to reinforce all of the tutorials knowledge that was rapidly decaying, and more fun.

Collapse
 
ronaldoperes profile image
Ronaldo Peres

Great observation, somehow I'm in it too.

Collapse
 
aesprii profile image
Aesprii

So true. What a great blogpost! Building stuff > Tutorials.

Collapse
 
cromasystem profile image
M. Masood Aslami

I just made same decision and found your article while googling.
Thanks for such nice article and useful points.

Collapse
 
juanfernandes profile image
Juan Fernandes

Ah so that's what you call it. Been there for a while and finally realising it.

Collapse
 
ogwurujohnson profile image
Johnson Ogwuru

wow, this is really timely. I needed this. Nice write up @tonymastrorio

Collapse
 
orlandoreynoso1983 profile image
Orlando Reynoso

I just want to say Thank You, I needed to hear that.

Collapse
 
robowire profile image
robowire

Thanks I really needed to hear this.

Collapse
 
jaybeekeeper profile image
Jarret Bryan

This is exactly the problem I'm struggling with now - this article is definitely helping my motivation to dive into the deep in and just start building!

Collapse
 
twumm profile image
Twum Mensah

Nicely summed up!

Collapse
 
ehelaya profile image
UdayangaS

This hit me in the face, i'm struggling to start my own project past few years. watching tutorial on youtube over and again. Thanks for the heads up @Tony. Keep it up.