Confession: I have mixed feelings about coding. Very mixed feelings.
On one hand, I find the idea that in order to be a valuable 21th century person, coding is somehow necessary to be a frustrating one. Apparently, to be a useful human, I need to be able to make a website, or something? On the other hand, I see the utility of having some coding knowledge, and have always intended to learn a bit of coding. When the research I was working on this summer increasingly looked like it was going to start intersecting with data science and specifically “text as data,” I began playing around with Python tutorials on Codecademy.
I hated them.
The main issue I have with Codeacademy is not original: it’s too rigid. Sometimes, I would code out a solution that apparently worked, but because I didn’t solve the problem the way Codecademy wanted me to, they would be marked as incorrect. I was frustrated when I realized that I ended up focusing more on figuring out how the website wanted me to code than on actually understanding what I was doing. I felt like I wasn’t retaining any knowledge, so I stopped, and began looking for alternate Python-learning resources.
The HTML and CSS tutorials I took this time felt a lot different from the previous tutorials I’d done. Because the tutorials were geared towards creating a specific website (my badges, which shows the work I’ve done with CSS, HTML, and Python can be found here), it was less frustrating that I didn’t feel like I was learning everything about how HTML and CSS work, just enough to modify a website.
This idea, the distinction between learning how to code and just learning how to code a specific thing, got me thinking. Matthew G. Kirschenbaum’s article on why humanities students should learn to code touted the wonders of coding and bemoans how his first CS classes lacked an idea of
why programming was a unique and startling way of looking at the world; why it was, in fact, a kind of world-making, requiring one to specify the behaviors of an object or a system from the ground up; why and how such an activity was connected to the long traditions of humanistic thought I encountered
But let’s be honest–is this concept of coding as a language, a way of seeing the world, really present when one takes Codecademy lessons? I think not. When I started learning Python, I thought I needed to know everything, to learn the coding language to fluency, which left me frustrated. But the truth is, the coding knowledge I need is specific: scraping and manipulating text to use as data, using commands in R and Stata, and tweaking webpages just a bit. I don’t need to know how coding works, in depth. As the HTML and CSS tutorials taught me, I don’t even really need to know how to code! All that’s truly necessary for basic competency is some understanding of syntax, and Google.
For example, last year while taking Archaeology, I found myself wanting to create a table of contents at the top of a long webpage in order to make it more navigable. I had absolutely no idea how to do this, but after around 15 minutes of Googling and trying out pieces of HTML I found online, I figured out the commands necessary and was able to create the table of contents (which can be seen here, although note that one of the links is broken!)
The same process could be followed for any basic coding challenge, such as figuring out how to scrape data from a webpage and then analyze it. A quick Google search reveals a number of tutorials with example code that can be modified to fit specific circumstances. Is this coding? It certainly isn’t coding as it is taught in classrooms. But it is enough coding that I can manage basic tasks, like modifying the theme of my personal webpage (although I may have broken it a bit!).
I don’t think all students need to know how to code. Having that expectation is limiting, because not everyone has the time or inclination to devote to learning multiple languages in-depth. However, I do think that spending just a little bit of time (5-8 hours should be enough) to grasp the basics of how coding and syntax work and how a source code can be manipulated to suit one’s purposes.
So don’t code because you feel that you have to. But if humanities students play around as I have, who knows? They might be inclined to learn code more formally–for fun.