The Logic of Code

futurelab default header

Some months ago, I downloaded the Kodable app for my 4 year-old, which boasts that it can teach toddlers how to code before they can read. My programming skills are pretty basic, but I like the idea of giving my child a head start.

Many of today’s business and political leaders stress that coding has become an essential skill for the digital age and there’s been an avalanche of new services—from classes and training programs to free online resources like Code Academy and—to meet the demand.

Yet long tech columnist Kevin Maney disagrees. In a recent piece in Newsweek, he writes that by the time today’s pre-teens reach the job market, they “will find that coding skills are about as valuable as cursive handwriting.” To many tech denizens, that’s apostasy, but he has a point. Preparing for the future will take much more than writing command lines.

What Is A Code?

Thinking about code as a set of logical commands is actually a fairly new phenomenon. At its core, code is a matter of information and complexity. We encode information in order to communicate it. Sometimes, we use codes to simplify, to facilitate efficient decoding and sometimes we add complexity to make communication more stable and secure.

When I first began living in a foreign country, I had serious trouble decoding information. Even as my language skills improved, I still ran into barriers of culture, professional environment and social custom. Small gestures and turns of phrase that were second nature to natives were still opaque to me and that limited my operational effectiveness.

We all use code in our everyday lives to create bridges between levels of complexity. In Poland, a simple hand gesture can be used to signify a hard night out, while marketers use a variety of acronyms to convey fairly complex underlying concepts. Using codes in this way makes communication more efficient, but also indecipherable to outsiders.

And that’s why so many digitally inclined people believe that everyone should learn code. As we become increasingly immersed in a digital environment, we need a certain amount of knowledge in order to interface and communicate effectively. “As Liz Lukas, CEO of digital training company, Decoded, says, “it’s a matter of basic literacy.”

A Short History Of Computer Code

In the mid-19th century an English mathematician named George Boole created a basic logical system that could be encoded into ones and zeros. Nearly a century later, Alan Turing proved this logic could be used to create a universal computer and Claude Shannon showed how to encode that logic into electrical switches called logic gates.

All computer codes today are largely based on the work of those three men, but the first ones, called assembly languages, were cumbersome to work with. So computer scientists compiled the primitive code of assembly languages into higher level languages, like Fortran and COBOL.

Today, Fortran and COBOL are not as widely used. Just as those languages encoded complex commands of assembly code into higher level languages—much like a hand gesture encodes a hangover in Poland—today’s computer languages encode earlier ones. In fact, today’s programming languages include code libraries, to reduce the need to write code.

So you can see Maney’s point. Just as the utility of Fortran and COBOL is greatly diminished today, so our present computer languages will not serve our children well in the future. In fact, as Maney points out, scientists at DARPA are working on a new computer language, called MUSE, which will encode all present libraries into everyday language.

Operating Between Ecosystems

Yet there is a flaw in Maney’s argument. Just because computer languages have a way of becoming obsolete, that doesn’t mean that we don’t need to know how to code. There is an underlying logic to the digital world and we must be capable of operating within that logic in order to function in it.

Take the marketing example I used above. Many people find marketers’ excessive use of acronyms maddening—with good reason—yet those annoying codes signify essential concepts for selling products effectively. In much the same way, using symbols such as “#” and “RT” is indispensable for functioning in a social media environment.

Here’s where Liz Lukas’s point about basic literacy comes in. We no longer operate in silos, but ecosystems. Marketers who operate in social media and digital environments need to be able to express themselves not in terms of marketing code, but in the languages of those particular fields of endeavor.

Yet even more than that, as our professional environments become increasingly technological, we need to have a basic understanding of the underlying logic that computer languages encode. And that is why I downloaded the coding app for my little girl.

Preparing For The Future

As I noted above, Kodable aims to teach toddlers how to code before they can read. It does so by encoding computer logic into fuzzy little characters and a system of arrows, paths and boxes. Children don’t write commands, but drag them into the proper sequence so that their fuzzy friends can successfully complete a maze.

I don’t know if my daughter will ever want to write her own programs, but I can’t help believing that exposing her to the logic of their design is a good idea. As Scott Brinker of Ion Interactive explains, “learning how to build things with code is a pretty good way to gain an understanding of concepts in design and architecture in fun way.”

Grechen Huebner, a founder of Kodable, echoes the same sentiments. “You learn by doing things,” she says. “It’s like math. We now have tools that do a lot of the hard work for us, but everybody will need to have some of the basics of programming logic and problem solving in order to function effectively.”

So while Kevin Maney has a point when he says that “new technology is about to render programming languages about as useful as Latin,” learning how to code is much more than ad hoc.

Image1 via flickr

Original Post: