Year of Code – The Road to Rachmaninoff

As many people know, I’m a musician as well as developer. I love playing and writing music just as I love creating code. As well as a developer I also work in higher education where I teach programming. First of all, I want to say I fully support initiatives which encourages people to learn to program (such as the Raspberry Pi foundation and code clubs) as I think people (adults and children alike) should be given this opportunity to learn how to program as it not only increases computer literacy, it also provides them with valuable skills which can be used in many aspects of life that involve problem solving and logical methodologies/analysis.

However, I have a serious problem with year of code: and this problem starts with the very top of the website:


That’s a very bold statement, and potentially very damaging. How hard do people “think” it is? The reason I mention music is because I think it has a lot in common with programming. It is very dangerous to trivialise programming, and the Year of Code programme seems to do just that. This means that people could come into this with a false expectation that, in an afternoon, a month, or even a year they will be able to write an amazing web site or app. It’s like saying to someone “Starting learning the piano this year, it’s easier than you think”, and people may expect to be able to play Rachmaninoff within a year. I’ve been playing for 20 years and I still struggle with Rachmaninoff!

The thing is though, do people think this about learning an instrument? Probably not. Why? Because people already have some awareness about what it takes to learn to play an instrument. However, it still does not stop people from giving up after 3 months claiming “I was rubbish”. I can see this being considerably worse for people getting involved in the “Year of Code” because how far do they expect to come in a year?

Teaching syntax of a programming language is the easy bit, as is teaching the notes on a piano. I can tell you what notes are, and how they relate. Great! Does this give you the skills to be able to play a Rachmaninoff sonata? Eventually. We all started off with the basics. However, to become a great (or even good) developer/musician requires many years of learning and experience, and some would argue (myself included) you never stop learning.

Trivialising programming will just lead to false expectations and disappointment when those expectations aren’t met, and all we will get from it is even more people saying “I can’t do programming” because they have now tried it. Learning to code is a marathon not a sprint, and not only that the goal posts are continually moving as new technology and methodologies come out. I really do encourage people to learn to code, but you must be aware of the challenge that you may face and the amount of time and effort it will take.

Happy New Year and Updates

With it being the festive season, I have not done a huge amount of interest recently. I’m hoping to have a few things for you soon. Currently I have been experimenting with Drupal, having never used it (properly) before, this is a real learning curve.

Also I am working on getting suPHP to work with userdir, to allow users of a server to have their own webspace in a secure fashion. I will be blogging about this when it is done.

However, I have found a few things that may be of interest:
Things you probably didn’t know about PHP – Some really interesting and neat things you can do with PHP.

PHP Object Generator – Generates class structures and objects, so you don’t have to