Nouns and Verbs, Arrays and Strings

How does an ancient historian decide to start learning to code?

The short answer: it’s all about language.

For me, it all started to click this past summer, while I was back in Colorado visiting family. I’d finished a one-year postdoc, and begun to think about what to do next with my life. For the past year, I had been growing less interested in pursuing academic research, and I was ready to move on to a new chapter. I’d been thinking that I needed to learn some programming basics as part of my budding interest in GIS, but I had not seriously thought of programming as a career path. To me, it was a tool that I needed to learn if I wanted to be, say, a GIS Analyst for a local municipal government.

One evening in Colorado, I had dinner with my parents and some of their friends. The day after, one of my parents’ friends (who has regrettably passed away recently) called to tell me that he thought I might want to try to pursue a career in coding, given my interests in technology and language, combined with the problem-solving skills I built earning my Ph.D.

Normally, I politely nod and turn away career suggestions from family and friends of family (“Oh, my nephew Johnny is the director of a museum. Why don’t you apply to be a museum director?”), but the more I thought about coding, the more it made sense to me. The truth is, I have always found language to be the best part of studying ancient history. I have a knack for learning languages and understanding their structure. It’s not that I learn instantly: drilling new grammar and vocabulary has always been a challenge for me. But it’s a challenge that, somehow, makes sense. When learning ancient languages like Latin and Greek (or, indeed, modern languages like French and German), there’s a structure to the language, demonstrated by rules that determine what certain words can do, how they can change, and how they combine. To be sure, language is fluid, and there are exceptions to just about every grammatical construction in any language you find. But there’s also a method to the madness. Languages exist for the purpose of communicating information and achieving functions, and the rules, even if they are flexible, help to provide a framework for communication.

This is a part of coding that has clicked for me. When I see an expression in JavaScript, I can understand that there are rules that govern what the expression does, and what sorts of data it can include. This doesn’t mean that I know all of those rules, but I can see that there is a structure that allows people to communicate in particular ways to a computer, so that the computer will in turn perform certain tasks. Just as Latin uses different endings to connote different values, JavaScript uses different kinds of variables, objects, and arrays to connote different values (and values within values).

Deciphering texts in ancient languages is, in many ways, solving a logical puzzle. To seems to me that writing clear code that people can follow and that machines can interpret is also a logical puzzle. I look forward to finding more ways to solve these sorts of puzzles!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s