1995 was a time when computers already played an important role in our society but weren’t as omnipresent in our lives as they are today.
1995 was a time when programming was a field for a very tiny subset of the population, and the only children who ever learnt it were an even tinier subset.
1995 was the year when Steve Jobs was approaching the end of his exile from Apple after being kicked out of the company a decade earlier. Him as his new company, NeXT, were brought back in to save Apple from near bankruptcy. Incidentally NeXT was all about using Object-Oriented Programming as the basis for operating systems and went on to become the backbone for today’s Mac operating system.
In a 1995 interview with Robert Cringley [1], Steve Jobs is being asked about his early days of writing computer programs as a teenager
Interviewer: You talk about writing programs. What sort of programs? […]
Steve Jobs gives a specific example on how they (him and Steve Wozniak, Apple’s other co-founder) wrote code to make free calls on the AT&T network. Then after a very long pause, he goes on to say:
Steve Jobs: But much more importantly, it had nothing to do with using them [programs] for anything practical. It had to do with using them to be a mirror of your thought process. To actually learn how to think.
This, dear readers, is the real reason we teach children to code. Not to become software developers or to go on to create the new Facebook or the new brilliant app. Some may go in that direction, but it’s not the reason we teach computer programming to all children.
We teach coding because it is an exercise which “mirrors your thought process”; it is a way of codifying our thoughts and being able to see them written down in front of us.
That is why we talk of programming languages: a language is a means of communicating and programming languages allow us to communicate with a computer, yes, but they also allow us to communicate what we are thinking in a logical and unambiguous way.
Of course not all our thoughts can be written in such a way (for now, at least.) But the more we code, the more we learn and practise the act of deconstructing our thoughts in a clear and structured way.
This is a skill that goes beyond coding itself. The more skilled we are breaking down our thinking in such a way to write code, the more likely we are to start thinking in a logical and systematic way in other aspects of our life too.
Education has changed a lot in the past century or so. Learning facts and practical skills was relevant in the work place of the past. But learning to think and make decisions is what is more relevant today.
Many things we learn at school are not direct employable skills. An example of an area in Maths where children may ask the “when will I ever use this in my life” question is geometric proofs. Very few will go on to use their geometric proofs professionally in adulthood. The point is to teach children how to think in a clear and structured way, using mathematical tools (axioms and other theorems) to construct a coherent set of steps to achieve the desired result.
Sounds familiar?
Renowned mathematician David Mumsford [2] has argued that computer programming should replace geometric proofs in Maths curricula, a point echoed in Jordan Ellenberg’s brilliant book “How not to be wrong: The hidden Maths of everyday life” [3]. In some ways today’s curricula around the world have tried to go a step further by introducing programming as a standalone subject for all students across most ages.
However coding as a subject taught in schools is still in its early infancy and mostly doesn’t go anywhere close to far enough for it to be a useful subject. Within today’s education system most schools are not equipped to teach this subject and coding is simply included often as a box-ticking exercise.
We need to move towards seeing and teaching programming as a key subject with the main aim of fostering a certain type of thinking. In the same way that we don’t teach Maths so that everyone becomes a mathematician or English so that everyone becomes a novelist, we should not teach programming on the premise that we will need many programmers in the future. It goes well beyond that.
Enjoyed this and want to learn more Python for free? Check out our sister site The Python Coding Book, for in-depth guides on all things Python, or follow us on Twitter @codetoday_ and @s_gruppetta_ct
[3] Penguin Books, 2014