Ever wondered how your mobile phone works? What about your iPod or your Nintendo DS? This year marked the 25th birthday of the PC. In that short time the technological developments have been amazing - these days we carry around computers in our pockets that are far more powerful than the original IBM PC.
We tend not to think of phones and mp3 players as computers, because we are more interested in what they do rather than what they are. This is partly because of the effort that manufacturers put into the user interface of the devices that they sell. Where would the iPod be without the click-wheel, for example? This focus on the user interface of phones and mp3 players shows how computing has changed over the past 25 years.
Today nearly everybody carries a mobile phone and it's critical that people should be able to use them, whether they have computer training or not. From the manufacturers point of view, the easier they are to use the bigger the market will be. And in all three cases, the manufacturers hope to make more money from phone calls, iTunes sales and games after the initial outlay.
Behind every successful user interface, there is a computer program and behind every program there is a team of programmers. The stereotype that a programmer is some poor bloke who works alone and is happy to do so because of his dodgy interpersonal skills went out with the dinosaurs. The modern programmer must be team-focused and able to talk to all sorts of people without drowning them in technical jargon. Thinking about the devices we all carry around every day reminds us of the changing role of the programmer - 21st-century programming is characterised by the need to put the users first.
In the games industry, modern games can cost upwards of £5 million to create and a development team might consist of up to 150 people. On a day-to-day basis, the programmer will have to deal with producers (project managers), artists, designers and testers. It's critical that the programmer is able to deal with all of these people because the role is central to the development of the game. Essentially, the programmer creates the tools that will be used by the designers and artists who will create the game experience for the player. The programmer will need to be able to respond to questions such as: "How does a character in the game get from one place to another?" There are a wide range of well-known approaches for navigation around a game world. The programmer will need to be able to compare and contrast these techniques, discuss the pros and cons, and finally select and implement the most appropriate one for the game.
Essentially, a programmer is a problem-solver. So if you like to look at problems logically or if you like to challenge your brain with a crossword or sudoku puzzle, this might be the career for you. Normally, you would be studying sciences or ICT and you should be able to demonstrate an interest in computing. Programming is an activity where practice makes perfect, so before you commit to a university or college course in computing, have a go to see if it suits you. There are lots of different approaches to learning programming. Any programming you can do before going to college will probably help you.
Andy Williams is a senior lecture at the Department of Computing and Electronic Technology, the University of Bolton
Unpredictability, challenges and innovation
James Jones, 20, gained a BTEC National Diploma in computing for IT practitioners (gaining distinction merit merit) from South East Essex College. He is now studying computer games software development BSc at the University of Bolton
"There is always something new to learn in my subject. Game development is always changing and evolving, allowing developers to do more. It's unpredictability, challenges and innovation are what make it exciting.
I used the internet to find courses and I attended open days to see which was best. My course focuses on the technical aspect of developing games rather than creating the artwork, 3D models and music. From mathematical physics to PS2 and PS3 architecture to quantum cryptography, I have covered a lot of ground. Opportunities to put theory into a practice arise often.
I enjoy all aspects of game development, but I am looking to focus on artificial intelligence in games. It is the least mature area of the industry and I would like to work to change that. Ultimately I hope to work on high quality games for the industry and develop interesting or unusual hardware.
This year I hope to be accepted into the new game development society at my university. Also I am aware that my university might enter the Dare To Be Digital competition next year. I hope that this happens and that I will be able to be on the team that competes (and hopefully wins!).