Last week I had the chance to hear Douglas Rushkoff talk at the annual CSTA CS&IT Symposium. All of the conference attendees were also given a copy of his book  Program or Be Programmed: Ten Commands for a Digital Age – I got mine autographed too! This week while on vacation I had a chance to read it. While it does not paint quite the dystopian view of the Internet that Sherry Turkle’s Alone Together: Why we Expect More From Technology and Less From Each Other it was concerning.  Turkle’s book I found so discouraging and so scary that I honestly could not finish it. Rushkoff at least suggests a way out, a way we can make things better – learn to program. But it is is a mistake to look at Rushkoff’s book just as an argument for teaching more students to program. That seems to be the only message most reviewers get out of it. But there is more to the book than that.

There are “ten commands for a digital age” encapsulated in the book. “Program or Be Programmed” is the last of these ten commands. Each chapter is well written and has a huge number of items to contemplate. They do all sort of lead up to the last command but that is not all there is to it.  Each of these chapters could be the source of a long, interesting and potentially useful discussion on its own. As I finished each chapter the same question came to mind – “What does it mean?” I’ve spent a lot of time on many of them. And they bring up still more questions.

For example, when I look at what it means to be a “friend” on the Internet today. Is it real? Is it just an advantage to marketing people more so than to us as individuals? One thought that came to mind was “how many friends would you or I have on Facebook if each one cost us a dollar a year to keep in the list?” Would all those cute girls accept hundreds of friend requests from boys they have never met? Would I have 350 friends including many I have never met? Would I pay a buck a year so my manager could see what I am up to? How would even a small cost change the way we look at Internet connections? Right now advertisers pay for Facebook. We who use Facebook (or Google or Bing or any one of many “free” services) are the product – what is being sold – not the customer who is paying for things. How would these sites be different if we were the paying customers?

Thinking about the programming piece again. When we look at history we see that changes are caused by people who create new things. John Deere and his brother changed the way of modern farming with their innovations in farm equipment. This lead to a reduction in the number of people who needed to work a farm which lead to more availability of people for industry. Industry was enabled by innovations in power from water to steam to electricity and the fractional horse power engine. Trains, cars, truck and airplanes changed the way transportation works. The printing press, which Rushkoff talks about a lot in his book, enabled more books to be created and read. The press was controlled for a long time though. Today everyone can publish via the Internet and that feels empowering. And it is empowering. But the way we publish is still largely controlled.

There are a few major blog engines and services. There are a few major social networks. The people who control those tools control to a large extent how we communicate. In short the gate, the determining factor of how we communicate is in the hands of the people who write the software. Every time Facebook changes something in the way it works people complain. With an audience as large as they have that is inevitable and unavoidable. But people remain because they lack the ability to do it (create their own Facebook) themselves. Sure perhaps something else may come along, Google+ is the new shinny object in social media, and maybe it will be better or just different enough. Trends come and go with amazing speed on the Internet. But these changes will come from programmers. Programming is power.

One of the things I hear from fans of Open Source software is “if you don’t like something you can fix it yourself!!” To which I reply, “Can you? Do you have the programming knowledge to make the change yourself?” Most people reply “ah, well no but I could pay some one to do it.” And that is the point. Having access to source code is valueless unless one has the knowledge and skill to manipulate it. At the same time if you do have that knowledge and skill you have the power to create it from scratch as well. If you think there is a better way and can program you have the power to do it better. If you don’t have the ability to program you are dependent on others.

I understand Rushkoff’s argument that by not creating programming our minds are susceptible to being changed/manipulated by people who do create programming (be it computers, TV or any other programming) and it makes some sense. But for me programming is about having the freedom to do it my way. A similar idea perhaps but a slightly different angle. Most applications train us to work the way they are set up (Rushkoff talks about that but I saw that first hand as a programmer in the 1970s). Programmers, because they create the program and the user interface as the ones who determine how work is done. If we have a way we think it should be done it is up to use to control the programming not the other way around. Whether we write the code ourselves, manage the development of code, or even have a say in what code is purchased a knowledge of programming is important and probably necessary.

So ask yourself this – are computers going to be an important part of your life in the future? Do you want to control your own destiny? If you answered both of those questions “yes” it’s probably pretty important to learn to program.