|
An experiment in writing in public, one page at a time, by S. Graham, I. Milligan, & S. Weingart

How To Become A Programming Historian, a Gentle Introduction

1 Leave a comment on paragraph 1 0 Previous section: Automatic Retrieval of Data

2 Leave a comment on paragraph 2 0 While there is certainly less stigma than there used to be, the idea of a “programming historian” can lead to a piqued eyebrow or two, or an easy laugh line at times.[1] Of course, as Chapter One discussed, historians have been actively programming since the 1970s as part of the first two waves of computational history. The difference with the third wave (open-source software, powerful computing, and big data) is that the barriers to entry have never been lower. This is most obvious with the open-source, open-access textbook the Programming Historian and its sequel, the aptly-named Programming Historian 2 (now simply the Programming Historian once again). In short, the Programming Historian has a simple goal: to teach the basics of programming, drawing on historical examples and with an emphasis of bringing you up to speed quickly and practically. It is not a computer science course: it is instead a series of hands-on examples, focused on the what and how rather than the underlying architecture that drives programming languages. It’s also a challenge to conventional forms of publishing, being a “community-driven collaborative textbook,” soliciting submissions, constantly refining, and inviting comments at all stages. While you do not get an official certificate for completing the book, the skills you learn can move you quickly into the computational side of the digital humanities.

3 Leave a comment on paragraph 3 0 In early May 2008, the first iteration of the book went online, co-authored by two historians from the University of Western Ontario, William J. Turkel and Alan MacEachern. They came at it with varying levels of experience: Turkel, a life-long programmer, and MacEachern, who began programming only on New Year’s day 2008. Their argument behind why historians need to program was both extensive and disarmingly simple. In short, as they put it, “if you don’t program, your research process will always be at the mercy of those who do … programming is for digital historians what sketching is for artists or architects: a mode of creative expression and a means of exploration.”[2] This book, and its second iteration as a collaboratively authored textbook (at programminghistorian.org), is one of the easiest ways for a historian to learn the basics of historical programming (the others include, as mentioned in the preface, unconferences like THATCamp or other physical gatherings of supportive people).

4 Leave a comment on paragraph 4 0 The Programming Historian uses all open-source software: the Python programming language, the Komodo Edit editing environment, the Omeka digital exhibit platform, or the MAchine Learning for LanguagE Toolkit (MALLET). The most important lessons, in keeping with the textbook’s name, involve the Python programming language. Beginning with the simple steps of installing the language itself onto your system, be it Linux, OS X, or Windows, it then moves through increasingly complicated lessons: automatically retrieving data, breaking it down into constituent parts, counting words, and creating basic visualizations. In short, a user in a few hours moves from having no knowledge to being able to programmatically interact with the exhaustive holdings of the Old Bailey Online.

5 Leave a comment on paragraph 5 0 In our experience as researchers and teachers, the word “programming” occasionally raises hackles. Beyond practical concerns of not having sufficient digital fluency to feel up to the task, there is the issue that programming can seem antithetical to the humanistic tradition. The lessons contained within the Programming Historian, however, as well as those in this book, show that programming should fundamentally be understood as a creative undertaking. Humanistic assumptions underlie the decisions that you will be making, and give us more control over the processes that produce results that we then parse into our narratives. Yes, it requires an attention to detail—a misplaced bracket here or there can throw off your program until you find the error—but for the most part we believe that it is a rewarding experience. Indeed, there’s something to be said about a process that gives you immediate feedback—your program works or crashes!—as opposed to the long cycles of feedback that we and our students are used to.

6 Leave a comment on paragraph 6 0 This section does not intend to replicate the Programming Historian, which is both freely available online and continually updated to incorporate changes in operating systems, plugins, and even best practices. Instead, we introduce you to what we consider are the basic conceptual lessons needed by a humanist, as well as providing context around why these issues are important. We encourage you to also visit the Programming Historian as well as beginning to explore the very basic lessons discussed below.

7 Leave a comment on paragraph 7 0 Next section: Basic Scraping: Getting Your Data


8 Leave a comment on paragraph 8 0 [1] William J. Turkel and Alan MacEachern, “The Programming Historian: About this Book,” May 2008, available online, http://niche-canada.org/member-projects/programming-historian/ch1.html, accessed 12 August 2013

9 Leave a comment on paragraph 9 0 [2] Turkel and MacEachern, “Programming Historian, ch. 2,” May 2008, http://niche-canada.org/member-projects/programming-historian/ch2.html, accessed 12 August 2013.

Page 29

Source: http://www.themacroscope.org/?page_id=623