This book is a tutorial-style introduction to programming for practicing historians. We assume that you’re starting out with no prior programming experience and only a basic understanding of computers. More experience, of course, won’t hurt. Once you know how to program, you will find it relatively easy to learn new programming languages and techniques and apply what you know in unfamiliar situations. In order to get you to that point we’ve adopted the following strategy.
- You should be able to put what you learn to work in your research immediately. We think that many beginning programmers lose patience because they can’t see why they’re learning what they’re learning.
- Digital history requires working with sources on the web. This means that you’re going to be spending most of your research time working in a browser, so you should be able to put your programming skills to work there.
- You will have to be somewhat polyglot. Individual programming languages can be beautiful objects in their own right, and each embodies a different way of looking at the world. In order to become a good programmer, you will eventually have to master the intricacies of one or more particular languages. When you’re first getting started, however, you need something more like a pidgin.
- Open source and open access are both good things. We’re providing open access to this book. As we develop it, we’ll be searching for ways to best incorporate the peer review and continual improvement that characterize open-source projects. We also build our work on top of other open-source projects, particularly Python, Firefox, Zotero, and the Simile tools.
We both do archival work, write monographs and journal articles, and teach undergraduate and graduate courses in history. Our backgrounds are a bit different: although we’re the same age, one of us has been programming for about 30 years (WJT) whereas the other started on 1 January 2008 (AM). We share the conviction, however, that digital history represents the future of our discipline.
To some extent, this book is an extended conversation about the degree to which future historians will need to be able to program in order to do their jobs. We also hope, of course, that if you work through the book you’ll learn techniques that make you a better historian.