or Why Not Teaching Your Kids Programming Will Bite Them

Why is it that people I meet get all excited about the fact that I speak nine languages, but when I tell them about my skills of talking to computers (programming), most of them lose interest (“nerd, no need to keep listening!”). How have so many failed to see the relative importance of these skills?

The world used to be about sharing ideas (books), now it’s about sharing ideas (on various mediums at an accelerating pace) and their implementations (github). Talking to computers IS the new literacy!

Firstly, one should understand that talking to computers really is just “talking to computers”. Programming is an act of communication. When writing a program, you’re just looking for a way to communicate your idea to the computer. Similarly to spoken languages, there are endless ways of communicating the same idea and some ways are just more elegant than others. Compared to people, computers are pretty good at telling you what they didn’t understand about the way you explained your idea (or not judging you if you get things wrong).

Variable “request_success” not defined on line 34

Once you realize that a modern high-level language (python for example) pretty much reads like English, then there really are no excuses for not trying to learn them. It’s a common misconception that you need a mathematically wired brain to start talking to computers.

Programs are written in various programming languages, and similarly to spoken languages, they follow certain rules. Those rules are quite similar to the rules of grammar that you follow every time you talk, so saying that you can not pick up a basic programming language is like saying you do not have enough structured thinking to pick up ANY foreign language.

If you have acquired at least one foreign language (since childhood) I assure you — you have what it takes to start learning to talk to computers! According to Stanford research, there is also more crossover from your English skills to math than there is crossover from your math skills to English, so a math brain should not be a prerequisite.

I’m from a language focus class and I was able to pick up a low-level programming language without instruction, so I’m quite optimistic about people’s ability to learn high level languages with instruction. Here’s an example of what typical program to show some text on the screen used to look like compared to today:

and here’s an example of how I see the interaction between me and the computer as I’m trying to write a program to count the occurrence of the word “learn” in google first page search results for “programming” :

What a dialogue between me and the computer feels like when programming

Here’s the actual python code I arrived at after the previous dialogue:

It will take a bit of time until compiler/interpreter messages start sounding like spoken language in your head, but as you can see the resulting code does read quite a bit like English.

This code is a computer program that actually works (at least until google starts thinking you’re trying to crawl them).

Regardless of how far the analogy between spoken languages and programming carries you personally, my point here is that seeing computer programming as a communication problem makes it much more approachable. It really is quite easy to get started and getting to those first few functional results might just provide enough rewards to motivate you push through the math bits that come later.

Let’s take a look at the superpowers you get when you push all the way through and learn how to talk to computers.

Superpower 1: Turning Your Ideas Into Reality

When you describe your idea to a person (elegantly, of course), the result is a lossy copy (interpretation) of your idea in another person’s head (susceptible to change).

When you describe your idea to a computer (again, with elegance), the result is an immutable, tireless, little worshipping robot program that is fully committed to doing exactly what you just said until the end of times.

I mean really — which one would you rather have on your side for permanent pressure to change the world?

You have a choice between copying your ideas to other people’s heads or copying them to reality.

Surely a mix of both is optimal, but convincing people is so much easier when you’ve demonstrated your ability to modify reality (one could argue that an idea executing on a computer is more real than the idea sitting in someone’s head — especially when that execution changes bits on your bank account).

When communicating your ideas to computers, you can effectively rearrange the physical world. Twenty years ago you could blink LEDs on keyboards, maybe open a CD tray (yeah, I wrote both of these programs). Now you can program drones to save lives, build complex structures, 3D print the wildest imaginable shapes, and even program biological molecules to perform mechanical tasks given the advances in synthetic biology.

“The physical science is becoming information science”

as Steve Jurvetson (VC and an advisor to tech companies such as SpaceX and Tesla) has eloquently said. Examples of IT making strides into fuels and chemicals, energy and clean tech, aviation and rockets are commonplace.

Superpower 2: Saving Your Most Valuable Asset — Time

As opposed to trends of money or health that can sometimes reverse, you will never get back a single hour of your life that has passed (you’ve got ca 328 500 hours awake left If you’re 10 right now — I know my readers!). It would only be natural to want to make the most of that time.

Programming is a good way to automate boring work (program robots for labor or code anything that reduces repetitive work — at least in theory ;) ). Much of programming is about looking for patterns and structure, reusing work you’ve previously done and saving lots of time.

Computers don’t care if you talk to them live or over a network, so they are OK with you dropping that daily one hour one-way commute and saving 5 years of an average life (saving 2 hours daily by dropping a 1 hour commute for 40 years is about 29 200 hours and given we spend about 16 hours awake daily, that’s about 5 years worth of time awake not spent in traffic)!

Go see if you can find a person who’ll just give you an extra five years to live if you talk nicely (and I don’t mean by threatening to take five years away first).

Superpower 3: Amplification and Reach

Those who have mastered the art of computer programming can use a dozen lines of code to have a computer go out and bring back data to help make a point to others. They can tell a computer in a few hundred lines of code to find solutions to complex problems beyond their own skills (using evolutionary computation for example). They can write a few thousand lines of code that can create millions of dollars of value or even change how we communicate.

It is now possible to communicate an idea to computers that changes how we communicate as humans.

It’s been done a few times with platforms like Skype, Facebook, Twitter, WeChat, Slack and it will be done again.

The teams that are making an impact on the world are also getting smaller. WhatsApp only had 32 engineers serving 450 million users when they were sold for 16 billion dollars. A single engineer backed by the cloud can serve millions of users. The technological amplification effect of an individual is obvious and it’s backed by an exponential trend.

Our moms and dads needed to be rich and powerful to affect the lives of 10,000 people (with whatever they built). Now everyone has that opportunity by just writing useful programs.

Superpower 4: Location Independence

This might just be the most underrated superpower of people who talk to computers. In addition to saving 5 years of an average life by dropping one’s local commute, programmers (like many other creative professionals) have the option to optimize their location globally.

Most of us stay still on this planet. We typically stay not too far from where we are born. We spend our counted hours working to pay off a mortgage at a place we were born by a random coincidence and convincing ourselves that we’ll get around to seeing the world when we retire (or in 2 week condensed fake experiences called vacation tourism). If we wait long enough, we’ll get to see it all with a plastic bladder bag in our pants or whatever else old age throws at us.

Programming, allows you to start seeing the world already at the beginning of your career. With your first remote job you’re set to work all week behind a computer anywhere in the world (provided network access) and spend weekends checking out new places and cultures.

I’m living in my ninth country now and could not imagine postponing these experiences because of a broken promise of the American dream from the industrial age.

Around 70% of our costs are taxes and accommodation — both change when you move around on the planet. When you work is “talking to computers”, you can choose where to live and optimize your location to match your income or other things that really matter in your life (Mountains? Oceans? Friends? Snow?).

In fact, there’s even software (surprising, right?) to help you figure out where your optimal place to live is. It’s called Teleport Cities. Select a few things you care about or what kind of work you do and it sorts the cities of the world according to your personal preferences. It’s like internet dating for cities, and the algorithms behind the matching are getting better by the day.

Disclaimer: I’m affiliated with Teleport

Figure out your best place to live with Teleport

Similar to picking your favorite cities, moving actually already is about choosing the right set of execution software — Hipmunk for flight tickets, Uber to get to the airport, Airbnb for accommodation, and presto — a day later you’re opening your laptop and working away in a new city!

Do you think it’s a coincidence that all those problems have been solved by people who talk to computers?

None of us had the luck of being born in a country that does not discriminate based on origin. We all have to convince people at the borders that we are worthy -

“Hi, I’m worthy because I happened to be born in the right place, here’s my passport to prove it. Thanks!”

And in nowhere are the skills to talk to computers as important as in countries whose citizens are considered less worthy by other countries (mind you — for historic reasons, that those people crossing borders had nothing to do with). Technology is probably our best bet for change.

Talking to computers fortunately works well across borders (with a few exceptions) and initiatives like the e-residency will also make it easier for anyone to become a part of the global economy (which ironically can make them worthy).

This all is of course by no means an exhaustive list of superpowers that you get when you talk to computers. I’ve mostly painted the picture of superpowers that are already obvious today.

Tech trends, however, often follow exponential curves and it is likely that the the number of superpowers your kids would miss if they don’t learn programming would grow exponentially as well.

How many superpowers do they need to miss for you to start that “learn to talk to computers” conversation today?