I had an epiphany the other day while looking at line 6257 of a 15,983-line UNIX shell script. That line was either author-encrypted (only decipherable by the programmer who wrote it) or the result of a cat walking on someone’s keyboard. Or maybe, just maybe, my programming skills were not up to the task.
Although the chances that a 15,983-line shell script would challenge my programming expertise were less than the odds of collecting on that "unclaimed inheritance" email from the exchequer of IBS (International Bank of Spam), I supposed I could stand a little technical touch-up. After all, my formal training started decades ago on a Burroughs/Univac/Honeywell Abacus System 490 (or maybe it was the BUH AS 491) and renewed technical enlightenment in the halls of higher learning would no doubt expand my knowledge base.
The Good Old Days
My introduction to programming back then began with the Fortran language. I couldn't remember the exact name of my textbook, so I searched Amazon.com for a clue. It came back with FORTRAN IV with WATFOR and WATFIV and an image of a book with an olive green cover bedecked with six punch cards. A used copy of the book was selling for—and I’m not making this up—$.01. Yup, a single penny.
It’s easier to forget Fortran than punch cards and keypunch machines. Cards were the input media for programs. You entered program statements at a keypunch, for example, by typing P R I N T. The keypunch would transcribe your keystrokes into holes punched on a card with a resounding tat tat tat tat tat. A single line of code fit on one card that wasn’t much thinner than a slim-profile smartphone.
The cards went into a card reader and—if they didn’t jam—the data was read by the computer. Your program and its output came out on a high-speed line printer in a louder, faster hammering of tat-tat-tats. (If you yearn nostalgically for the sounds of keypunches and line printers, there’s a good simulation—including audio effects—by Google60.)
Ah yes, the good old days. Or at least they were good for the manufacturers of cards as I burned through a pallet or two of data center card stock keying P R N T and P R I N T T and countless other permutations before correctly typing P R I N T cards.
Back to School
Those memories of my first programming experiences came to mind while I perused the course catalog of my alma mater, the University of Pittsburgh, for a refresher course. Looking over the computer science courses, I considered what one industry guru said in Today’s Engineer: "Software engineering is the nuts and bolts for the entire future. You need software for everything these days. It's deeper than deep. I think it's going to become the new English."
Perhaps I could find the converse — a course where English was the new software. Say the English, out comes the software.
The Pitt catalog did not have a listing for “Introduction to Computer Programming with English,” so I settled for “Introduction to Computer Programming with Python,” the recommended introduction for computer science majors.
I told my boss that I made arrangements to attend “Introduction to Computer Programming with Python” and that I may even get to pet a Python. He gave me a deadpan glare that spelled “Your sense of humor is pathetic.” (I know how to read my boss!) He added, using vocal chords this time, “Whatever.”
He probably knew (correction: he absolutely knew, after all he’s the boss) that the creator of the Python programming language named it, not after the snake, but after the British television comedy series Monty Python’s Flying Circus because he wanted it to be fun to use. I discovered this historic footnote later. I also learned that Python users are called Pythoneers, which led me to wonder if Ruby users are root-beers, mouse users are mouseketeers, and Basic users are basteers?
The Python Software Foundation chooses to mix its pythons, noting the genesis of the name from Monty while selecting the reptile for its official icon. Maybe the foundation’s art department observed that a rendering of Monty Python’s Flying Circus in the space the size of an icon looked more like an electron microscope view of this season’s flu virus than a troupe of comedians.
Eager to learn the first programming language in my career that is fun to use—I swaggered into the spring 2013 class of Computer Science 8 at the University of Pittsburgh. I joined about 50 other aspiring Pythoneers. Senior Lecturer George Novacky, a 36-year veteran of teaching programming, introduced himself at the podium. He began by dispensing with administrative items including grading, attendance (“The more you skip, the more you slip”), recitations (labs) taught by three teaching assistants, web location for the class syllabus and instructions for downloading Python.
Then he addressed the class with his first question: “How many of you have programming experience?”
About half of the class raised their hands. Novacky later cited this experience as a key difference between today’s students and students of the Fortran era. Students entering college now have often taken programming in high school, and they have an innate ability to work with new technology having honed their skills on smartphones, tablet computers and laptops.