Skip to main content


Lots of people want to learn how to program computers.

The success of code "boot camps" and devices aimed at the education sector (Raspberry Pi and the BBC's micro:bit spring to mind) is evidence of this desire for folks to learn "coding".

At a time when technology is finding its way into every aspect of our lives many folks appear to want to be more than just passive consumers of technology. They feel a desire to become creators of technology. They want to take control of their digital world. They want the skills to make their technology reflect their own needs.

Recently I've been experimenting with how I could use my background and expertise in music education in a way that helps folks address this desire for learning to program. The first experiment took place over the autumn and involved a group of complete beginners preparing for a "code grade".

CodeGrades are a programming version of time-proven techniques like music grades, belts in martial arts or lifeguard certification. Learners level up by applying the knowledge and skills needed for each grade to their own fun, interesting and challenging coding projects. Learners present their projects to professional software developers who assess the projects against the criteria for the grade being taken and provide a set of marks and written feedback so the learner can see where they're doing well, what needs to improve and what their next steps may be.

The autumnal experiment proved this concept worked. The initial group of learners were able to learn enough to create a "grade 1" level project in the Python programming language in about ten weeks. Furthermore, after completing their grading the vast majority asked when they can take their next grade. This outcome was far better than I had ever imagined.

Like music grades, code grades are eight cumulative steps for learning how to write code. The first grade (as taken by our "test subjects") is easy enough for most people to take as a first step into programming. The eighth grade is of equivalent standard to the skills and knowledge needed to be an effective junior professional software developer. The middle grades bridge the way so the skill gaps between each of the grades is achievable. They're like stepping stones into coding, or perhaps a modern day "Gradus ad Parnassum". ;-)

Perhaps the most important aspect of CodeGrades is how it is different to other educational offerings.

Code boot-camps will charge you north of £10k for a three month course and a guaranteed "job" as a junior developer. This is, frankly, a terrible idea. Not only are people throwing huge sums of money over a cliff edge before they make the jump themselves, but learning to code requires a long term investment of time. You cannot learn how to write effective code in just three months. What the boot-camps have realised is that you can learn enough information in just three months to appear as if you can code. It has been my unhappy experience to interview graduates of such schemes and have them answer my questions about the niceties of some aspect of coding with text-book answers; yet most have been unable to apply such "text book answers" in any useful or even credible way. Those who did create something made what can only be described as "spaghetti code". This is the equivalent of claiming that it's possible to train musicians to a professional level in just three months. Can you imagine how an orchestra would sound with musicians trained in this way? Would you want to hire such musicians to play for your wedding party?

Other educational efforts are mostly aimed at beginner developers. As a result, all their educational resources are at the beginner end of the scale and there is hardly any guidance for how to move onto more challenging programming. Put another way, it's like getting a piano with lots of beginner level music to learn, but nothing which will stretch you after you've got the basics in place. There is simply no continuity nor access to the fun "advanced" stuff.

The syllabus for CodeGrades is written by professional software developers. The grades reflect current best practice found in the software industry. They offer a framework for sustained and structured long term learning to write code. All the resources associated with CodeGrades are free, learners only pay to take the grading. CodeGrades will be priced in a way equivalent to music and ballet grades or martial arts belts.

CodeGrades help you learn to code with the confidence you need to make the stuff you want.

The upshot is that it's the start of the year, and I've decided that the outcomes from the experiment in the autumn have been so positive that I want to invest some of my own time into developing the concept further.

So, here's to an interesting 2019... I hope to work with friends (old and new) in making something that helps people learn and grow while also providing employment for developers who feel they're at a stage in their career where they want to acquire and practice the skills needed to be effective and inspiring mentors.

Happy new year.