Monthly Archives: March 2014

The Hour of Code, a musical analogy

When you look at it objectively, musical notation is a completely alien language. It’s limited symbol set is written in a considerably different fashion to spoken language, encoding information that is only implied at in normal prose.

Despite the alien nature of music it is not considered something to be afraid of. Most people have a basic grasp of the different symbols and, while they may not fully understand exactly what is being represented, would be able to point out symbols denoting notes, and time signatures.

With the exception of some very exceptional (and esoteric) languages, computer programming is considerably less alien than music. Based, as it usually is, in the traditional symbol set of the English language and mathematics, much of what is presented is instantly recognisable, even if it is not understandable. Despite this computer code, and software development in general is seen by those outside of the field as ‘scary‘ and ‘impenetrable‘.

It’s my belief that the reason for this is the relative age of the two mediums. Modern musical notation has been around since the Middle Ages giving it time to enter into the public psyche. Music itself has been around since the dawn of humanity and is understood at an innate level. Computers, computer programs and software development is new. New enough that there are people alive today who predate the first digital computers. It’s that newness, and unfamiliarity that is the source of the fear, and much if the irrationality that goes on around computers.

One area where this irrationality seems to be cropping up is around the change in ICT curriculum in UK schools. Teachers are now going to be teaching algorithms and computer programming to pupils from the age of five upwards. The whole Year of Code debacle and the misconceptions being spread by the Hour of Code haven’t helped.

Let’s put the record straight. Let’s stick with our analogy of music, which we can all understand at a basic level, and explain what’s really going on here.

The Hour of Code

I am a complete novice when it comes to music. I did some lessons on the recorder at school some 3 decades ago. In my adult life I’ve played with sequencers a little, and messed about with GarageBand. I am not a musician by any stretch of the imagination. And yet, sitting with my daughters xylophone, with all of 8 badly tuned notes, I’ve taught myself a few basic ditties, mostly the opening bars, or choruses of nursery rhymes.

In one hour I could teach you these basic tunes. With a little bit of Googling and some preparation I could related these tunes back to musical notation and show you how the notes on the xylophone relate to the notes on the page.

We could possibly even go further, if you were interested, and teach you how to play those tunes in GarageBand on my iPad with digital instruments that contain more notes, and which are properly tuned.

If you were motivated enough you could probably go to Google yourself and teach yourself these basics without my help. Even a child could attempt it.

This is the hour of code. It’s not teaching children to become professional software developers. We’re not trying to develop the next poster child for tech here, we’re just introducing the basic concepts of computers and programming. We’re drawing a square using Scratch, we’re learning how we could change that to be a triangle. We’re whetting our appetite and seeing if this is something that grabs us, interests us and is something we may want to take further.

Parents, teachers, and to a large extent, children, can all teach themselves with a little bit of time. With an hour set aside to really get into it, and a bit of prior preparation by a parent, it’s something that you can learn together. How far you go is up to you. Maybe you stop at a square. Maybe you work out how to do a triangle. Maybe you put a triangle on top of a load of squares and call it a house. It’s up to you.

The Year of Code

Let’s imagine the government has decided that knowing how to play a music instrument is important. Music is becoming a bigger part of our daily lives and they start an initiative to get us to try playing an instrument. They change the curriculum to introduce music from an early age and they encourage people to get invoked through “The Year of Music“.

Ignoring the fact that we already teach music, I don’t think there would be the same concern that exists around The Year of Code. No one would be expecting us to turn out virtuosos. No one would be expecting people to get to a level where they could become professional musicians. In fact, very few people would be deluded enough to think that, using just the initiatives provided by The Year of Music, they could become a professional musician. Yes, it may well start them along that journey, but there would be a lot of hard work after that to get to the required level.

Exactly the same holds true for computers, programming and software development. We’re talking about teaching people the basics of programming; the very fundamentals. We’re getting people to have a basic understanding of how computers work and how we can interact with them over and above just being a user. We are not training up professional software developers overnight. Those who eventually end up down that route will need to work hard, and learn a lot more.

ICT, Algorithms and Programming

We already teach music in schools. At the point where it ceases to be a mandatory subject we expect little more than the rudimentary ability to play a simple instrument. This is epitomised by the amount of humour and jokes aimed at the typical School Concert. No one is expecting the London Philharmonic, at best we’re expecting something recognisable.

Even at GCSE level, the flawless performances of a professional, and a complete grasp of music isn’t expected. Yes, there are exceptions, those who are naturally talented and gifted, and those who have put more effort into practicing and learning, but they are an exception, not the norm.

As you go through A-Levels and Degree level the subject becomes more specialised with students concentrating on specific aspects of music and specific instruments. No one is expecting a student to leave education being fully versed in all instruments and all styles of music. Yes, they will have a broad understanding, and a lot of theoretical knowledge, but specialities will vary. From there, their professional careers could be very different.

It’s exactly the same for the new ICT curriculum. Schools will be teaching the foundations of computing, of algorithms and of programming, but absolutely no one expects students to be at a level of competence where they would be employable by the time the mandatory ICT education ends. They will simply have a grounding in the subject, an understanding of what it is that those who do do IT professionally actually do. Even at university level the gap between a Computer Scientist graduate and a professional Software Developer can be quite large so we simply should not have any expectation of a generation of expert programmers resulting from this initiative.

What we will have is people in other roles, in other industries who better understand what software is and what it can do for them. They can better appreciate when a problem is difficult and expensive, or time consuming to solve via software, and when something should be quick and easy. The gap between IT and the rest of industry will start to close, and that can only be a good thing. And that, that is what the Year of Code is about.

So yes, you can learn to code in an hour. And yes, you can teach yourself how to code. And yes, we should be teaching students how to code in school, but let’s not get carried away here. The difference between that and professional software development is the difference between my clumsy renditions on my daughters xylophone and a skilled, paid musician.

A Meeting With Lord Parry Mitchell

In the aftermath of the SyncNorwich TechCrunch event I wrote a rabble rousing piece for the NTJ which culminated in the quote: “Norfolk has announced its presence on the tech map, and itโ€™s not just here to stay, itโ€™s here to be an increasingly important player in Digital Britain.“. It seems someone was listening, if not directly to me, then to the sentiment and buzz that I was writing about.

On Friday we are being visited by Lord Parry Mitchell who, among other things, is a spokesperson for business matters in the House of Lords. As a past information technology advisor for Labour he makes an ideal person to talk to when it comes to the technology sector in Norwich.

The visit will initially take Lord Mitchell to St James’ Mill, which is shaping up to be a real tech hub in Norwich. After that there will be a meeting with him in the Council Chamber of Norwich City Council and 60 of you lucky lot are invited (see the invitation below).

We’re currently at an inflection point in Norwich; the future for technology in the region could be amazing… or it could just fizzle out. This meeting is an excellent opportunity to help shape that future so it’s hugely important that we get a wide spectrum of the regions tech industry attending. Yes, it’s a long lunch, but it’s also a Friday, so that’s OK. It’s also work related since everyone will benefit from a booming tech industry.

Speak to your boss, ask if you can come along. Ask if he wants to come along (pro tip: he probably should). The absolute worst that can happen is you get to be part of an interesting discussion with a prominent figure. Compare that to the potential upside and it becomes a no brainer.

Original invitation text:

Invitation to a meeting with technology adviser Lord Parry Mitchell

We would like to invite you to a discussion with Lord Parry Mitchell in the Council Chamber of Norwich City Council on Friday March 7th from 12.30-1.30pm. Lord Mitchell is an Opposition spokesperson for Business matters in the House of Lords, focusing particularly on the role that SMEs play in our economy.

He is a graduate of London University and holds an MBA from Graduate School of Business, Columbia University New York.

He was until recently Chairman of Syscap plc, an IT finance, leasing, rental and asset management service provider. He has worked in developing relationships between government and the IT industry. In the past he has acted as Labour’s information technology adviser.

We are delighted to be joined by Lord Mitchell who will be give a short speech about his experience in business and challenges and opportunities for the tech sector. We all know that Norwich and Norfolk is a rapidly growing hub for tech businesses and Lord Mitchell is keen to hear from all within the sector about how we can help it grow.

OSX Screen Saver Bug

Screen Saver PreferencesJust had a really weird bug with Screen Savers in OSX after upgrading to 10.9.2. I use hot corners to enable the screen saver (and thus lock the screen), but this stopped working after the update. Quick Google suggested it wasn’t actually the hot corners not working, but the screen saver. Further Googling uncovered it was something weird to do with the “Start after” setting. I had this set to “Never“. Changing this to “1 Minute” caused my hot corners to start working again. Changing it back to “Never” and everything was still fine. Most odd.

PDD, The Other SDLC

As I’ve said before, I’m no stranger to public speaking. That said, NorDevCon was my first conference and, by all accounts, I did OK.

My talk, “PDD1, The Other SDLC2” focused on how external stimuli, such as live production errors and impending deadlines, can cause development practices to break down. Ultimately this breakdown boils down to communication, or lack thereof. This talk was spawned from my talk on “Agile In The Real World” last year, and both of these talks focus on the personal experiences I have had when real life gets in the way of theory.

Personally I like this type of talk as it’s something that tends to resonate with the audience. With Impostor Syndrome and fears about “Am I doing it right?” being quite common among developers it can be quite useful to stand up and highlight where it commonly goes wrong so people know they are not alone.

Of course the irony is my own Impostor Syndrome and fears about “Am I doing it right?” have me worry the audience will respond with “No, we don’t relate to that, it’s just you doing it wrong“. Having the original author of some of the work I was building on attending the talk also added to the pressure a tad.

Having proved to myself that not only can I do it, but that I thoroughly enjoy it, I’ll be looking to see if I can do talks at other conferences3. I’m also hoping to line up so local talks too during the year (including my PDD talk if you missed it at NorDevCon). I suspect this year is going to see a lot of me using Keynote ๐Ÿ™‚

1 PDD: Panic Driven Development

2 SDLC: Software [or Systems] Development Lifecycle

3 Ones where I don’t personally know the organiser, and run the group backing the conference ๐Ÿ™‚