Web Code (NaNoWriMo 2016)

Chapter 2. Blood, sweat, and swear

I’m sorry I didn’t use enough cuss words, but… coding these web apps themselves involves a lot of swearing—a lot of blood, sweat and swear.
— Me, on Pro PHP Podcast

Having had our first taste of operations, we will now move to that which located “at the other end of the (coding) galaxy”: programming. Like Asimov’s Second Foundation, it is not there because something so crass as physical location or dominance of ability, but rather because of the temperament needed to reach mastery as a programmer is the polar opposite of what makes someone a good operations engineer. To return to a photography analogy: a sysadmin might appreciate the beautiful symmetry of reliable stability, a programmer codes a less balanced composition.

There is a mistaken belief that those who practice math, science, or programming should be as cold and calculating as the theorems, theories, and software that is their output. But all forms of discovery, whether in the natural world or the artificial one, require imagination, creativity, and insight—and such insight breeds passion.

Learning to program demands this same sort of passion. Things will fail, and when they fail in your programs, you will certainly think, “This cannot be?! Something must be wrong with my computer, whoever made my computer, or whomever designed this stupid programming language!” But when you finally, after many hours, figure the bug out, it may be something so simple as forgetting to put an & or ;, or using = when you meant to use ==. Hours of raging against the machine and toil will eventually rewarded with the rapid realization that the only one responsible for your predicament is you! Yes, it is hard to code programs without resorting to a lot of blood, sweat, and…

My mom was a computational biophysicist. She would make models and run simulations15 explaining the origins of heart arrhythmia which she suffered from because of a simple misdiagnosis of strep throat as a child. The electrical circuit of the heart inspired her life work and would be the very cause of her death years later.

When I was born, she’d create these models by typing out programs into boxes full of punch cards16 that she would submit to an IBM engineer as batch jobs to be run on a mainframe — a single typo or logic error could set her back days. When I was an infant, and technology improved, the punch cards were replaced with a line printer, the submission happening to a minicomputer17 time-share18 over a phone line receiving and sending information blazing fast at nearly 40 characters (3 punch cards worth!) a second. By the time I entered kindergarten, the ink of the line printer had given way glowing phosphors of a CRT terminal.

Much of my childhood was spent playing with toy soldiers and matchbox cars in the living room or kitchen, while my mom sat nearby staring at those early computer interfaces as she puzzled over some error in her code. Every so often while deep in such reveries, spontaneously, she would let out an exclamation.

One day, I asked her about it. “Mommy, why do you yell out ‘British’ at the computer?”

My mom was shocked and surprised. She did not realize that her youngest son had noticed the exclamations she made in the throes of debugging. (At five years of age, I had not yet learned the word ‘bullshit’.)

She would replace that word by literally yelling out “British!” instead to keep her son from learning a profanity.

It didn’t work as I too eventually learned to code programs and, at times, caught up in the passion of my work and the frustrations of my own stupidity laid bare by an unfeeling computer, have been known to utter far, far worse than “British”.

To program well, you will need to put in blood and sweat, for errors in your code are almost universally self-inflicted, and they only become obvious in hindsight. And yes, if in the midst of that toil, you might let out a exclamation or two.

Forgive yourself and allow for that, for that passion is needed to sustain you, to persevere until your code resembles something workable.

And if you have a problem with such cussing, consider substituting the word, “British”.

Exercise: First plugin