Learn to Code 1: Does Everybody Really Need to Program?
Learn to Code 2: The Many Reasons We Must Program (and the Few Why Not)
It’s easy to forget, if I don’t remind myself, how happy my professional life is. I spend my working days reading interesting books, having conversations about those books with intelligent people, and teaching those intelligent people how to have more intelligent conversations (with better books). In recent semesters, among the other fun things Emmanuel College has invited me to do (for pay!), I’ve been teaching rhetorical theory, theology, and Old English. So of course I’ve been thinking lately about computer programming.
The connections might not seem obvious to those who think in chronological terms first. After all, Christian theology has been around for a couple thousand years, and rhetorical theory goes back farther than that. Of the trio, Old English is the youngster by a few centuries, and even it passed out of common use almost a millennium before people programmed computers for a living. But thinking pedagogically sometimes means drawing lines across historical moments, and this is one of those moments when just such thinking sheds light on things.
Liberal Arts, Education for Republic
The telos of a liberal arts education, like the content of a liberal arts education, is always up for grabs. In some historical moments education happens for the sake of governing an empire (like Daniel’s schooling in Babylon) and in other moments for the sake of individuals’ economic and social advancement (like Sophistic education in Athens). Sometimes it’s for the sake of the Church, sometimes for the State. There are moments when educators fool themselves into thinking that our guilds’ existence need no justification, and other times, we remember that education, by definition, always must be for the sake of something beyond itself.
I’ve been thinking lately about the ends for which education might exist in 2013, for Christians, and I’m inclined (predictably) to pull on an imaage that Augustine sets forth in The City of God book 19. Rome, Augustine argues, is a mockery of the true republic, the public thing that is the Church. A real republic, in Augustine’s argument, must have as its aim genuine goods, teloi towards which the life of the city aim, and Rome, because its gods are false ones, ultimately never could be a true republic, even by Cicero’s standards.
The image got me thinking because, as a professor in a Christian college, I’m serving my students as persons, to be sure, but I’m also at the service of the communities beyond my students’ individual persons, an educator of thinkers who serve, in turn, local gatherings of producers and consumers, of citizens and subjects, of the faithful and of the sent. (That many of those who graduate from Emmanuel join the ranks of the “spiritual but not religious” certainly stands as a concern, but I’m inclined to think that service can happen without batting a thousand.) And that service has its place in hierarchies of goods, and part of my job is to try to convince my students that some questions are better than others in ordering those hierarchies of goods. I’m always going to try to convince my students that the city-of-cities, the Church, is ultimately that community which defines the proper limits of nations and companies and other communities, but I’d also be a great fool to deny that Jeremiah 29, among other texts in our tradition, make me think that seeking the shalom of the city can and should overlap with faithful service to YHWH and YHWH’s people. So I’m always educating those who will serve not a community but a complex network of overlapping communities.
That’s the big picture.
Where Coding Comes In
The smaller picture, though, is that in the service of those communities, a liberal education should, while investigating what sorts of service are worth performing, should also give students intellectual tools for performing specifically intellectual service. Over the centuries, educators Christian, Islamic, and classical-Athenian have gravitated towards rhetoric and mathematics (conceived broadly, in the sense that a person of great learning is a “polymath”) as the means to the end of shaping servants. The rhetorical end I could write a book about, and in fact I’m in the process of doing just that. The shaping of human reality by means of utterance is at the core of what we do, and Plato’s conception of rhetoric as the leading-of-souls is some really good stuff.
But I’m also a teacher of mathematical (in the sense of “bodies of knowledge”) material as well. That’s where Old English comes in. When a student has learned Old English, or Latin or other language whose roots provide the grounding for our modern discourse, she or he has the ability to see where and how we articulate things rhetorically in ways that, before learning those language, were not available. Seeing that English does not have a future tense, in the ways that Greek and Latin and Spanish have future tenses, helps us to see the range of helping-verb constructions that we use to communicate futurity, and that in turn helps us both to see how other people communicate futurity and to do so ourselves in ways that lead the people around us to see reality truly. The same goes for the loss of a true infinitive in modern English (try to state a verb’s infinitive without a helping word if you want to see what I mean), the idiosyncrasies of medieval and modern prepositional constructions, and other grammatical realities that become opaque (a student looks at them rather than through them, to borrow Richard Lanham’s phrases) with rigorous study.
And that’s what got me thinking of programming: as Doug Rushkoff notes in his dynamite book Program or Be Programmed, a familiarity with basics of web-programming like tagged text, search-and-sort algorithms, and database construction, while they might not lead to a paycheck for writing computer code, nonetheless do for a citizen or an employee something analogous to what an education in historical linguistics does for them, namely to help them see articulations of reality where those not-yet-educated see only smooth and undivided reality.
It’s not like I have to have reasons to come in to work and translate Old English poetry (or talk about web design) with bright students every day. I’d do it just for the enjoyment. But since I do try to conceive of my own service/ministry/mission in terms larger than what makes me smile, I figured I’d make this attempt.
What think ye: are these good reasons to teach Old English, rhetoric, computer programming, and other such liberal arts?
Interesting post! I’m a programmer-turned-classicist, so I should have something to say here. It makes complete sense to me that computer programming can function as a sort of “Aristotle’s Logic” for the 21st century. Ideally you would have both, but a computer is a logic machine (way down to the level of ones and zeroes, i.e. ‘trues’ and ‘falses’, and logic gates). Programming teaches you to divide reality into discrete chunks, to break down larger problems into smaller ones. Programming has all sorts of useful applications, but even at the rather abstract level of thought patterns, I can see its benefits. The biggest challenge with learning to program is not the specifics of any particular language; rather, it’s generally the difficulty of thinking with rigorous logic. As a philologist (or, philologist to be), I can see the analogue with language. Certainly learning your first foreign language is a bit like learning your first programming language. The biggest problem in the former is coming to terms with the fact that there are other ways of formulating reality that are not a 1-1 map with English! Beyond that, familiarity with how a computer works takes a procedure and turns it from magic into something intelligible. Knowledge of other languages does something similar with vocabulary and other linguistic phenomena.
And now, I must be a pedant. τέλος (telos) is one of those sneaky words that looks like a 2nd declension masculine noun, but is actually a 3rd declension neuter. The plural form (at least in Attic), is thus τέλη (telé). Tele looks a bit funny in English though, so good luck Anglicizing it! The uncontracted Homeric form would actually work better: τέλεα.
Alex P Nice catch on the plural of telos. I don’t have my Greek lectionary ready-to-hand, but if I verify that and you’re right, my hat is off to you.
Excellent stuff, Nathan. I think you may be onto something – or at least you have happened upon a subject that is definitely worth noodling on.
In my research, I do a lot of programming in several languages, and students who join me in those efforts have need of a fairly extensive skill-set and good familiarity with computers at a deeper-than-the-man-on-the-street level. While these skills are very useful for them in their likely vocations down the road, computing that is in the hands of Joe and Jane Public is becoming rather far removed from the kinds of things they work with. While they have learned, broadly, scientific computing, the skills they’ve picked up wouldn’t be directly applicable to, for instance, designing interfaces or apps for smart phones, or for web design. That said, with the skills they’ve picked up, learning how to program apps would be a relatively trivial extension of what they’ve learned already… it would certainly be interesting to talk to them about whether they see the broader application, though… I may just have to do that 🙂
So – I guess my initial take on the idea of computer programming as a 21st century liberal art is mixed. I absolutely agree with your last comments about the ways in which computer programming, like linguistics, can give students a broader insight into at least one segment of our age – and Alex’s comments resonate with me on this score as well. One thing that I would definitely add, though, is that in order for computer programming, etc., to function well as a broadly applicable liberal art, it would need to be taught as such. A computer programming class or program of classes that merely gives students enough tools to robotically assemble a database, utilize a particular API to perform a particular set of tasks, etc., is not an example of a program that falls into the category that we’re talking about. Such classes and even whole instructional programs have popped up all over the place – but don’t cut it. Our computer scientists at Luther have done an excellent job in putting together degree programs that weave algorithmic study and logic into the introductory classes, indeed into the whole four year sequence, and so I can readily embrace their program as being wholly consistent with our liberal arts mission. And the beautiful thing is that a goodly number of our computer science graduates have gone on to study law, medicine and economics, and are the better for it. The logic and analytical skills that they have learned (and this goes for our physics graduates too, who have also entered each of the three fields I just mentioned) have clearly strengthened the foundation upon which they are able to launch their career paths.
To circle back… the way I see computer programming working well as a liberal art involves the necessary analytical and logical underpinnings of computer programming – those things which they must learn well in order to be successful as designers and creators rather than drones. There is much to be said about the parallels between this and language study, as Alex has indicated. One critical difference, though, between the study of human and of computer languages – is that human language is far more flexible in what it actually does. Not only can one utilize human language to construct a formal syllogism in order to make an argument (one can do the same in the language of mathematics) but one can tell stories and relate ethical and moral dilemmas. The study of linguistics enables one to understand how such truly human tasks are undertaken and how the underlying themes and ideas may be communicated to others… I’m not sure there’s a good parallel in the computer science world.
Much to chew on, and these are only my first half-formed thoughts.