Back in the before time when I started my technology journey, in the CP/M days, there wasn’t as much software available and what was out there was either amateur shareware or really expensive. Basically there was an assumption that if you bought a micro-computer you would probably have to write the program needed for the machine to do whatever it was that you bought it to do. It was a very different world back then. There were no online app stores. There were nerdy user groups, the local radio shacks and the few mostly mom and pop “electronics” stores. But, many of the computers came with a copy of the Basic programming language. My Kaypro computers came with a copy of Basic and even though I said that I bought my computers primarily for writing, I purchased a copy of Turbo Pascal because I heard that it was a computer language specifically designed to teach computer programming. And then I proceeded to never bother to learn any programming1. Oops. So, I was not a typical early micro-computer user because I was neither a gamer or coder, which most were in the early days. 

Should Everyone Learn a Programming Language-Programming Family Tree
Should Everyone Learn a Programming Language-Programming Family Tree

That was then… the question remains, does learning programming make sense today? Since developing the Swift Programming language in 2014, every company keynote by Apple often included some invitation to write applications to run on these little devices. “Everyone should learn how to program,” was a pretty strong through line for many years. Of course Apple is going to promote programming. Without an army of programmers creating the Apple/iOS/iPadOS eco-systems the value of Apple hardware doesn’t exist. So, saying that everyone should learn how to program is just good business (for Apple). But as a retired-educator I come at the question not necessarily from a future career or money-making angle. My question is, what’s the benefit(s) of learning computer programming for the individual student, the learning community and then society. This takes us back to the beginning (again), with one of the pioneers of computers in education, Seymour Papert.

Thinking about the purpose of learning programming as part of the public education process is something completely different from the typical tech business mindset of individual programmers learning new skills so that their apps can go viral which will make them millionaires before they’re forty and make big tech companies even bigger. Many who promote technology in education come from the point of view that confuses the novelty of using technology in the classroom with engagement in learning or as some panacea that is going to make education “easier.” Yeah, that’s not the way it works. I approached technology in education the same way I looked at technology as part of writing, the point wasn’t to learn technology but to do something with the technology that wouldn’t otherwise be possible. I did directly teach how to use different apps, but they were used to learn other things, like the students in the video learning math as they programmed the mechanical “turtles.”

Learning programming in this context accomplishes three things:

  • Communication Skills: Programming, technology, robotics all require information or instructions that are clear, specific and detailed. ChatGPT and Large Language models are getting better at anticipating the possible meanings behind words, but there is a communication skills even with those coming up with the prompts that are used by this latest development. All the elements of non-computer language learning are here: vocabulary, syntax, grammar. The process of going from an idea or thought or feeling and creating some kind of symbolic representation can be developed as a part of learning computer programming. 
  • Problem Solving: A fundamental component of learning is the ability to troubleshoot problems. Because programming requires exactness there is ample opportunity to learning problem solving skills when ones program fails to run. It’s a failing in our culture and educational system that we tend to reward accomplishment and success and diminish the struggle and seemingly endless failures one must work through before said success. I would love to see one of the billionaire tech-bros sit down with one of Papert’s Turtles and see how long they last at the keyboard.
  • Teamwork/Community/Humility: No one can know everything, so ones possibility of success is very much connected to how well one shares with or seeks the help of others. The genius of our species is our ability to work together to do things that wouldn’t be possible otherwise (kind’a like what technology itself offers). While the job may be thought of as completely individualistic, just like writing, success can be better gained the more one is willing to share with others in order to improve ones own skills. 
Should Everyone Learn a Programming Language - The Entertainer (Scratch programming screen)
Should Everyone Learn a Programming Language – The Entertainer (Scratch programming screen)

While I do not consider myself a programmer, I understand and appreciate the basics. I got a chance to spend time experimenting with a block programming language called Scratch which was being developed by the Media Lab at MIT. We were developing our programming curriculum for Full Sail Labs and while the others created side-scroller games I created a Lunar Lander game that started with a presentation on the 1969 Apollo 11 journey to the moon. 

If you cannot play the embedded game, click HERE to play the game.

It was fun writing that game. There’s quite a few things that I could probably do to improve it. I’ve always been meaning to spend time learning Apple’s Swift language. I started doing their Playground tutorial on my iPad many years ago, but never finished.  This whole subject came up because I was listening to a podcast, Mac Power Users, and the guest talked about how he had created his app, Callsheet, using Swift and that reminded me of my unfinished explorations in programming. I personally don’t see the need to become a software developer, but maybe I can continue to explore this medium for its storytelling potential…. That would make for an interesting twist to my own technology journey. 

How about you? Have you ever experimented with a computer language? Are you looking for a better side-hustle or main-hustle or nerdy hobby? Why not? Check out the resources listed below for short videos to get you started on your exploration. Enjoy.

Should Everyone Learn a Programming Language - I'm a Cat (Scratch programming screen)
Should Everyone Learn a Programming Language – I’m a Cat (Scratch programming screen)

Sources:

  1. … Except that I got pretty good at simple command line Batch programming, which is used when the computer starts up to automatically launch applications or settings. It was a very simple “language.”[]