If you are a frequent reader of my blog then you most likely are learning programming to become a programmer of some form. Obviously if you want to be a programmer it make sense to learn programming, but what about everyone else that does not want to be a programmer? Should they learn programming? I think they definitely should, but probably not for the reasons you think.
What Is Programming?
In order to talk about why someone should or should not learn programming we first need to understand what programming is at its core. Programming is just a way for you to communicate with a computer in order to make the computer do something for you. This can be anything from building out a complex web application like YouTube or as simple as a hello world application. In both scenarios you have written some form of instructions the computer can interpret in order to do what you want.
The problem is learning how to build YouTube is pretty pointless for someone that does not want to be a programmer, and a hello world application serves no use for anyone. The sweet spot for programming is when you write a small program that will help you complete a certain task more efficiently than you did before. This is the best use case for programming especially for non-programmers and is the main reason I think everyone should learn programming.
Does Everyone Really Need Programming?
You may be thinking about my previous sentence and wondering if everyone truly could use programming in their lives. It is obvious to see how a manager could use programming in Excel to help them manage reports, but does a cashier at McDonald’s really need programming.
At first glance it doesn’t look like they could use any programming in their work life, but what if when this employee arrives at work they need to mark somewhere when they arrived so their working hours can be calculated. This is something nearly every hourly worker will have to do. On most days this system works fine, but what about the days the employee forgets to mark their arrival time. They may be able to estimate their arrival and mark it in hoping they don’t underestimate their working hours, but they could be subject to receive some form of punishment for forgetting. I know when I worked as a janitor at a movie theater I would forget to mark my arrival times far too often. With no knowledge of programming this is a pretty difficult problem to solve since the employee’s schedule is constantly changing so no alarm system will be enough to help them remember.
Luckily, a little bit of programming knowledge is enough to solve this employee’s problem. If this employee set up a basic mobile application such that when they arrived at work it would vibrate or notify them in some way then they would never forget to mark their arrival time. This is also a fairly simple problem to solve since the employee only needs a very basic understanding of how to create a mobile application and how to use GPS.
With just a little bit of programming knowledge this employee has just saved themselves from potentially getting fired from a job for simple forgetfulness. This example also does not even consider the fact that people haves lives outside their job where they do things that almost always could be drastically improved by just a little bit of programming skills.
How To Teach Everyone Programming?
So I have talked about what programming is and why it is important that everyone learns programming, but how exactly is everyone supposed to gain this knowledge. Learning programming is definitely not an easy task and then trying to figure out the best way to teach an entire population just makes this problem even harder. I do think there is an easy solution, though. Add required programming classes to schools.
School is the one place that everyone is forced to go in order to learn skills such as math, language, history, and science in order to make them a more well-rounded and better functioning member of society. I do not want to get into the merits of whether or not schools do or do not achieve this goal, though. For the purposes of this article all that matters is that schools are meant to make students more well equipped to handle the rest of their lives.
Some schools are already starting to see the advantage of programming and are adding programming classes into their curriculum as mostly optional classes, but for the most part they are doing it wrong. Most of these programming classes are all about HTML and maybe a little bit of CSS. This makes the programming class more fun since it is very visual, but the biggest benefit of learning programming is to make a computer do tasks for you and HTML/CSS alone cannot do that. These classes should instead be more focused on learning basic programming concepts, such as, variables, loops, functions, etc. These are the concepts which are needed in order to write programs that can enhance your life.
Just one semester of this type of class would be enough to get the basics of programming out to the general public so that they can think of programming as a solution to their problems, but I think two semesters of required programming would be ideal for helping teach everyone enough about programming to empower them to create their own useful programs. The hard part is figuring out how to add an entire year of programming classes into a student’s curriculum. Right now school is already loaded with an extreme amount of required classes and universities are only getting more strict on the number of semesters of each subject a student must complete. Luckily, programming has many overlaps with other subjects, namely math.
The purpose of math classes in school are to help you with basic algebra which makes day to day life easier, but also more importantly to help you with problem solving skills. I am sure that you have probably taken geometry at some point in your life and while you have never calculated the angle of an acute triangle outside of class, the problem solving skills you learned in that class have helped you in life. These same problem solving skills can be learned through programming as well. Because of this, programming classes can replace some of these extra math classes that students going into non-math focused careers do not need while still providing the same problem solving benefits to students. These extra math classes could then just become optional for the students that need them. This would increase the readiness of students drastically since they would learn the same problem solving skills while also gaining valuable programming knowledge to use later in life.
Becoming a programmer is definitely not for everyone. With that said, programming is a skill that every person should at least understand the basics of. If we were able to incorporate programming into required school curriculum, students would leave school with the same level of knowledge they currently are, but with the addition of highly valuable programming skills.