Way back in 1996 (a millenium in Internet years) I was teaching at the University of New Hampshire as a fill in for someone on sabbatical. Early in the fall semester I got a memo (not an email) offering faculty members a chance to attend a workshop where we would learn how to put our syllabi on the World Wide Web. I signed up and spent two hours learning to write HTML code via green text on a black screen. At the end of the workshop, both of my syllabi found new lives online and the rest, as they say, is history.
This was not my introduction to coding, but it was by far my most successful foray (there is no need to discuss what grade I earned in Introduction to BASIC Programming in college). I continue to bless my luck that I learned to create web pages the old fashioned way, because I’m just lazy enough that had I started with a program like DreamWeaver, I probably never would have learned the underlying code that drives my websites. At the same time, more than once I’ve wished that I had had the time to really learn XML and CSS at the level that I need to know them. I even own a guide to simple programming in Python, not that I’ve ever gotten past the Introduction.
Because the tools of digital technology are increasingly so user friendly, fewer and fewer of our students are spending much, if any, time at the command line, or even in the source code for the content they create online. In my experience, most history majors don’t even know what “metadata” means, much less how it influences what is served up to them by Google or other search engines.
If we let this situation continue, we are doing our history students a real disservice, both when it comes to teaching them about our discipline, but also in helping them prepare for careers after graduation, whether in history or many other fields.
It’s a reasonable question to ask why history majors should learn some of the basics of coding. As Audrey Watters points out in her post on the more generalized version of this question, “Coding for the sake of coding doesn’t really get you much.” Audrey quotes Jeff Atwood who points out that good software developers don’t write code because they love code, but because they want to solve problems. While Atwood is making a plea that we not teach everyone to code, I think that his point about problem solving is exactly the reason why history majors need to be introduced to the basics of coding.
To put it more directly, good historians, like good software developers don’t study the past because we love musty old documents or to see our names in print, but because we want to solve problems. Our problems are different from those faced by software developers, but problems they remain. How many times have to urged your students to answer a question in their essays? That question is a problem that typically begins with the word “why.”
With the advent of super massive databases of historical content, students of the past are facing a new species of problem. How can we mine these databases for the information we want? How can we recognize patterns in those data? How can we organize the material we extract? How can analyze what we’ve found and organized? How can we present those data in ways that are compelling and explicable to our audiences? And how can those presentations happen across multiple platforms (laptop, tablet, mobile phone)?
Historians and other humanists are starting to take seriously the notion that coding, whether to extract and manipulate data or to present it in elegant ways (or both) are skills that students of the past need to acquire. But only a few historians thus far. Examples worth taking a look at include my colleague Fred Gibbs, Caleb McDaniel at Rice University (see his posts on learning Python), Miriam Posner at the University of Minnesota, Jeremy Boggs at the University of Virginia, and everyone else working on the Programming Historian project.
I can’t pretend to say that I could teach my students how to code, other than how to work with HTML and CSS, but I do recognize just how important it will be for our students going forward from 2013 to develop skills that I don’t have. Not every history student needs to learn to code, but I think we do our students a disservice if we don’t (a) make the option available to them and (b) strongly encourage them to avail themselves of this option. Those of our students who do develop these skills will almost certainly find doors open to them that the standard history major, MA, or PhD will not even be able to knock on.
Thanks for the link and the nice post.
I think that even if showing students HTML and CSS is the least one can do, that’s actually doing quite a lot. I first started learning HTML in an undergraduate horticulture class, of all places, when my professor required us to make our own webpages and taught us some basic HTML tags. Small though it was, that was an important light switch for me in understanding how computers and scripting languages work. Just getting students to see that will prepare them for future autodidactic experiments and also make them more reflective in their use of the Web and software in general.
For other “programming historians” (indeed, people more worthy of that designation than I), see Chad Black and Jason Heppler, who has done a Ruby fork of the Programming Historian project.
This is interesting, but the case can be made stronger if we look at techne as a concept. Historians already employ skills – they do so to examine manuscripts for instance, as well as critiquing an analyzing the content of those manuscripts. How they themselves operate as technologies (yes manuscripts and books as technologies) allows us a better way of justifying why learning to code is important. It’s a writing skill, it’s a binding skill, it’s an analytical skill – part of techne of scholarship in the digital age. End of story. When I teach coding I always start with a book or a piece of paper as an analogue to a webpage. What is the binding – The header of an html page? How do we define what paper we’re using – the DTD declaration? Typesetting – css etc. but it becomes more obvious when we start thinking about coding before and after the page loads. These approaches don’t emphasize that marking or coding is new per se, but that they are skills that we’ve had in other capacities that need to be transfered.