Coding in Schools

There's an initiative in national government and the education system here in the UK to teach programming in schools. It is an area where the british education system allegedly falls short. I'm not sure that this is wholly accurate, as coding tends to be a business with high staff turnover but this aside it can't really be considered just an education issue but also a social problem.

“Give a man a fish; you have fed him for today. Teach a man to fish; and you have fed him for a lifetime” - Author Unknown

While it may be true that the standard curriculum for information technology could include more practical coding experience there's more to consider here. Firstly, programming is a diverse and promiscuous profession; you'll have to work with numerous emerging and established technologies over the course of the average programming career. Programmers handle this because the principles are on the whole entirely and easily transferable. Few languages will ever require the wholesale application of new discipline.

Secondly, not all programming skills are programming skills. Much of the foundation knowledge needed to be a successful programmer are basic literacy and numeracy principles. A good grounding in english and maths in a general sense but also basic mathematics that is usually not taught at younger ages but could (should?) be: boolean algebra and the principles behind different mathematical bases for example. If a student understands why there is a difference between binary and denary, and understands why there is a difference between and and or (my pet grumble with most users of the english language) then not only will they have some of the most critical skills for becoming a competent coder, they will also simply understand their computers (or mobile devices) and software better.

The third problem is a social stigma, especially among the younger members of our society. I don't think this is really a problem with the current younger generation. I think it's always been there to some degree. It existed when I was that age and I think a generation grows out of this mindset as their experience of the world expands. This is an attitude that we can sway by engaging our kids not only by a better understanding of how computers work but also what can be achieved with them. There's a lot that can be achieved with a grounding in HTML and CSS, and a student can build something for that good sense of achievement - a principle employed well in other subjects. However there's more to understanding our technology and more that is lacking than merely programming skills. The overlap between the skills needed for programming and the skills needed to interact with the hardware and software of almost any career is where the real 'win' is to be had and that's in the rules and realities of computing that some of us take for granted. Those with a real interest will take those skills further. We all know someone who is more than capable of understanding the technical aspects of computing yet "doesn't get it". These are the people that don't connect computing to the skills they already possess and these are the people who stand to gain the most through better education. We can give kids a set of skills and the knowledge to build themselves a future, whether they are just using or actually authoring software - those two activities aren't actually so different.