Picking Winners: 10 Signs a Coding Course is Worth the Effort (or Money)

I’ve been browsing a lot of courses lately, and as we all know, there’s a ton of material out there. But how do we decide which to study? Bad courses leave us cursing in frustration. Good ones speed our progress and inspire us to learn more.

Here are 10 criteria for a great programming course:

  1. Level: courses are clearly labeled as suitable for beginner, intermediate, or advanced students. If previous knowledge is required, this is made explicit.
  2. Organization: a good course has a clear structure and purpose, which is explained at the outset. The contents of the course are divided into units and easily navigable throughout the course. The teacher summarizes content at the end of a section.
  3. Scope: the course offers a comprehensive picture of its subject, which includes conceptual understanding, context (how this topic relates to other topics) and practical application. A course on node.js, for example, should explain the principles of asynchronous code, show you how to build a server, and explain how node relates to back end and full stack development in general.
  4. Presentation: the teacher uses clear visual aids to explain abstract ideas. Live coding demonstrations show the student how to work with text editors, the command line and the browser.
  5. Utility: the course gives the students all the practical tools necessary to complete assignments or implement code examples. It shows the students how to set up a development environment, and makes example code available on Github. Coding is presented as a process.
  6. Accessibility: the teacher demonstrates an understanding of potential difficulties that the student will face. The teacher does not assume that the student has particular knowledge or experience, unless that is explicitly stated in the prerequisites. Code is explained step by step. If parts of example code are not fully explained, a clear reason is given for this.
  7. Independence: a good course empowers a student to extend their learning beyond the course itself. It explains how the course fits into the wider context. It has links to useful resources, such as official documentation and packages. It encourages the student to be self-reliant.
  8. Practicality: the teacher shows awareness of how technologies are used in the marketplace, and how this is changing. The course is focused on giving students real-world skills.
  9. Contemporaneity: the course materials are as up-to-date as possible. The course is amended when technologies change, or more up-to-date courses become available. The date that a course was published is stated, together with the version numbers of languages and libraries used in the course. This general principle does not mean that all older courses are obsolete.
  10. Communication: A good course has some kind of forum where students can discuss the course, give feedback and get help. The course has reviews and star ratings from previous students.

If your course meets most of these criteria, you are on to a winner.