in Learning

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.

Want to learn new programming skills quickly?

Subscribe to my newsletter to receive my 5 Hacks to Learn New Skills email course directly in your inbox.

You’ll also receive updates about what's going on with the blog.

Write a Comment


  1. Hi,

    I would like to thank you for a great post it made me think
    about how I learn and do my work with regard to web development.

    All the best


  2. Hi Cindy,

    Another great post. Yes, trying to keep up in software is the ultimate in drinking out of a fire hose. It can be discouraging.

    Question – do you have any advice for how a software person can go about creating their own, personal roadmap? Obviously, everybody is different but your thoughts would be appreciated.


  3. Cindy, you make some really good points. It’s far too easy to just enrol in a bunch of courses and get a false sense of achievement. One way we’re trying to help people avoid that on Learnetto is by encouraging them to define a project they are working on while taking a course.

    For example, one of our students Ada Kępińska is building her music mixes website project while taking an HTML course. She is also writing progress notes as she learns and builds it –

    We’re going to turn this into a core feature so that the focus for students always remains on really learning skills to achieve goals and not just take courses.

    • Hello Hrishi,

      Having students teach what they’ve just learned is a great approach, it’s hard to ignore the material if you have to show results. The best courses are the ones that makes you work instead of passively watching videos or reading.

      I like what she’s doing, sounds like she has a good plan and is executing on it.