As part of researching and constructing the map of downtown Albuquerque’s historic Red Light District, I have decided that I need to learn how to write “code.” For those of you not up on your computer terminology, code is a generic name for the various computer-programming languages that are used to make computers do things. Code is typed in, as opposed to a Graphical User Interface (GUI) (see images below). Both allow you to do stuff, but writing code gives you nearly infinite control over a computer (or at least that’s what I hear). For a variety of reasons, it will be easier to crunch and transform census data, etc., into an interactive map, if I learn to write some code.
The Graphical User Interface (GUI) – how most of us make our computers work
As I am learning, in the academic world there is quite a bit of disagreement about whether digital humanists should learn to code or whether they should just use tools created by people who are programmers. As a general rule, I find arguments between scholars mildly comical and thoroughly irritating; but I get it – why waste time learning how to program computers when there are a lot of talented people who specialize in that already. But, the things is, I need to have a computer do things for this mapping project that do not necessarily exist yet. I can’t just download an app. I have to create one.
So here I am learning to write code for the first time. What I am doing is probably something that 7-year-olds across the globe do for fun on a daily basis. But, for me it is a challenge. It is also fun, but the learning curve is pretty steep. My advisor, Dr. Fred Gibbs, has suggested that Python would be a good language to start with. Again, for those of you who are not familiar with the terminology: different programming languages do different things. As a starting point, I have begun going through Zed Shaw’s, Learn Python the Hard Way, which is a step-by-step starter guide that has about 60 lessons for the beginner. I am going through a couple lessons a day (with repeats when I screw up). The goal is to get through the entire program in a month. That is just a beginning. Apparently it will take a month just to begin to begin learning. But, it really is fun – sort of. It can be a bit frustrating too.
One thing that is striking about learning to write code is that is very similar to learning how to read and write music. Code and music are both abstract, practical languages that have very limited respective scopes and purposes. Maybe the same could be said about spoken language, but to my mind there is a distinction: spoken language is abstract and practical, but has almost unlimited application. Obviously, I am not a linguist. Code is also similar to mathematics (at least at the lower-levels) in that it is either right or wrong. Code does not lie. If it is not written correctly the command will simply not work. Even in its complexity, there is a simplicity that is somehow comforting. Some things in life can still be boiled down to right or wrong (not really).
Anyway, that is what I am working on now in researching and constructing this map. There will be more coding posts in the future. Lucky you.