Integrated Synthesis of Media, Society and Behavior

Everyone is a Programmer and Everyone Should Hone Their Programming Skill

Anyone that has worked with me is tired of me suggested that everyone in business should know how to program. This thought is met with a variety of rebuttals that have only a slight shred of a validity.

Everyone programs. If you get out of bed in the morning and go through any sort of routine (everything is pretty much a routine) you are programming. This is not semantics. Programming is nothing more than organizing things in such a way that they transform into other things. Everyday life is programming, it’s just not the uber-formal (re: very restrictive) programming we think computer programmers do.

When people reject my statement about everyone programs and should get better at what they are actually rejecting is the specific implementations of computer programming – the syntax, the formalities, the tools, the long hours in front of a headache inducing screen.

If you speak, write, draw or communicate at all you have learned a set of rules that you apply to various inputs and produce various outputs. If you work in spreadsheets, at a cash register, with a paint brush, in a lecture haul, in a lab, on a stage, you are programming. If you make yourself a sandwich, eat it and go for a jog, you are programming. Everything you do is taking inputs and transforming it into outputs using various rules of a system. The system is more or less formal, more or less open.

I don’t see there being any room for dispute on this observation or rather this definition or axiom.

With that basic assumption as a starting point let me make the case that honing your more formal, strict and, yes, traditional “computer” programming skill is a must do for anyone participating in modern society. (yes, if you do not participate in modern society and do not wish to do so, you don’t need formal programming skill, but you will always be programming within the universe…)

Without getting too out there – our lives will never have fewer computers, fewer programs, fewer gadgets, fewer controllers monitoring, regulating, data exposing, recommending, and behaving on our behalf. Cell phone penetration is near ubiquitous, every car has computers, trains run on computerized schedules, more than 50% of stocks are algorithmically trade, your money is banked electronically, the government spends your taxes electronically and so on. So in some sense, to not be able to program formally leaves you without any knowledge of how these systems work or miswork. Some will have the argument that “I don’t need to know how my car works to use it/benefit from it.” This is true. But computers and programming are so much more fundamental than your car. To not be able to program is akin, at this point, to not being able to read or write. You are 100% dependent on others in the world. You can function without a working car.

Before you reject my claim outright consider the idea that learning to program is quite natural and dare I say, easy. It requires no special knowledge or skill. It requires only language acquisition skills and concentration which every human i’ve read about or know has these two basic capabilities (before we go on destroying them in college.)

Why do I make this claim of ease?

Programming languages and making programs that work rely on a very small language. Very simple rules. Very simple syntax. Frustratingly simple! The english language (or any spoken language) is so much more ridiculously complicated.

It does not surprise me that people think it’s hard. It’s frustrating. It’s the practice and the simplification of your thoughts into more simple languages and syntax that’s hard. And so is writing a speech others will understand, or painting a masterpiece, or correctly building a financial accounting book, or pretty doing anything you do for a living that requires someone else to understand and use your output.

I firmly believe each persons ability to translate their lives into useful programs is a differentiator of those that have freedom and identity and those that do not. Either you are programming and able to keep watch over the programs you use or you are programmed.

Sure, companies and people are busy at work making easier and easier tools to “program” but that doesn’t change the fundamental problem. The programs you layer on top of other programs (web page builder guis to HTML to browser parsers to web servers…) the more chance of transcription problems (miscommunication), unnoticed malicious use and so forth.

Beyond the issue of freedom it is fun and invigorating to create, to mold your world. This is the part that’s hard for adults. Having spent probably from age 10 to whatever age we all are following rules (others programs) and being rewarded (program feedback loops) we all don’t really do a great job molding our world. Kids are so good at experimenting (playing). And playing is essential to really great programming. Programming that will fill you up and make your life better is the kind that generates wonderfully unexpected but useful results. It’s not always about getting it right or spitting out the answer (though for simple programs that might be the point). It’s about creating, exploring, and finding connections in this world.

I can replace the word programmer (and programming) in this post with Artist, Mathematician, Reader, Writer, Actor, etc and it will be essentially the same piece with the same reasoning. All of these “occupations” and their activities are programming – the only thing that differs are the implementations of language (syntax, medium, tools).

When people are rejecting my argument that everyone should learn to program, they are rejecting the notion of sitting down in front of a blinking cursor on a screen and having a piece of software say “error”. Reject that! I hate that too! For me, correcting grammar in my posts or emails or journals is as painful! (but it doesn’t prevent me from wanting to write better or write at all, i *need* to to survive and be free!)

Don’t reject the notion that you shouldn’t be always trying to communicate or understand better – taking inputs from the world and transforming them into useful outputs. To reject that is essentially rejecting everything. (and that is now the annoying over-reaching philosophical close!)

Like this:

Related

2 Responses

I feel like I may have argues against this at one point a Smiley, but now I totally agree, especially given the broad definition proposed here. People NEED to be better at assessing inputs and desired outcomes and feeling in control over what happens in between. Boy would it make my life easier if my coworkers (who are smart, nice and hardworking) could just improve a bit in this regard. This is a big driver in my desire for my kid to have access to as many languages (spoken, otherwise) as possible at a young age, and to do whatever I can to make him feel that whatever the problem, he can take control of the solution, even if that involves finding the right person to help. As you said, that’s programming.