Everyone Should Experience the Joy of Coding

I've written about the digital divide and about how teaching yourself computer programming is a great way to get into a new career track. Unfortunately the chasm between tech users and tech creators continues to grow. As a society we talk about outsourcing, downsizing, and retraining but not specifically how important is for everyone everywhere to learn some coding skills. The world as a whole is barreling down a path where those who know how to code will own those who don't.

At some point, thousands of years ago, a group of hunter and gatherers figured out that wearing animal skins not only made you look fashionable, but enabled you to live a better life. During the "clothing paradigm shift", when we went from unshod to shod, early adopters of "skinning technology and tools" had an advantage over those who chose to remain au naturel. The early clothing adopters had to learn how to skin animals, tan and cure hides, and cut and sew skins into stylish capes, robes, and wraps. Those who didn't learn these skills had to trade for the new "soft ware." Neolithic stock prices when through the roof!

Today we don't have to worry about hunting up our jackets and boots (but if we did I bet we'd wear mostly cotton). It's been over 30,000 years since clothing was invented and human beings have ready-to-wear figured out; Not so with computers and computer software.

We're in a long transition period, probably for the next twenty years, during which computers and software will continue to be integrated into very aspect of our lives. Our HuffPost editors are a great example: They are journalists and they are technologists. They know how to analyze data, read and write HTML code, work with search and social systems, and they know how the Internet works. They could not do their jobs without these skills.

The only thing holding our HuffPost editors back is that they can't write computer programs (for the most part). This means tech guys like me get in the middle of the editor-read relationship. Middle men slow things down. Image if you needed a clothing operator to access your shoes in the morning and configure them to the weather. (My mother used to pick out my clothing but as I grew up the situation became problematic. To optimize my social networks I had to learn to pick out my own tee-shirts and jeans.) It's the same with computers and software: You can use the software from guys like me to run your business, write your blog posts, or edit your movies, but eventually you want to learn programming & scripting, so that you can do more and go faster.

There used to be this great software construction kit from Apple. It was called HyperCard and while it was around thousands of people without a technical background created thousands of software applications (called stacks). Until Apple killed HyperCard in 1997 it was a bridge tool that turned computer users into computer programmers. Some of us HyperCard fans thought that web sites (HTML and Javascript) would become the new software construction kit. Have you tried to create a web site from scratch lately? HTML is more complex than ever and Javascript has become a full blown programming language that requires the skills of a master programmer.

It would be great if someone brought back HyperCard and reenabled the bridge over the digital divide. RunRev is trying to do this with their LiveCode Kickstarter project. RunRev has been around since 1997 and has made a business out of a HyperCard compatible product. What I like about their Kickstarter project is that it brings the HyperCard idea to open source. I'm always a little leery of closed sourced programming tools and solutions. With open source I can see and modify the source code. I can extend it. I can rely on a community to maintain it. I think communities are safer owners for critical infrastructure and tools than companies or governments.

You don't need a software construction kit like HyperCard or LiveCode to learn how to program. You can go to Codeacademy or just pick up a book on Ruby. However, you'll be immediately hit over the head by complexity. When I was learning to develop applications for the original Macintosh computer I used a series of books entitled Inside Macintosh. There were three volumes and to understand volume one you had to know the contents of volumes two and three. You can see the problem. Most programming environments require a deep understanding of computer science fundamentals. Without a software construction kit to bridge the gap most non-technical folks never get to the good part: Watching their applications being used by other people.