Sunday, December 8, 2013

Professor for one year (week 33): Coding is the new Latin

A few days ago, I tweeted this:

With a link to a short statement by Steve Jobs.  Two sentences in his statement triggered this tweet:
  • "It teaches you how to think." (with "it" referring to learning how to program)
  • "I view computer science as a liberal art."

And I added a follow up tweet stating that Latin and Algorithms and Data Structures should be required for all studies at a University.

Initially, both tweets are an reaction to the initiative Hour of Code, which is simply great.

However, the more I think about it -- and look at my Twitter timeline following Digital Humanities conferences over the last weeks --, the more I believe that coding actually IS the new Latin already;  it just hasn't hit universities while Latin is on it's way out of universities (fewer and fewer study programs require proper knowledge of Latin).

When you look for arguments supporting Latin for everybody, you find:
  • It's fun.
  • It's the basis of European languages, you learn other foreign languages much easier if you know Latin.
  • It's the basis of European languages, you gain competencies in your native language.
  • It teaches you how to think.
  • You learn a lot about logic and abstraction.
  • There's no better way to learn grammar.
  • It's part of our (European) cultural heritage.
  • It teaches you how the world works today.
If you look closely, a lot of those arguments are valid for programming, too:
  • It's fun.
  • It teaches you how the world works today.
  • It teaches you how to think.
  • You learn a lot about logic and abstraction.
And that's basically, what Steve Jobs was referring to.  And I agree, although there is a learning curve, you can do a lot with programming, even as a beginner.  It is a kind of craft, you have to practise a lot; but it's also a kind of art, you can enjoy it while doing it and you can enjoy the final product.

Usually, it's "critical thinking" what we want to trigger in students, but I think "being able to abstract" is a more appropriate goal.  And probably a prerequisite to critical thinking -- you have to discover large lines of arguments, you have to abstract from singular examples, you should see commonalities and general discrepancies before making your own arguments and expressing pros and cons.  Being trained in logical thinking and abstraction helps you to do so.  And there is no better way to learn those two than via learning Latin, math, or programming. 

Actually, there might be another link between Latin and programming -- it's a kind of closed community of those who know it.  Therefore a programming language could be seen as a kind of "code" -- i.e., a "cipher" --, and you have to be an insider to decipher it and grasp the true meaning.  It's a kind of jargon spoken and understand in a closed group.  Maybe people referring to "programming" as "coding" are not aware of the ambiguity of "code," but I think the sense of "speaking an encrypted language" is a valuable one.

There's already a lot of research literature with respect to "code literacy," also emphasizing that you should learn how to program to become part of "the club of the privy."  And of course discourse following the book Program or be Programmed by Douglas Rushkoff supports this view.  In this regard, the term "hacker" -- often used as a derogatory term by society, but as a badge of honor for expert programmers in hacker culture (see the definition of "hacker" in the Jargon File) -- could even become a synonym for "member of the new elite."

No comments: