stevengharms.com

Sententiae viri ex temporibus duobus

Study Latin to Become a Better Programmer

This is a post I had sitting in my drafts folder, uhm, for about 2 years. I’m fishing it out now because I’m a completionist masochist.

A friend forwarded on to me this post entitled: “Don’t study latin if you want to become a better programmer” by Daniel Lemire, professor of Computer Science at the University of Quebec. His piece questions the wisdom of teaching Latin as a means of creating a better programmer. As a lover of the Classical world, Latin student, programmer, and teacher of programming, I found myself disagreeing with his conclusion: in my programming practice I definitely recognized competencies learned while studying Latin resurfacing again and again. I believe Lemire is missing some nuance to his description of learning and I think that they might explain how we come to different conclusions. Let me start with a usage where I agree with Lemire.

I Program, Should I Learn Latin to Get Better?

Let’s start with the obvious case. If you are, say, learning Python and then one fine day you think: “My goodness, I’d like to be better at this” and your solution is “I’m going to go buy a copy of Wheelock’s Latin and get to it,” you’re probably choosing a sub-optimal strategy. Your time would be better spent at one of the following

  1. Writing Python
  2. Reading Python
  3. Finding a Python mentor / meet-up, etc.

While I agree that there are individuals who, upon learning Latin with some background in programming probably found some way to have it drive their programming acumen forward — say, by writing a RubyGem ;) — this is probably a vanishingly small amount and not something I’d recommend as a general rule.

So let me concede the obvious use of this utterance and agree that you should not do task Y to become better at task X. However, I don’t think this is what the author’s post was intending to analyze. My interpretation of his post is that since he “believe[s] that knowledge is only weakly transferable, …[he favours] practical skills that are immediately useful.” And here’s where I think his model loses some of its nuanced understanding of learning and thus becomes less compelling.

Does Latin Study Contribute to Learning Programming More Easily?

I believe that there are transferable skills that come from broad-based learning and that they are worth the time and the effort of acquiring.

Specifically broad-based topics that train, enhance or instill facility with metacognitive competencies do transfer well to other studies. I would contend that learning Latin tends to force its students to acquire a series of metacognitive competencies that would prove highly useful in learning to program (a raw skill) and learning to be a programmer (a set of behaviors).

Is it guaranteed that other “practical, immediately useful” skills such as Karate or swimming would fail to offer these learnings — certainly not! And I should hope that learners of all ages and all disciplines experience the joy of finding these metacognitive competencies in new nooks and crannies as they learn more about their world. For me, that’s quite possibly the best part of learning and, as I approach mid-age, one of the great advantages I have in learning material over a 16 year old: I know that I have a battle-tested series of competencies that allow me to ascertain, interpret, and integrate learning in a way such that new facts feel natural versus foreign objects that must be toted about.

Nevertheless, I believe that the pedagogy of Latin has something special to it: something instructs both moral character (the noble sentiments of the ancients) as well as intellectual character, its metacognitive competencies. There’s a reason, after all, that the archetypal “teacher molds the mind of a future generation and is never forgotten” movie is Mr. Chips and Latin, long before Keating taught poetry in “Dead Poets Society” or Escalante taught calculus in Los Angeles in “Stand and Deliver.”

Let me try to list a few of these competencies.

How to practice

Teaching and working with individuals who have grown up in the era of ADD medication ubiquity and the smartphone I’ve come to see that many students haven’t learned how to practice. Here’s a hint: practice is not done with a TV on, nor with a smartphone at hand. The ritual of practice is a tough one to learn in our harried, multi-tasked lives, but I don’t know where one would learn it but for in a dojo or while learning things like Latin, piano lessons, or Chinese school.

When facing a Latin translation assignment, I can assure you your iPhone offers you no help with translation. Each ping, pop, notification, wiggle, electroshock, flashing flash serves to break your attention and makes sure that, after your procrastinating flight of fancy, the same intractable, incomprehensible problem is still there staring at you, unmoved.

I didn’t learn Latin as a young man (rather in my 30’s) so I learned this particular lesson while learning piano I recall a particularly painful night when I went to played terribly. My teacher (rightly) concluded that I didn’t know how to practice. She sat and verified my mechanics and that I could read music and could count time but bore to me the sentiment that hitting the notes was not the goal, playing the piece was.

Mind. Blown.

That failure, and I’m thankful to be of that last generation of children where parents let their children fail and realized it was part of their improvement, taught me that some things are questions of practice and that the art of practice can be improved when done consciously.

I learned it at piano lessons and ignored its wisdom for my lackluster high school career, but in my freshman year of college, somewhere, a neuron met another and it lit up: “I should practice everything consciously: guitar, calculus, my own life!” and my grades and manner of living were improved thereafter.

Imagining the Answer

Oftentimes in programming you get stuck and you encounter that great problem of epistemology: if you don’t know what the answer is, how will you know it when you find it? In ancient times up to the late 20th century humans engaged in an imaginary exercise. I’m looking for something that could turn motion like this, into a motion like that. They would look for examples: a mill-wheel in a lake, a thread spool, a screw or analogies until they could compose (another metacognitive competency: composition of smaller pieces) them together to create something new (e.g. “rack an pinion to turn rotational motion to linear motion”).

However in our world with its ubiquitous internet access and well-trained search engines, we’ve gotten used to asking in natural language for what is sought and thus the answer requires little imagination on our part.

Yet this is exactly the mode programmers consistently find themselves in. “If I had a thing that knew how to take object oriented syntax and convert it to SQL life would be better. How could I make that thing?” Violà: The ORM concept.

Yet, when studying Latin, students are trained to hypothesize from the presence of the noun or verb what the other must be like. This skill is required because Latin has an extremely flexible word order so it’s not, and rarely in verse, the case that the main verb and the main noun i.e. the subject and predicate are close to each other or have some sort of similar shape.

When “poetae could mean: the poets, of the poet, or to the poet, we have to imagine what the eligible verbs might look like or whether what we found as the main subject is actually the main subject after all!

Asking for Help Constructively

Anyone whose ever gone to a tutor (or been one) or been asked by a struggling practitioner for help knows that the statement “I don’t get it” inspires a certain meager amount of pity but a far greater measure of irritation. “I don’t get it” is laying down in the face of battle. It’s laziness, it’s not having the self-awareness enough to say “My process is failing me and I’m not making traction. Here are my steps…”

Asking for help on a symptomatic difficulty is so different than asking to be coached through an improvement in process. The latter will (eventually) yield success over and over again, the other will for one particular question.

I was blessed by a great logic TA (Tracey Lupher, logician, computer scientist, thank you) who helped me get my bearing in Symbolic Logic in the early third of the course.

I had learned to “practice” and was giving Logic my utmost effort. Nevertheless proving the conclusions sometimes evaded me despite having memorized the transformations and rules.

After realizing that I did have a practice (which he didn’t explicitly praise, but which I realize he “tested for”), he asked with great patience (another metacognitive competency) the same meta-tactical questions that a programmer would ask: “Can you work backward from the goal to get closer to what you have? What data do you have on this line? Can you transform these data to the data you need with the transformations you know? Can you imagine what expression you wish you had that would allow you to get there (see above).”

Tracey’s, now Dr. Lupher’s, guidance ultimately set up some approaches that, when combined with my practice, got me an A in that class that I’m intensely proud of to this day.

Similarly my process for untangling tough Latin sentences was nurtured by James Burleson of Austin Community College and teachers at The University of Texas. Eventually those skills converged to a process that, when applied, sets me on the path towards an enlightenment moment (although not as quickly as I might like! I’ll not be idly leafing though Seneca on the 2 train any time soon).

Flexibility in Mental Model

As I mentioned, I didn’t study Latin in high school. I studied the “practical skill” (per Lemire) of Spanish. I don’t regret it. But I remember once I asked my friend Mike “What’s the Latin word for ‘I?’”

He said something like “Well, it’s not really there very much.” I thought his answer was bullshit. What? Every language has ‘I’? But now I know that’s not true, in inflecting languages a marker is affixed so as to identify both the person and the number and holy crap the mood, the gender, too! If only I had known that Latin would let you merge the verb and pronoun together, break them apart, and, if you were feeling expressive, shove a dozen words in-between them! I really had to let go of several assumptions I held about how language worked when I learned Latin!

I consider flexibility here be a skill on the par of being able to process different computation models.

  • WHAT?! There’s no shared mutable state? (Haskell)
  • WHAT?! the scope of the variable can be enclosed and re-accessed somewhere else (JavaScript or other functional languages)
  • “WHAT?! You can make a program think like logic from data and functions? (Prolog).

I believe learning that flexibility of utterance is huge and helps create an intellectual nimbleness that sets one up for success.

Humility and Figuring it Out

The last virtue was taught to me at my last start-up programming job. My engineering director was a PhD in mathematics and had studied at Important Schools. But I never met someone more willing to say “I don’t know.” He would say it at the drop of a hat. He could have prevaricated or trusted his credentials or expertise to deflect an ego-challenging query, but he didn’t. He’d just bust out: “I don’t know.”

If he could say it, I could say it.

But almost a nanosecond later he would start running his process (his practice) on the question and quickly come to the point where his ignorance lay. “Oh, I need to learn about Galois Fields or the Erlang engine.” He would then apply his “Flexible Mental Model” in focused “Practice” with a lot of patience and “figure it out.” He would then claim for himself the laurels of intellectual agon and feel happy, realized, fulfilled in himself and then move on. Everyone deserves that joy, often.

Conclusion

Faith in the study of Latin to teach these metacognitive virtues is why Harvard, in its beginning, taught only divinity and Latin. I suppose the thinking went that if you could figure those out, you could figure the rest out with your sense of practice and finding help (i.e. clerkship or apprenticeship).

We see very clearly the model of how this works in “The Adams Chronicles” (1976) miniseries. After Harvard, John Adams seeks a clerkship. The assumed bar: dedication, patience, respect, and those virtues that learning Latin teaches, a vital part of the A.B. degree. Owing to this background, and his tender treatment of books, Adams is taken on at a law firm and begins a first momentous step toward changing the Western world.

So, while yes, Latin will not make you a better programmer, Latin will teach you the metacognitive skills that you will need to be a great programmer. It’s not the only source, for learning the competencies, but it’s a good source.

Let me acknowledge that there is a saturation point. To the author’s final point an extra class in mathematics is not going to have much marginal benefit is correct because the learner would have already had to have the metacognitive virtues in place to get to an advanced mathematics course. In my study of foreign languages, the first taught me a weak practice and some facility (High school Spanish); the second taught me strong practice and more facility (College Dutch); the third taught me facility in the language (a sadly-withered College French); the fourth facility in a very complicated new language (Latin). I’m not getting much more metacognitive juice out of foreign language study anymore (or so it seems, presently, although perhaps Sanskrit or Ancient Greek might reveal new things!).

I believe the prudent parent will realize studies that teach the metacognitive virtues ought be sought and I, for one, will advocate Latin as being a fine means to learning them.I believe Latin, Chinese, Greek study at an early age would be formative to building the metacognitive competencies and thus would “make one a better programmer.” I’ll note that in other posts Lemire asks why students' study skills tend to be so poor while simultaneously praising the removal of Latin from curricula. My post, here, leads me to ask: perhaps they are not without correlation.

Coda

If my argument has convinced you then you might ask well, given Karate, piano, Latin, or swimming, if I had to choose one, why wouldn’t I teach one that’s practical. For me this argument lays a sad focus on the quotidian.

When I’ve read Latin and struggled I thought: Adams, Washington, Henry II, King Louis, Babbage, Newton all struggled with this. And when I “get it” I am delighted. I’ve read Newton in his spare, beautiful Latin. I’ve read Ovid’s brilliant poetry in the Metamorphoses..so much joy, so much beauty, so much wisdom has been mine, handed directly to me across millennia because I built my virtues on Latin and these virtues help me even today, even in the field of programming.

The moral instruction of the ancients proves calming to me in times of challenge and personal anxiety. Seeing that my worries and challenges are nihil novum sub sole (nothing new under the sun) has often provided me great comfort and peace. And should I approach my own life’s end some day with the peace and pride that Ovid did at the end of his Metamorphoses, knowing that something of the best of him would be born upward on wings and would survive outside of time, forever, then I will know my life has not been wasted.

And sometimes, you bring the technology back to Latin too. ;)

Comments