Alex Evans, programming guru and co-founder of Guildford based Media Molecule video games studio (which brought us Little Big Planet) on how good programming skills are merely the foundation for creative content creation, while casting his mind back to the birth of the home gaming era.
I’m frequently asked, ‘What A levels or degree should I do to become a games programmer?’ The best short answer I have is, ‘Whatever you like most.’ But to explain, I have to dig into the very common misunderstandings of what programming (games or otherwise) actually is, and where the best place to learn it might be.
As the campaign to get programming taught in our high schools gathers pace, it’s important to consider which aspects of ‘coding’ should be taught first, and why – beyond the desire to keep the UK at the forefront of the digital media industries.
Most people would consider programming something like learning a language (it was recently compared to Latin). Learning a computer language is a first step in learning to program, just as learning English involves being taught some of the rudiments of grammar, spelling, and punctuation. But the rules of a language, rich and fascinating as they can be, are just a stepping stone to literature and the possibilities of creative writing. We must think of and teach programming in this way – it is a tool which allows you to express creative ideas with a computer.
Malcom Gladwell popularised the idea that many brilliant craftsmen, musicians, and artists have achieved their success not just through natural talent or lucky opportunity, but through 10,000 hours or more of practice. Looking back at my own misspent childhood, programming my ZX Spectrum and later an Amstrad PC, I certainly clocked up at least that many days and nights. It’s a pattern that follows to almost every great programmer I know – they all learnt to program ‘off their own bat’, and then practiced it obsessively. Not everyone begins as a kid, or needs quite so many hours, but it’s vital that, to achieve fluency, one practices as much as possible. The mechanics of programming – typing, grammar, vocabulary – are easy. But just like knitting, or writing a great novel, confidence and individual style can only flourish when the basics are so practiced as to be second nature.
Why would anyone want to spend 10,000 hours typing at a computer? For the same reason anyone indulges in a creative passion: to make something they desire. Everyone has different motivations, and I like to explain programming to people as a means to whatever end most ignites their imagination. One kid might realise they can create a handy French / English dictionary; another can make a program to track the progress of the school Football team; another might use her computer to help write music or create films, and so on. Once programming is seen as a legitimate creative outlet, the possibilities for integration into every school subject are endless.
Some of the best advice I ever received was from Peter Molyneux, head of Lionhead Studios. I was a summer student about to go to university when he said to me, ‘Alex, don’t go to university to study programming, you can already program! Instead, fill your head with something interesting – history, art, architecture – that you can actually program with.’
In the end, I only partially listened and studied maths and computer science. And while that has served me well, I learnt very little about programming in my three years; instead, the best parts of the degree were those which gave me new ideas to try putting into my programs.
That advice is the basis of this blog post and the full answer I give to people who ask what they should study. Indeed, when Media Molecule receives a CV from a programmer, by far the most important thing we look for are home and hobby projects. What does this person create in their spare time? We expect applicants to be able to program fluently – that part is easy. What differentiates the great candidate from the average one is what they choose to create with their programming skill.
Now is a wonderful time for kids to learn how to program. My generation was blessed with the ZX Spectrum, BBC Micro, Commodore 64, Apple ][ and other ‘8-bit micros’; ‘blessed’ because each one invited, by default, the user to write programs in BASIC as soon as you switched it on. There was an unfortunate phase, through the 90s, where it became trickier to get access to good programming tools on ‘proper’ computers. I was lucky enough to meet a kindly neighbour who passed me a slightly dodgy copy of Turbo Pascal. He probably never realised he was helping to shape the rest of my life and career.
As for how our kids might decide what to program – sources of inspiration are also plentiful, at home and at school. In my day, the code listings at the back of flimsy magazines taught us (through copying them out, line by line) what a well written program might be, laying the seeds of ideas for new programs to write. These days, Google code search and sites like GitHub hold huge, freely accessible and easily searched for swathes of code to read, learn from, extend, and improve – all with a simple click on a webpage.
So, what is programming? It is that skill which turns a computer or tablet or phone from a black box full of apps into a machine that can be instructed to do anything you can imagine. And I can’t wait to see what a generation of kids, educated to be programming-literate, will choose to make them do.
Follow Alex on twitter.
Follow Media Molecule on twitter.
ZX Spectrum photo by KeroseneAU on Flickr. Some rights reserved.