Coding is a Life Skill
Sun, Nov 1, 2015I have often said that I believe computer programming should be adopted as a core curriculum subject in primary school, just like science, history, or math. I often give presentations to this effect for parents, teachers, and school administrators. In this article, I’ll explore a few of the reasons why I believe so strongly in the power of early CS education.
When considering the place of computer science in the curriculum, let’s first look at why we teach other core subjects.
We teach science because we want children to understand the world around them, and the scientific method is a fantastic intellectual tool for investigating the world around you. In a modern society, where scientific advancements directly affect so many aspects of our lives, it is advantageous to have a good understanding of how science works.
In the same way, learning about history or math contribute to a better understanding of the world by providing perspectives and ways of thinking that we wouldn’t otherwise know. In particular, I’ll talk about the use of math in more detail below.
“But what about kids who aren’t interested in becoming programmers?”
We don’t teach science and math because we expect every child to grow up and become a scientist or engineer. The goal of a general education is to produce a well-rounded individual who has a good understanding of the world. It’s also important because it gives kids a chance to discover their aptitudes. If a child is never even exposed to a particular subject, how can they find or develop a passion for it?
Even kids whose talents lie in a non-technical direction can benefit from a solid understanding of how technology works. Regardless of your future path, it’s very likely that you will be using and interacting with technology to some extent in your career and daily life.
Coding is problem solving
Programming a computer is an exercise in problem solving and logic. In order to successfully program a computer to perform a particular task, the programmer has to break the problem down into manageable, bite-sized steps and “teach” those steps to the computer.
Even outside of computer programming, this is a hugely valuable skill. Being able to tackle complex problems and break them down is something that many professions can benefit from. Think about complicated situations that you’ve had to deal with in your work or personal life. Consider a lawyer, for example, constructing an argument based on a set of facts, or an architect designing all the many systems that go into a new building. These are all very similar processes of logic and problem solving.
It’s empowering
Predicting the future is notoriously difficult, but it’s probably a safe bet to say that today’s kids will not have less technology around them when they grow up. Those students who have developed an understanding of how technology works will be better equipped to deal with the ways that technology impacts their lives.
Programming a computer is not the same as simply using it. Learning to program changes you from a passive consumer of technology to an active creator of it. It’s like the difference between being a reader and knowing how to write, or a movie-goer versus a filmmaker. You are better equipped to evaluate, understand, and even change, the technology that surrounds you instead of just accepting it as it is presented to you.
Plus, imagine how positive would it be if tomorrow’s law and policy makers were to have a better understanding of technology and its impact on society.
It pays to start young
For those students who do have an aptitude and interest in computer science and/or software engineering, there is a huge benefit to being exposed to those subjects at an early age.
Like many skills, becoming accomplished at programming takes practice. It can be likened to playing the piano - no matter how naturally talented the player, there is no substitute for lots and lots of practice. Students whose first exposure to programming doesn’t happen until they reach college will be at a disadvantage to those who have already been coding for years. In my own experience, I have interviewed recent college graduates who, while completing a computer science degree, are not sufficiently experienced in programming to be able to fulfill the requirements of an entry level coding position. They just haven’t had enough practice.
It has a future
Computer technology is becoming more and more deeply integrated into our world. Mobile computing, robotics, nanotechnology and other fields are rapidly growing and all will need programmers to make them work. Medical and other scientific research fields now use computers extensively - indeed, they can’t be done without computing anymore.
To illustrate this fact, as of last year, the unemployment rate in the high tech sector was around 3%, with that of programmers in specific being half that. During the recent recession, coders were relatively immune to the downturn in employment. Tomorrow’s programmers will continue to be in demand as these and other technology fields continue to grow.
Conclusion
These are just a few of the ways that early computer science education can benefit today’s students. In short: we need kids who are prepared for the high tech future.
None of these recommendations should be taken as promoting a particular specific technology kids should learn (although I am a strong advocate for the Python programming language and its benefits for beginners). Technology is changing all the time - today’s popular platforms will be tomorrow’s quaint memory. However, the concepts of programming remain the same: problem solving, computational thinking, and logic.
I welcome your comments and questions below.