Recently, there has been a lot of discussion about teaching programming as part of a standard education. Many politicians and even large tech companies such as Microsoft and Facebook have voiced their support for including programming classes as part of a core curriculum. Some of the companies have even offered up money and scholarships to back their support. The stated reason for this is that computers are increasingly commonplace in society and not knowing how to program will hamper future job opportunities for the next generation of professionals.
This sounds very sensible and obvious. The only problem is that they’re wrong.
Since the beginning of the modern computer age, computers have made many tasks easier. Some tasks could not even be accomplished without computers. For example, the Large Hadron Collider produces dozens of terabytes of data from a single test. Not only are computers required to run the test, they are also absolutely required to get anything meaningful out of the test results. Without computers, the Large Hadron Collider would not exist, nor would it have even been imagined.
Computers can do wonderful things, but they can only do what they are told to do. That is where programmers come in. They tell the computers what to do, and the computers do it. Programmers come in a range of abilities. Some are great, some are good and some should have followed another career path.
There are a lot of bad programmers out there. Good programmers are hard to find, and great programmers are as common as hens’ teeth. So, why shouldn’t we teach every child how to code to ensure we produce as many great programmers as possible?
Great programmers aren’t made, they’re born.
It’s very true that programmers have to learn how to code. No one, no matter how smart, can just sit down and start writing a program. It takes lots of study, effort and hard work. However, great and good programmers have an affinity for programming. They don’t see it as just a job. They enjoy writing code. They think about it when they’re not at their desk. They dream about it. This is not something that can be taught, and someone with that desire will be naturally drawn to computers and will pursue programming on their own whether their school teaches it or not. Likewise, kids who aren’t interested in programming will sit in class bored out of their minds, squeak by with a barely passing grade, and be glad when it’s over. They’ll get nothing out of it.
Ever since ENIAC was first turned on, the dream has been to create a computer that could truly think for itself. Great leaps have been made in recent years in the field of artificial intelligence as processors have gotten faster and memory has become ubiquitous. We now have cars that can drive themselves and chatbots on forums that can be difficult to determine if they are a human or a computer. Hosting companies such as GoDaddy already offer services that will build a website for you without you having to know anything about programming. Granted, these sites look like they were built by a computer, but they function. Within 5 years, I expect it will be commonplace for small companies to have a website that was built without requiring a programmer for any of it. Within 10 years, probably all but the most complex websites will be built without a programmer having spent any time on it. The wide-open field of programmer positions will start shrinking dramatically and bad programmers will be the first to go.
So, what should we do, instead? Glad you asked.
First, we should absolutely make programming classes available (not mandatory) to any child who wants to learn; even in elementary school. My first computer was a Tandy TRS-III that I programmed on when I was only able to reach the keyboard if I had a couple of books under me in the chair. You’re never too young to learn, if you’re motivated. Non-mandatory programming classes at a young age will help ensure that every potential great programmer has the opportunity to pursue their passion.
Second, if we must add something to the core curriculum, how about classes in basic logic and problem solving? People have a tendency to let emotions and opinions cloud their judgment on a vast array of topics and it seems to be getting worse. I believe a root cause of this is that most people never learned to look at a problem logically and dispassionately. A strong foundation in general logic could go a long way towards prompting people to set aside feelings and biases, and focus on the actual problem to solve. Programming can be a very good tool for teaching logic, but it is certainly not the only, or necessarily the best one.
Let the kids decide.
The push for teaching every child to program comes from a good desire to see every kid have the opportunity to excel in society. That’s a laudable goal and one that should be pursued by any society that wants to be as great as it can be. But teaching every child to program will not get us there. Making sure every child has the opportunity to pursue what they are most interested in is the way. If that’s programming, great! If that’s art, great! If that’s chemistry, great! But let the kid decide.
Author Greg Keene is lifelong computer hardware and software enthusiast who has been with Access since 2011 and began his career developing applications and managing a network for the U.S. Postal Service. Click here to find out more about Greg and the rest of the Access team.