When are courses counter-productive?

When you wish to improve your programming knowledge, choosing the next course you’ll follow on platforms such as Udacity, Coursera or Udemy is exciting. All the courses descriptions promises that you’ll learn great new skills you can use to build cool projects and to improve your career. It’s also very easy to get started by just pressing a button. When you’re going through the process, the feeling of growing your knowledge is awesome and you’re surrounded by a community of learners going through the same process. Finally, you get the satisfaction of finishing yet another course and you can brag to your friends that you’ve collected a few dozen courses in a variety of complex domains. What’s not to like about it?

Learning and deepening your knowledge is more than just following instructions from a teacher. Most of those courses follow a similar format and difficulty level, and will teach how to be a beginner in a variety of domains and programming languages. You’ll master the process of completing courses, which may feel like the right thing to do to learn new skills. It’s easy to default to courses to learn new skills, but you must make sure it’s worth it and that you’re not just collecting certificates. You also must be careful not to become too comfortable with the process: if going through a course is a breeze every time, you’re probably not stretching yourself enough and you’re using this learning technique as a crutch that will slow you down.

I’m not saying that following a course doesn’t take any effort or is worthless, but choosing courses at random is a poor use of your time if you wish to grow as a software developer. In fact, the current state of online education is awesome: there are great courses available to improve your knowledge on any subject, and they’re a valuable tool to have in your learning toolbox. I don’t regret the old times when all we had to understand a programming language was a few thick books. But there are so many courses that you must cut through the noise to find those few that will help you reach your goals. You need to focus on a few core skills instead of signing up for everything that sounds cool.

Also, following a course is the beginning of the learning process and not the end. If you wish to really understand the material, you must use what you’ve learned, form your own opinions and improve beyond what you were taught. Don’t be afraid to start making your own mistakes, to share what you have learned and to make code that will be used by real people. You won’t have the time to do that if you’re cranking out certificates: you’ll get a lot more out of the courses you do follow if you do your own work that’s beyond what’s presented instead of sticking to the curriculum and stopping when it’s done.