Anyone who works in tech knows that there’s always more stuff to learn. It’s a rapidly evolving area, and whether it’s new programming languages, new frameworks, new deployment methods, etc. new things are cropping up all the time. I work at a fairly small company, so we often need to adjust the technology we use for a given project to meet whatever the needs are for the circumstances, customer, existing solution, and what feels like a million other variables. On top of that, there are always personal projects that I’m interested in building and new things that I want to learn (or at least become somewhat familiar with) through the course of working on those.
The Udemy Problem
For many people, the go-to source of how to learn all of these things is Udemy. While the normal prices are patently absurd, the sale prices that regularly bring courses from $100 USD to $10 – $15 USD (and which seem to happen every other week) are much more reasonable. At a quick glance, it may seem like paying $10 for a course that gives you 40+ hours of material covering everything there is to know about a given technology is a great deal. For example, I recently needed to make some changes to an open source PHP project based on Laravel. I didn’t know Laravel, let alone PHP, but I’m more than familiar with programming in a handful of other languages. Looking at Udemy showed me courses like this one:
Or this one:
Similarly, for a personal project I wanted to try making a frontend in Vue. A quick look at Udemy gave me courses like this:
The problem with these massive courses is that they essentially take the official documentation for whatever language, framework, etc. and turn it into a giant video series. Each part of the course generally iterates on the last one, so if you manage to slog through all 40 hours of content, you’ve created a fairly impressive-looking project, and you’ve touched on basically every aspect of whatever it is you’re attempting to learn. But this isn’t a good way to learn anything. After 40 hours, things mentioned at the 10 hour mark that were never relevant again are completely forgotten while super advanced concepts covered at the end that are only going to be important in highly niche scenarios are what stick with you. Likewise, you know how to follow along with an instructor, but when presented with building something for yourself, you have no idea how to start.
Even worse, these courses often suffer from the same problem as code bootcamps; they walk you through things without actually teaching the fundamentals of how to think, problem solve, organize, and design things as a developer. This isn’t to say every bootcamp is terrible, but I’ve worked with several folks who have gone through bootcamps and their abilities were… lackluster, to say the least. And this is coming from someone who is largely self-taught, so I’m far from a master of more complex concepts. Basic things like being able to organize code, use object-oriented concepts, specify proper return types, and even indenting should not difficult, though.
The Fix
The actual way to learn these things is to simply build stuff with them. Want to learn Laravel? Go make a project in Laravel. Want to learn Vue? Make a frontend for something with Vue. Of course, that’s easier said than done. With many frameworks, if you’re coming in completely new then the concepts are so opaque that you can’t just sit down and get started. That’s where I truly think that YouTube often offers a much better middle-ground than Udemy. For example, when I needed to get up and running with Laravel, I found this great, 4 hour course:
It taught me enough of the basics that I could get up and running. Obviously there are going to be a lot of things not covered for a framework as massive as Laravel in just 4 hours. But covering literally everything isn’t the point. The point is to get people to a point where they can start to build whatever they want. When one-off issues or questions arise from there, you simply look up the answers in the documentation, Stack Overflow, Chat GPT, or whatever other tool you prefer. I don’t need to have a video that covers absolutely everything because I’m not going to remember 40 hours of content regardless. I just need something that allows me to begin building what I want, and the rest I can learn on my own.
I had the exact same experience with Vue. Instead of a 40+ hour course, I found this video:
After 6 hours, I had enough of an understanding that I could start working on the frontend I wanted to build for my personal project. From going through this relatively quick video, I had a project I could reference if I didn’t remember how to do something that was covered, and I had enough of an understanding that I could look up anything I needed that the course didn’t cover.
And this just assumes that video content is the way you want to go. It’s often worth checking out the official project documentation to see if there’s some type of quick start guide or tutorial available. Often times these don’t exist or are far too simplistic to achieve the same goal, but the Django project sets the gold standard in my mind for having the best tutorial. After walking through it, I had a good understanding to begin building what I needed, referencing the rest of the documentation from there for any new concepts. It was such a good experience that it has made Django my go-to framework for basic web apps that I’ve gone back to time and again over the past few years.
At the end of the day, though, the means by which you ramp up to gain familiarity with a given stack isn’t all that important. What is important is getting the bare minimum of a foundation, and then simply using the stack to build things. That experience will ultimately be a much better teacher than 40 hours of typing the same thing as the instructor of a Udemy course.