You're lucky if you want to learn to code. The amount of learning materials is staggering. You can find a course on almost everything you're interested in.
Some courses are free, others shockingly expensive. But no matter which one you choose, the highest cost of every course is hidden — it's your time.
Time is money
Time is your most valuable asset when you're learning to code. Most of us have some professional and personal obligations, and our spare time is scarce. Finding time to learn between our jobs and chores is a huge challenge.
So when we successfully manage to make some time to learn, we have to think carefully about how we spend it. And the word "spend" is not a coincidence. We should start thinking about investing our time just like we're thinking about investing our money.
Some courses may be cheap in terms of money, but very expensive in terms of time. For example, a $20 course that lasts 30 hours seems like a bargain — you get so much material for so little. But if these materials are of poor quality, they may be a much worse investment than a high-quality course that costs $150 and takes 8 hours.
If you're struggling with perceiving spending time as an investment, you can estimate the worth of your time in dollars. Let's say an hour of your time is worth $20 (and that's not a lot for a programmer you want to be). If you account for that, the first course costs $620 (30 hours + $20), and the second costs $310 (8 hours + $150). So the second one is cheaper! Considering your time in monetary terms will help you to make better learning decisions.
Using this method, you can discover that an expensive course is cheaper than a free one if the former is shorter and of better quality.
How to invest time better
We can agree that you don’t want to waste time, but unfortunately, sometimes you do. I’ve got good news — some techniques can help you invest your time better. They will allow you to build a solid learning plan, pick suitable courses and learn as effectively as possible.
1. Make a Plan
Whatever you want to learn, there are some foundational skills. To progress fast, focus on the fundamentals, and only move on to the other things when you feel comfortable.
For example, if you want to learn frontend development, you have to master:
And that's it. You can build almost any application using only these three. Of course, over time, you'll need to add many more things. Git, some frameworks, or bundlers are necessary to work efficiently. But these three skills are a foundation, so you should prioritize them.
When you master critical skills, it's time to shift your focus to more specific areas. To decide what's next, check what's in demand in the job market you're interested in and learn it. But move on only when you’ve got a solid foundation.
Focus on skills necessary to the job. You'll learn more and refine your skills when someone starts paying you for it.
2. Pick the right course
Not all courses are created equal. There are some great teachers, but you can also find many people who rewrite the documentation for 20 hours and want you to pay for it.
Your first criteria should be how popular and high rated the course is. Usually, the results from the first page of Google are top-rated, so that's a great place to start. You can also check the social media profiles of the instructors, as they can give you lots of context on what they're teaching and how responsive they are if you encounter problems.
Before buying a course, check if you can see some free content or at least a refund policy if you're not satisfied. The next step is to skim the learning materials and decide if the course is worth your time. Look for red flags especially. If your teacher wants you to re-type CSS, you're wasting your time (unless it's a CSS course). This same goes with non-essential code — you don't want to write it; it should be available for download. All the code you write must directly connect to the course topic.
Usually, the courses over 10 hours long are not great — it's tough and time-consuming to create so much good quality content. Still, there are exceptions, like courses from freeCodeCamp. Another sign of a bad course is a lack of practical exercises and a too strong focus on theory.
If there are no obvious red flags and the course curriculum seems useful, the last thing to check is the teacher's style and course structure. If you're not entirely happy with anything, resign and apply for a refund. Even if a teacher is great for many people, it doesn't mean they will be great for you.
3. Learn One Thing at a Time
So many people's number one learning mistake is learning multiple things simultaneously. Doing that, you spread your mental resources thin and end up tired and demotivated.
To progress fast, you need to focus. If you're following the above frontend path, start building a website using HTML only—a simple page with one image or a page with a few inputs. Getting familiar with HTML and its appearance in the browser is more important than you imagine.
When you are comfortable, start experimenting with CSS, find some simple pages, and recreate their looks. Don't copy code! Look at them and build by yourself.
Always take just one step at a time. Ignore everything besides the step you're about to take. Over time, try building more and more comprehensive websites.
4. Learn to use courses effectively
You've got the perfect course; you skimmed it and know more or less what you'll learn. Now your goal is to study as effectively as possible.
Paradoxically, it's time to slow down. Good courses are packed with information and exercises, so you can't finish them fast. You need time to understand concepts and reflect on them. Watching thirty to sixty minutes of videos a day is a lot, especially as you need additional time to code and do exercises.
Taking it slowly doesn't mean you should be lazy. It's best to work daily. Learning to code is a long game; steady progress is a more reliable way to success than occasional bursts of energy. Make a habit of coding every day, and you'll grow fast.
My next advice goes against most of the usual tips — don't code along with the teacher.
Usually, teachers ask you to code along with them. That's understandable. Coding with the teacher is a significantly better way to learn than just watching a video. But's it's not optimal.
If you watch and code simultaneously, it's hard to maintain focus. You'll have to switch contexts all the time. Also, you'll often need to stop the video to keep up. These minor interruptions will impede your learning.
The betters way is to concentrate on the video completely. Close all other browser tabs, and turn silent mode on your phone. The video should capture all of your attention. Don't focus on the syntax, but on the problems, your teacher is trying to solve and critical concepts.
Try to write this same code as the teacher from memory when you finish. Recalling information is a proven active learning technique. If you're sure you can't remember some part of the code, find the answer online. Only if you've exhausted other options, get back to the video.
Learning to code is hard, but I hope you'll learn to do it more effectively and waste less time with these techniques.