Code, the New Literacy

As software is eating the world, the obvious and correlated demand to build software has also exploded. Software businesses are growing faster than ever. But also other industries, traditionally dispassionate by technology, are being outgrown by itself in ways they didn’t expect. Software has become ubiquitous and being left out from the revolution seems kind of uncool.

I’m in a position to (slightly) understand the value of software. iomando, for example, has laterally entered the access control market with a software based solution that reaps the scale of the internet in order to compete with larger, long-stablished companies. And it works quite well.

But lately I’m under the impression that a dogmatic believe around software is being created. A sense that if you don’t know how to code, you are doomed and unemployable for the rest of your days. I firmly believe that’s not true. Since I realize the importance of knowing how to build software as a skill, I will try to make a case against it.

A few years ago software engineering was an isolated discipline of engineering, the same way an electric engineer is. But as software has been gaining momentum and horizontally overtaken adjacent industries, it has become the underlaying language that binds together multiple engineering (and non-engineering) disciplines.

I’m the perfect example for that, my background lays in Industrial Engineering, but I had to learn how to code in order to kick start my company. Back then I was erring more on the “if you don’t know how to code you are doomed” side. But that was because I was brutally focused on the product side of the business and I was perceiving a narrow and delusive view of the reality. As the company grew, I started to widen my perspective and soon realized how wrong I was about the future and code.

But who knows how to make a computer mouse? Nobody, literally nobody. There is nobody on the planet who knows how to make a computer mouse. I mean this quite seriously. The president of the computer mouse company doesn't know. He just knows how to run a company. The person on the assembly line doesn't know because he doesn't know how to drill an oil well to get oil out to make plastic, and so on. We all know little bits, but none of us knows the whole.

As Matt Ridley points out in his TED talk, we live in a world of specialization. As a society we leverage our trading abilities (from knowledge to vegetables) in order to maximize the outcome of everything we produce and raise our living standards. We’ve reached a point where the specialization is way beyond our understanding and this leads to curious consequences: anybody knows how anything is made anymore, even the simplest thing.

Circling back to the topic, we can’t pretend to specialize everyone in a single area, because our society is grounded on completely different mechanisms. Specialization is the whole point of progress, so while Mike is working on the code base, Alice is designing a new marketing campaign. At the end of the day we can get the most out of the synergies created by these unrelated fields.

 It takes an entire civilization to build a toaster. Designer Thomas Thwaites  found out the hard way , by attempting to build one from scratch.

It takes an entire civilization to build a toaster. Designer Thomas Thwaites found out the hard way, by attempting to build one from scratch.

In my own experience, and bringing back the discussion to the product world, coding is just one area of the whole product development. It’s a really important one, yes, but as important as operations, marketing or communication. Areas where the people running them might not be native coders. One of the most important lessons I’ve learned these years running the product at iomando is that shipping product is a polyhedric problem. It has not a binary outcome (as much as we’d like) and the best way to take control of this shades of gray is by bringing in the most diverse backgrounds.

One of the most important trades of human nature is diversity. This is an organic enhancer for our society, not a pseudo mechanism to categorize individuals based on what they are good at. Therefore, as long as "we humans" run our society, as long as this happens, every tool we use should be considered as an enabler, not as an end by itself.

As long as we are in a pre-Singularity world and human beings are governing our economic, social, and political decisions, our global ecosystem will always be driven by the human need. Anything else is a tool or language which we use to further the human specie.

So far the discussion has been orbiting diversity in order to defend the hypothesis, but there's also a valid point to be considered that goes something like... “if computing is obiquitous, we all might know how to operate this machines…”. Fair enough. My case against that would be that we are treating software as an immature field. Think of cars for example, everybody drives one, but almost nobody knows how a combustion engine works[1].

As software matures it will become more approachable to people unfamiliar with the matter. Think of the work involved in setting up a website 10 years ago. Now think how easy is to sign up for Squarespace today. Understanding how technology works at a higher level might put yourself in a better position dealing with certain situations, and you might leverage that to be more productive. But when things really go south, you’ll feel like the average Joe looking under the hood of his car wondering what’s broken...

Knowing how to code will be a valuable skill in the future, no doubt about that. Demand for software developers will grow as software advances in the world's domination. But code by itself won’t get you that far. An important lesson I learned among the startup community is that the most amazing stuff always happens in the borders of unrelated disciplines. Creativity emerges in the frontiers of knowledge, so if you are a developer, my best advice is for you to take some classes of psychology, or philosophy, as far as software goes.

The 21st century demands us to realize the inter-disciplinary inter-connectedness of so many aspects of our lives, with technology usually being the glue. And once we have realized this, we can truly begin to understand how we as individuals, teams, and organizations can solve the problems that our fellow human beings are afflicted with.

So stop thinking about code as the must-have skill we all need to survive in this world. We need diversity as much as we need software engineers. We need to work at the intersection of different disciplines and start building bridges in order to let creativity flourish. Only by doing that, progress is achieved. And by the way, when a Her-type scenario arises, both the poet and the coder will be unemployable, so stop thinking about it anyway.


[1] The conversation deserves a small digression because it touches a really profound point. This is something I’ve been thinking for a long time, and it tangentially relates to this theme. A few decades ago, everything could be explained by some basic physics and Newton’s Laws. Cars, planes, architecture, energy production (nuclear aside)… It might be difficult to understand how a building was sustained, or how a toaster worked, but it was within the eye scale. You could understand by touching.

But now, everything has shifted into something we have to believe in. It’s not that we don’t understand how things work at a large scale, is that we have lost absolute control over what’s happening behind the scenes when we touch our smartphone or what information is leaving our computer right now through an electromagnetic wave. All of this stuff is way beyond what we can touch or see, therefore it’s way difficult to understand at a low level.