Wednesday, April 22, 2009

Learning to Speak in Code


“I hope somehow to be able to speak what Manan Ahmed calls "future-ese," to be able to learn (some of) the language of the programmer over the course of this year so that I can begin to "re-imagine", as Ahmed has exhorted, the old in new ways. I’m excited, if duly daunted, by the prospects.” ~ Quoted from my first blog post, 10 September 2008.

* * * * *
If I ever meet Manan Ahmed, whose Polyglot Manifestos I and II were two of the very first assigned readings for our Digital History class, I would let him know that, like any effective manifesto, his inspired me to take a certain course of action this year – to sign up for the role of Programmer for the digital exhibit that the class would be preparing on the work of Dr. William Harvey.

Incidentally, if I ever did meet Manan Ahmed, I would also casually let him know that I hold him entirely responsible for the sleepless nights I had, agonizing over the code for the program I was attempting to write for an interactive exhibit on Harvey.

I might add here that I knew as much about programming as I did about APIs and mashups prior to this year, which is to say, nada.

(Accusatory) jesting aside, I’ve been reflecting on what it has been like to learn programming from scratch over the course of this school year. I was inspired, as mentioned, by Ahmed’s call for the historian to be more than simply a scholar submerged in past-ese without regard for how their studies might be made relevant to a modern audience (i.e. in present-ese) or how it might be re-imagined in the age of mass-digitization (i.e. in future-ese). How compelling was his call for historians to be “socially-engaged scholar[s],” how apt his challenge for us to become polyglots - master “togglers,” if you will, between past-ese, present-ese, and future-ese – apt especially to those of us with public history ambitions, who had entered the program interested in communicating the past to a general audience in new (i.e. digital) ways. [1]

“All that is required,” Ahmed wrote simply (alas, too simply), as a directive for historians willing to venture into the programmer’s world, “is to expand our reading a bit.” [2]

After my eight-month foray into programming, the words “all” and “a bit” in Ahmed’s above statement strike me as just a tad bit understated. I agree that reading was certainly a major part of my process to learn how to program this year: I pored over, highlighted, marked up, and even wrote conversational notes to the authors of my text (such as the occasional “not clear!”). But I think Ahmed might have also mentioned that not only reading but practicing, experimenting, fumbling, failing, and, yes, even agonizing, are all part of the process of learning how to speak some of the programmer’s language.

Like immersion into any new language, programming has its own set of daunting rules to absorb; break any one of them and you won’t be understood – at all. The program simply won’t run. (I don’t know how many error messages I gnashed my teeth at.) As well, like any language, there is always more than one way to say the same thing - and some of them are more “logical,” “eloquent,” or just plain clearer than others; concision and verbosity, I’ve learned, apply equally in the programmer’s world as they do in the writer’s. (I’ve also observed that my tendency to be wordy applies equally too in the world of code. In fact, I was delighted to learn about the concept of iteration, where lines of repetitive code could be magically – well, okay, mathematically – reduced to a few simple lines, using variables and a certain formula. If only paring down written text were so easy!)

Needless to say, I found the immersion into the programmer’s language very challenging. It was challenging (and, I will admit, even harrowing at times) because not only was I trying to accumulate basic knowledge of the new language, I was also brainstorming ideas for an interactive exhibit on Harvey at the same time. In some ways, it felt like I was trying to devise a Shakespearean sonnet in Chinese or with the vocabulary of a second grader (which is pretty much the extent of my vocabulary in Chinese). All I could envision was something rudimentary at best.

It was challenging to design an exhibit as I was learning the new language simply because I did not know if the ideas that I or others had were actually possible, or, more precisely, would be actually possible for me to learn how to do within the time limit. (I also discovered a humorous difference between the kinds of ideas thrown out by those in Programming versus those in non-Programming roles; the “anything is possible” optimism that technology seems to inspire was not so readily exhibited by those of us who had confronted, and would still have to confront, the befuddling intricacies of code.)

Despite all the challenges, uncertainties, and yes, even secret fears that the particular interactive exhibit I was working on might not come to fruition, things worked out. We hosted our Digital Exhibit on Harvey in early April; all programs functioned; no computers crashed (thank goodness). Looking back to September and my reasons for deciding to learn how to program, I think I am glad, after all, that Ahmed had made it sound so simple. With just a bit of reading, he had written coaxingly, the socially-conscious scholar will be well on his or her way to programming, to filling that gap between the public and the past, and between computer scientists and the future of history. If he had spelled out all the emotions one was apt to go through when learning how to program, I’d probably not have taken it on and thus have missed out on learning to speak a new language, on learning to speak in code.

____________________________

[1] Manan Ahmed, "The Polyglot Manifesto I," Chapati Mystery, http://www.chapatimystery.com/archives/univercity/the_polyglot_manifesto_i.html.

[2] Manan Ahmed, "The Polyglot Manifesto II," Chapati Mystery, http://www.chapatimystery.com/archives/univercity/the_polyglot_manifesto_ii.html.

1 comment:

Manan Ahmed said...

If you ever meet Manan Ahmed he will buy you a drink. Power on!