02 August 2012 by Alastair O'Brien
Software is an Art, not a Commodity
A large number of subjects are currently not taught on an on-going basis through a typical education lifetime- for example most (if not all) engineering subjects, medicine, specific law, and financial sciences. This hasn’t to my knowledge harmed these professions in any way – in fact it may have enhanced a student appetite for studying these subjects in further education. Despite that, we seem to have embarked on a headlong rush to teach every child how to program a computer. Why? And what do we mean by program anyway? Why are we treating Computer Science/Software Engineering as a different discipline to the ones mentioned above?
I fully appreciate that the world has changed massively with the advent of the transistor and electronic computers in the 50s and more recently the explosion of computer power and accessibility. But many years ago IK Brunel, Thomas Telford, James Watt and many others changed the world in which they lived, but, as far as I’m aware, there wasn’t a headlong rush to teach Mechanical or Civil Engineering in schools. I firmly believe that Software Engineering is in the same arena. We doneed the brightest of the next generation to become Software Engineers, Project Managers, IT Business Analysts, Systems Integrators and so on, but to get there do we need to start with programming a Raspberry PI, do we need to tell 14 year olds that computing is all about driving a spread sheet or using a word processor? Surely not… surely there’s something better!
What we need to do is develop people who have an interest in Software Engineering and the vast potential that a career in software opens up. What we need are people who ‘know how to design’, ‘people who can learn’, ‘people who can communicate’. We also have to call a halt to the “geek culture”, we’re not all geeks, though there is room for them – we’re an all-encompassing industry.
I’ve got a degree in Computer Science, I was introduced to IT when I was 18 (SYS Maths paper 3 since you asked), it was a complete shock to the system, an eye-opener that you could manipulate such a powerful machine but after all it was 1974.
We need to give people the shock and eye-opener that I got at an age where we are making decisions on our future. We need to teach people how to design, teach them the constructs on how to build a system. Languages – especially C#, java , Ada etc. – can come later, we need to teach how to design, construct, build, test , report and communicate. We need to teach the basics long before we get to the code. We teach physics before we teach Nuclear Engineering, we teach Maths before we teach Astronomy, and we need to teach constructs before code.
The IT industry has openings for all types of people and skills, and all of the paths can lead to brilliant, rewarding and exciting futures. Software Engineers are the people who build the future that others can use to better themselves and society. We are the unsung heroes; where would the world be today without software and the systems that drive all businesses in the world?
We need to encourage the next generation so that they become the next Bill Gates, Steve Jobs or Jonny Lee (look him up on YouTube) of the future. Don’t suffocate interest by teaching programming too early; don’t dull the senses by forcing spread sheets and word processing on an inquisitive mind. Think about what we actually need for success and drive to that goal. Get the design and engineering approach into how we teach computing.
This is the only way that our fantastic industry will survive.
The 18 year old kid who has had his or her eyes opened in 2012 will, in 2049, not be writing a diatribe such as this one. We, as an industry must wake up and recover the passion that existed only a couple of decades ago. Software isn’t a commodity it’s an art.