On Programming

“Software is eating the world.” So says programmer-turned-venture-capitalist Marc Andressen, who wrote Mosaic, one of the original Web browsers, and founded Netscape, one of the original Internet software companies. You can Google that phrase to read his original op-ed in The Wall Street Journal, in which he details his belief that “we are in the middle of a dramatic and broad technological and economic shift in which software companies are poised to take over large swathes of the economy.”
 
 
And it’s true. It seems that things that don’t have some kind of software embedded in them are now far outnumbered by things that do. My couch, my well pump and my grandfather clock don’t have software in them, but my refrigerator, microwave oven, automobile, television, remote control, telephone, irrigation system, propane tank and thermostat are all running programs that make them do what they do. More than likely, your business wouldn’t run without the software you use to keep books, schedule appointments and run your cash register. New companies launch every day to bring software to businesses and processes that previously lacked it (sometimes whether they need it or not). And companies—both new and existing—need programmers to create and maintain all that software.
 
 
Software, of course, is just a program: instructions that tell a computer what to do. And programming is the task of creating those instructions for a specific task. Do you remember that line from the movie “Bull Durham”?
 
 
“This is a very simple game. You throw the ball, you catch the ball, you hit the ball. Sometimes you win, sometimes you lose, sometimes it rains.”
 
 
On the face of it, programming is a very simple game as well. Mathematicians have proven that you need only a handful of instructions to write any computer program that can be written (the so-called Church-Turing thesis, if you’re really interested). You need an instruction that stores a value in memory. You need an instruction that can read back a stored value from memory. You need instructions to add or subtract the value you just read from another value in memory. And you need to be able to change which instruction is executed next, based on the results of that addition or subtraction (greater, equal to or less than zero). That’s it. For example, the PDP-8 (a popular small computer back in the late 1960s and early 1970s) had only eight instructions. Of course, programming at such a low level is tedious, time consuming and error prone (just like trying to build a house with only a pencil, a hammer and a hand saw). So people expanded the set of instructions built into the computer itself. They developed libraries of instructions to perform common tasks. And finally, they wrote programs to help them write programs.
 
 
I learned how to program in college during the mid-1970s, which means I’ve been programming for nearly 40 years. It’s pretty much second nature to me now, much like reading, writing and arithmetic. And that serves me well: If I need a bit of software to make my life easier, I can just write it. But fixing existing programs is harder. I’m unable to fix the things that irritate my wife when she uses Microsoft Word or Intuit’s Quicken. Although the instructions are there for the computer to execute (in “binary” format), they aren’t in a form (“source code”) that would let me make changes. And some programs (like the one in my microwave) aren’t fixable because they’re burned into silicon chips.
 
 
When I was in high school, though, you couldn’t take a programming class. The closest I got was using a time-shared computer in Mr. Quartucci’s chemistry class. Back then, cars were relatively simple mechanical devices without software. Kids took auto shop to develop a skill that would serve them in good stead, both in terms of being able to maintain and repair their own cars, but also because the skill set of working with tools was transferable to America’s manufacturing-based economy. So given Mr. Andressen’s thesis, it’s natural to ask whether we should now be teaching programming in high school (or even elementary school).
 
 
Code.org believes, “Every student in every school should have the opportunity to learn to code,” and its home page features a six-minute video that attempts to make programming look cool (perhaps successfully—see for yourself). Giving everyone the opportunity is something I agree with wholeheartedly. Software is, after all, eating the world, and creating software is still a tremendous opportunity if you’re good at it. Alas, just like other STEM (science, technology, engineering and mathematics) jobs that are in demand, not everyone has strong enough skills to land them. Still, by exposing more students to programming, we have a chance of identifying more of them who have true programming talent. And even if students don’t develop a passion or interest in programming, they’ll have a better understanding of the stuff that, more and more, makes things work.
 
 
If you’re involved with your child’s education, I strongly encourage you to visit the Code.org site and click on the “Teach” option—it offers ways to help get a coding program started in your local school. If you’re a programmer looking to give back, there are also opportunities to help out by visiting schools to talk about and teach what you do. And if you simply believe in the cause, there’s always the opportunity to donate cash.
 
 
The important thing—for anyone—about programming is that it’s another way to actually make things. If you can write simple programs, you can program devices like the Arduino, which lets you control real-world devices. If you can program, you can create websites that do things (as opposed to just display text and pictures). If you see a video game, website, a Burning Man art car or whatever and say to yourself, “I wish I could make something like that,” it may be time to spend a few hours, weeks or the rest of a lifetime learning how to make that happen through programming.

Author

  • Michael E. Duffy

    Michael E. Duffy is a 70-year-old senior software engineer for Electronic Arts. He lives in Sonoma County and has been writing about technology and business for NorthBay biz since 2001.

    View all posts

Related Posts

Leave a Reply

Loading...

Sections