As a computer science major without much humanities exposure, my instant thought to this question was: “humanities students do NOT need to learn to program “. Programming skill is something handy to have, but one can easily learn to code when one needs to by using websites like CodeAcademy. It might well be that throughout a humanities student’s career, he/she never needs to write any computer programs. If this is the case, then I see no point of learning to program.
I certainly agree with the argument by Matthew Kirschenbaum:
I believe that, increasingly, an appreciation of how complex ideas can be imagined and expressed as a set of formal procedures — rules, models, algorithms — in the virtual space of a computer will be an essential element of a humanities education. Hello Worlds (why humanities students should learn to program)
Indeed, it would be beneficial to know how computer abstracts complex things using a set of fixed formal procedures, and to appreciate the elegance and neatness of it. However, one does not necessarily need to program to achieve this goal. Many mathematicians who can’t code are working on intriguing theoretical computer science research problems. Coding is just one of the many aspects of the field of computer science, as Evan Donahue noted in his post:
To think of the computer sciences as one “computer science” unified by the language of code makes as much sense as thinking of the humanities as one discipline united by the language of (in the case of the American academy) English. A “Hello World” Apart (why humanities students should NOT learn to program)
Although I believe that humanities students do not necessarily need to learn to program, I still think that it would be beneficial to know one programming language, like Python or R. If one want to clean a datafile for a DH project, for instance, one can certainly do it using spreadsheet (there are many tools that one can use to select a subset of the data, chop off some unwanted data points etc.). However, if say there are 100 files we want to clean, and for each one, there is a fixed set of 10 procedures to do the cleaning in a spreadsheet application, then doing the 1000 procedures all using spreadsheet tools would consume a lot of time. Now if one knows R programming, one can write a simple R script that takes in a file name as input and saves the cleaned data to a new file. We then simply run this script for 100 times (which can be done using a for loop), and get what we want in less than 10 seconds. I have done a lot of data cleaning and organization (all tedious work if done in spreadsheet) using R script for the Data Science class I took last term, and I can see it being applied to DH projects that involve a lot of data manipulation.
I have learned a little bit of HTML/CSS/JS several years ago for a software engineering internship. I refreshed my memory by taking four lessons on HTML, CSS and JS on CodeAcademy yesterday. I really like the interactive nature of the CodeAcademy and the exercises would be very helpful for people without much coding experience. As a computer science major, however, I feel that the pacing is a little bit too slow, and I was frustrated that I needed to pass each exercise to get to the next step. It might be better for me to just look at a HTML/CSS/JS cheatsheet to figure out how things work in much less time =P