Avoid Tutorial Hell: Choosing Great Learning Resources 🧠
Tags: beginners, learning, webdev
Published: 2023-12-30 16:22:00

After setting learning goals (see my [previous post](https://dev.to/brian_curricular/crafting-better-learning-goals-5b4e)), you're ready to fire up YouTube and start learning, right?

Not so fast! :warning:

There are many excellent free or inexpensive learning resources out there. But frankly, there's also a lot of garbage out there.

It's easy to get stuck in tutorial hell - the endless cycle of watching tutorials without being able to actually do anything with the knowledge. It's critical to do some research and find the right courses, books, or tutorials.

And yet, while the internet is full of recommendations and reviews, I've found you also have to be careful taking someone's advice. Most reviews are way too short ("good course, five stars") and lack helpful context. Most of the time, you don't know someone's learning goals, prior knowledge, or how they supplemented their learning.

That's why I created [Curricular](https://curricular.dev/), to help developers find great courses, with trustworthy recommendations backed by in-depth research and testing.

Our goal is to help 1 million developers level up their career.

At Curricular, we [curate lists of the best courses](https://curricular.dev/guides/) to learn any technical skill. Our recommendations come from hours of research and in-depth testing, and we write detailed reports about our methodology and findings. 

We also provide free personalized learning recommendations (seriously - ask us anything, we're glad to help).

### Choosing a Great Course

Here are some lessons from our course evaluation framework to help you choose a great course.

> A great course is one that's built intentionally using the right teaching methods / learning styles for the material, is taught at the target student's level, and delivers its stated objectives.

When choosing a course, you should look for the following:

- was the course created for someone with my learning goals and current level of knowledge?
- does the course list tangible learning outcomes?
- does the course seem to promise too much? (e.g. "everything you'll need to become a professional developer!" -- avoid at all costs)
- does the course offer hands-on practice opportunities - either in-browser coding or solo practice projects?

Where possible, you also want to evaluate the instructor. First, you want to make sure they know what they're talking about. Are they qualified to teach the material? You want to see that their explanations are clear, and that in demonstrations, they show you how things work, rather than just tell you how they work. Look for samples you can preview, and reviews that talk specifically about their expertise.

### Don't Ignore the Prerequisites

Before starting a course or tutorial, make sure you’re ready. Check the prerequisites and evaluate your skill level.

If you don't have the right prerequisite knowledge, you might struggle to learn the topic.

For example: lots of people want to learn React. It's still one of the hottest libraries. But if you're not solid with JavaScript foundations, you're going to have a hard time learning React, since so much of React is writing plain old JavaScript.

This might be tough to hear. We all have limited time to learn. And how do you know when you know enough to move to the next concept?

I'm not saying you have to feel solid with every prerequisite that you find. If that were the case, we'd never get anywhere.

But at the very least, be aware of a course's prerequisites and be honest with yourself about your comfort level with the concepts. If you're feeling fuzzy about too many of the prerequisites, you may need a bit more practice before getting started.

### Mix and Match and Supplement with Solo Practice

Very few courses offer literally everything you'll need to master a topic - that is, to get to professional proficiency with a language or framework.

That's why most of our recommendations at [Curricular](https://curricular.dev/) are learning paths rather than single courses.

You should plan to take several courses (or books) to learn a topic.

And you should also plan to supplement with a practice project to solidify your knowledge. What I mean by this is take on a project without guidance; build something yourself using the technologies you've learned. Practicing with a solo project will test your skills and show you where you need to keep studying.

And try to get feedback on your projects from a more experienced developer. They'll help you spot areas for improvement and where you've missed best practices.

Unfortunately, very few courses and platforms offer grading or feedback on projects, with Scrimba and Udacity being the main exceptions.

### More Tips to Level Up Your Learning

Be sure to follow the rest of our series - The Developer's Learning Toolkit - for more tips on how to get the most from your learning.

1. [Crafting Better Learning Goals](https://dev.to/brian_curricular/crafting-better-learning-goals-5b4e) 
2. Avoid Tutorial Hell: Choosing Great Learning Resources (THIS POST)
3. How to Fit Learning into a Busy Schedule
4. Celebrate Your Learning Progress (and Your Bugs)
5. Learn, Build, Teach: Taking Your Learning to the Next Level
6. Should You Really Learn in Public?
7. Regaining Momentum After a Learning Break

-Happy Learning and Coding!