Enter the maze


A crowd watching fireworks

Most people don't do magic - they just watch it for entertainment, never finding out how it actually works.

Magicians start out picking up a magic book, learning a simple trick and trying it on their friends.

Once you have caught the bug you will want to learn more. You read about more tricks and start to learn how to turn a trick into a performance. Now is the time for hard work - lots of practice. It's still fun though. You start to tinker with your tricks and make them better, improving the presentation.

You keep going. You might combine ideas from different tricks so that you have a different effect than either alone. Suddenly you have a new trick altogether. You try it out on an audience and learn from the experience, seeing how it needs to be improved. You now want to learn more of the theory. What is going on in people's heads? How does the mathematics really work? Now, you not only can do the moves others have invented, you understand them and so can put them together to solve new performance problems.

At last you are a real wizard. Now you are one of the people inventing completely new tricks. You are exploring the mathematics and psychology research, looking for new ways to create the same magic-making mistakes. Your tricks are picked up and used by others. You market them and earn money from others using your amazing techniques as well as from your own performances. They even amaze other magicians.

The way to become a software wizard is like that too...

The computer science

Devil in flame

Most people are just users of technology - they are like the audience. They use the programs the computer scientists write and nothing else. Unlike magic, software is not just for entertainment, it pervades every part of our lives. It's in computer games, the autopilot that keeps a plane flying, and the program that controls a washing machine's cycle.

Some people are interested in more than just playing the games or doing the washing and wonder how to create their own programs. They look at ones other people have written, and read up on how to program. They might create their first program by making changes to an existing one. They've got the bug.

They write more programs using the tricks they see in the programs they come across. They read more and find out about algorithms - ready-made solutions of how to write good programs to solve specific problems. They start to code those algorithms into their own programs and start to modify them to fit their circumstances.

Perhaps they go to university, perhaps they just keep learning as a hobby. If they have an entrepreneurial bent they sell one of their programs. They learn more of the theory, making the most of the work of all the computer scientists who have gone before them.

They are a hot programmer and can create anything they want.

There is a step further to become the sort of person the top companies like Google are looking for. They want special people. People who can do more than just program but who can push the boundaries. They want creative people who come up with new ideas, people who will create the next killer application. They want the wizards.