“For these students, I believe proficiency in a computer language can fulfill many of the same functions — accessibility, self-reliance, heightened critical awareness — as knowledge of a traditional foreign language.”
Matthew G. Kirschenbaum, Hello Worlds why humanities students should learn to program)
Before college, I never imagined I would become a computer science major. When I applied to schools, I focused on programs in linguistics, journalism, literature, and even the rather bizarre Anglo-Saxon, Nordic, and Celtic Studies program at Cambridge. This interest came in part from my family background—many of my relatives work in journalism and literature. At the time, I was sure I would never “turn my back on the humanities” just because computer science had suddenly become a popular choice. That changed during my first year of college. I kept my original plan to study linguistics, but by the end of freshman year I also decided to double major in computer science. What I realized is that learning to code and understand how computers work is not about abandoning the humanities—it’s the opposite. Coding gives humanities students not only technical tools that can enrich their research, but also new ways of thinking. It teaches us to model the world through different kinds of languages—whether natural ones like Chinese or programming ones like Java.
As a computer science major, I have been coding for three years and have explored many different programming languages and areas of CS. In a software design class, I learned HTML, CSS, and JavaScript, which we used to build our own websites. As a Harry Potter fan, I created a Wikipedia-style site where users could browse profiles of characters, potions, and spells from the series. To power it, we used an online dataset and built a database with SQL. Once the backend was set up, I designed the site’s structure, deciding how many pages it should have and how the navigation should work, using HTML. I then used CSS to arrange the layout and style elements like menus, buttons, images, and text blocks to make the site visually appealing. The most challenging part was adding JavaScript, which enabled dynamic features such as filtering and search functions. Many of the techniques I used aligned with those covered in intermediate and advanced tutorials on HTML Dog.
It might sounds compicated or difficult to build a website for anyone who is new to programming, but one does not need to be able to write every code for a website to be able to use coding to help themselves with a humanity project. Measuring token distribution or vocabulary richness of different authors, literature theme/topic modeling, and many other interesting topics in literature, history and other humanity subjects could be investigated with some knowledge of R studio or natural language processing. Some smaller tasks like creating a word cloud to visualize theme or sentiments of a text could be done with a simple code using python. The below is a snippet of code creating a word cloud for a tiny exerpt from MiddleMarch, and with less then ten line of actual code, we have a wordcloud. Though it might not be a very useful one because of the size of the text, but one can imagine using it on an article or longer extraction of a book.
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
text = """
Our moods are apt to bring with them images which succeed each other like the magic-lantern pictures of a doze; and in certain states of dull forlornness Dorothea all her life continued to see the vastness of St Peter's, the huge bronze canopy, the excited intention in the attitudes and garments of the prophets and evangelists in the mosaics above, and the red drapery which was being hung for Christmas spreading itself everywhere like a disease of the retina.
"""
#add stopwords
stops = STOPWORDS.union({"the", "and"})
wc = WordCloud(width=800, height=400, background_color="white",
stopwords=stops).generate(text)
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.tight_layout()
plt.show() # or: wc.to_file("wordcloud.png")

What I’ve shown here may not look innovative in today’s humanities studies, but my point is that many long-standing questions in the field can be explored or presented in new ways with just a bit of coding. For centuries, literature, history, and philosophy students have learned second or third languages to access more sources and to see things they couldn’t otherwise. As a linguistics student, I’ve often experienced this myself: I don’t need to be fluent in a language to gain insights that are valuable. I think the same is true for programming languages, as Kirschenbaum suggested in the quote at the start of this blog. Humanity students have always been enthusiastic about being multilingual. In the 21st century, what about adding Python or JavaScript to our language list too?
I think you bring a really unique perspective to the table as someone who studies both computer science and linguistics. In a sense, they are both a form of studying languages, with different applications for each skill. I completely agree with your point that coding gives humanities students the technical tools needed to enrich their research, and I think your Harry Potter project sounds super cool! Great work.