April 2nd, 2019
Welcome to the latest entry in my Self-Taught Developer's Survival Guide series of blogs posts! There has been some good writing about coding tutorials recently, like this piece by Devon Campbell about why you should stop doing coding tutorials, or this one by Ali Spittel about moving past tutorials. For the most part, I agree with these takes; tutorials can set you up in a comfort zone of easy wins, letting your problem solving and researching skills atrophy. I've definitely been there myself! Having said that, there is definitely a time and a place and an approach to utilize tutorials well, and I'm going to talk about that today!
Use Only On Your First Contact With New Technology
I firmly believe that the ideal use of coding tutorials is to get familiar with technology for the very first time. Let's say you don't know JavaScript, and you purchase and complete a very good course on all of the language basics. Your best course of action from here is to expand that knowledge by building projects, experimenting, and encountering problems that won't have spoon-fed solutions on the next lecture. So if you're brand new to HTML, CSS, JavaScript, or SQL, that is a good use case for reaching for a tutorial. Same for learning new libraries such as React, Redux, or Apollo. Something new and unfamiliar like GraphQL can be a good thing to learn from a tutorial. But if you already have encountered several object-oriented languages and want to experiment with, say, Ruby, you're probably experienced enough with that particular paradigm that you'd get more mileage out of reading the docs and building something with it. Coding tutorials are like strong spices in a recipe: used properly, flavor gets enhanced a lot. Use them too much, and they overpower the dish.
Be Selective and Aim For High-Quality
Not all tutorials are created equal, and you want to be sure that you're not having a sub-par experience that wastes your time. When I use the phrase "high-quality" in reference to tutorials, these are attributes that I have in mind:
If it's not a deeply established and stable technology (like Linux or SQL), then there is a Slack channel or forum where students can get help. The instructor will have taken steps to ensure a consistent experience (such as using exact version numbers of packages), and updates the material as necessary.
The course is structured in a forgiving manner that allows students to nuke everything and start clean from a certain point if disaster occurs. This is usually accomplished very well with versioned GitHub repos.
The material is explained well, and challenges are baked into the curriculum to ensure that students are actively practicing the material, and not just taking it in.
Common edge cases, gotchas, and workarounds are discussed.
A bonus attribute, if you can find it: courses that discuss the why of technology, specifically what to consider when there's more than one way to solve a problem. For example, in various Angular tutorials, I couldn't find a good explanation of what the ideal use case of a ViewChild decorator is. But I have come across numerous thoughtful discussions of when I should consider reaching for a state management solution like Redux or the Context API in React, and that is the sort of thing you want to look for, since the ability to reach for the correct tool for the job is important to writing good software.
Go With Project-Based Tutorials
Example projects are where coding tutorials can really shine, for two reasons:
They contextualize the material, which is important so you can see where things fit, or how things change when greater scale/complexity is introduced (looking at you, CSS!).
You have completed examples of projects in a particular tech to refer to when you invariably need a quick reference on a matter of syntax or architecture.
Be An Active Participant
You retain information better when you write things down by hand, so please don't neglect doing so! You should be taking note of fundamental concepts, syntax, things you find interesting, etc.
Next on the Self-Taught Survival Guide: The best Udemy courses to get started in a variety of web development topics!
Top comments (0)