Burn Rate

Humanities and CS

I’ve written about a multitude of subjects on this blog. Mostly areas that everybody kind of agrees are important. Maybe people will quibble over a detail or two but nobody’s disagreeing that you should get an internship or work on a side project or two.

That ends today! I’m going to discuss an area that some may find disagreeable. I’m going to discuss the humanities and why you should learn them.

At NYU CAS we are required to get a liberal arts education. We take classes on history (Cultures & Context), literature (Text & Ideas), writing (Writing the Essay), art (Expressive Cultures), social sciences (Societies and the Social Sciences), and foreign languages. The ostensible purpose of these courses are to provide “a foundational academic experience of general education in the liberal arts for undergraduates”.

I don’t disagree with this sentiment. I’ll expand shortly on why this foundation is necessary. But before that, I’d like to emphasize:

Studying the humanities is NOT equivalent to taking core classes

One common misunderstanding I see students making is taking the core classes, finding them boring, then writing off all humanities.

The problem is that core classes are hard to teach. You’re not teaching a traditional major based intro class, so you can’t spend too much time on the basics, but you also can’t jump into the more advanced topics that are interesting because they require too many technicalities.

If I had to teach a programming class where students came in with zero experience, and would do zero programming after the fact, I’d find it very very hard to make it interesting. It’s an inherently daunting task.

Try to do your best to separate the humanities from your specific experiences in core classes. Writing off humanities because of core is like writing off all vegetables because of steamed broccoli.

Contextualization

Programming doesn’t exist in a void. Each and every one of us, by programming, is effecting change on the world. To quote Marc Andreessen, software truly is eating the world. As programmers, we hold immense power. Our code holds people’s most private secrets. Our models read their data and model their movements. Our work is an integral part of the modern world.

Humanities can give us insight into these issues. For instance the concept of surveillance capitalism, created by Shoshana Zuboff, is a crucial concept behind companies such as Google and Facebook. History can also provide insight. We can analyze issues such as IBM’s business with Nazi Germany, or the ethical implications of the atomic bomb, and compare them to our modern day issues.

I’m not saying you should forgo your job or take certain moral stances, but it’s good to have some awareness of how your work impacts the world.

Behind every atrocity committed with technology, there was an engineer. Maybe that engineer knew they were doing something wrong. Maybe they didn’t. Try to not be that engineer.

Communication

Even though it’s nice to imagine everybody communicates via ProtoBufs, that’s not reality. As I’ve outlined before, learning to write a good email is extremely important. Likewise you’ll need to write documentation, articles, maybe even a paper or two.

The common response to this point is that technical writing doesn’t require reading James Baldwin. And yes, you could certainly restrict yourself to reading solely technical literature. But you’d run into two problems: most technical literature is rather poorly written and rather boring. I guarantee that you’ll have a better time reading Letter From A Region In My Mind than most technical literature. What you’ll notice if you read the piece I just linked (which you should read!) is the clarity of mind which Baldwin infuses into his work. His prose is brilliantly sharp—not a word wasted, not a careless thought. Not all good writers are this way, but if you can take even an ounce of this skill and infuse it into your writing, you’ll be far better along than most technical authors.

If you can infuse it into your programming, you will be among the best programmers alive.

Another important quality is style. Even in technical writing, style is crucial. Whether it’s the rather idiosyncratic, pseudo-socratic style of The Little Schemer, where Lisp is taught via a dialogue between two people, or the mystical wisdom of the Tao of Programming, style allows you to convey complicated ideas in charming or interesting fashions.

Without the writing that I’ve read, I could not maintain this blog.

Empathy

Empathy is often considered immutable: one either has empathy or does not. I don’t agree. Empathy is a quality that must be exercised. Humanities provide you with a variety of ways to increase your empathy such as watching films or reading fiction. Roger Ebert famously said that films are the greatest empathy machine.

Movies are the most powerful empathy machine in all the arts. When I go to a great movie I can live somebody else’s life for a while. I can walk in somebody else’s shoes. I can see what it feels like to be a member of a different gender, a different race, a different economic class, to live in a different time, to have a different belief

The flip side of empathy being mutable is that it’s possible to lose one’s empathy. If you spend too much time debating yes-and-no, 1’s and 0’s, then you might begin to see the world in that lens. Which might be great if you want to work on your Data impression, but will make it harder to connect with people. There are plenty of issues that are not just good/evil, yes/no.

Empathy is also profoundly important within programming. When I analyze a piece of code, I try to put myself in the author’s shoes. Why did they write the code this way? What went wrong? What went well? Did they have an outside factor affect their code?

Even bad code has good reasons behind it.

It’s easy to dismiss code as bad, programmers as stupid. It’s a lot harder to work with said bad code and said stupid programmer to make things better.

Subjectivity

If there’s one presque-universal sin of technical people, it’s a fetishization of objectivity. I can’t count the amount of times I’ve heard the slightly-condescending opening remark of “objectively…”, which inevitably is followed by some argument furthering a subjective point.

I don’t know why that is. Well actually I do. Objectivity is prized in the sciences because one can be somewhat objective in science. However once you stretch your view beyond the technical and start analyzing the messiness of our world, objectivity quickly becomes impossible.

This is partially why some people dislike the humanities; you can’t prove sociology. Even I’ve wondered at times whether Goffman was making it all up. But the answer isn’t to reject humanities as a whole. As the common refrain goes, all models are wrong, but some are useful. Just because humanities lacks rigor, doesn’t mean they’re without merit.

Subjectivity is a powerful concept to embrace. More of one’s life is subjective than a technical person would want to admit. Politics, communication, even our recounting of events—all of these are subjective. The mistake that some make when they do not have a humanities education is this subjectivity is sourced from people’s stupidity. That if people just sat down and thought logically, we’d have objective answers to these issues. Unfortunately that’s not true. More often than not, the “objective answers” which the person wants us to reach are colored by their own biases and subjective experiences.

Laying claim to objectivity will not give you such; it will simply blind you to your subjectivity.

Why does one need this in computer science? As much as we claim to be on the side of objectivity, as much as we use terms like “science” and “engineering”, programming is an incredibly subjective practice. There isn’t one way to write good code. There isn’t one perfect programming language. We don’t have the best way to design a system.

Too many times when we encounter these nuances, these subjectivities, we try to lay claim to objectivity. We try to make statements like “objectively…Docker is the best way to deploy”. When really we mean “subjectively, when I deploy, I feel like Docker is the best way to do it”.

It’s tempting to avoid the humanities, to denigrate it, because of its lack of objectivity. Instead I urge the opposite—learn as much as you can from the humanities and its subjectivity. It will help you in your work and in your life.

You Already Study Humanities

This may come as a shock, but as a person living in the world, you are a student of the humanities. When you watch a movie with friends and discuss it afterwards, you are studying the humanities. When you discuss politics, you are studying the humanities. When you listen to music or read a book or talk with a friend about coronavirus, you are engaging in society and therefore the humanities.

“Cool”, you say, “I don’t have to take a class because I’m already doing humanities!” Well not so fast. Humanities courses allow you to take this knowledge that you’ve been building up in your life and harness it. Whether it’s an ability to contextualize your life experiences with a broader narrative (sociology), understand how previous events have contributed to your experiences—or how our understanding of previous experiences reflects the present (history), or how to understand your existence as a whole (philosophy), the humanities are tools at your disposal.

Why are these tools important? So much of the world is utterly mystifying. Politics and ideologies and philosophies attempt to explain these mysteries, but without proper tools, you can’t provide a critical eye towards them. You’re simply accepting your beliefs as faith.

It’s quite easy to come up with misleading statements that without training, can lead you towards questionable conclusions. Humanities provide the tools to untangle these statements and understand their nuances.

Technical Humanities

One problem I’ve noticed with technical people and humanities is that the technical person will take a humanities subject that is purportedly more scientific, subjects such as linguistics. These subjects can certainly be extremely useful. But they can also provide a poor perception of humanities as a whole.

When one takes a subject like linguistics, one encounters many ideas and techniques that may seem almost scientific. Context free grammars, for instance, show up in linguistics and computer science. This similarity creates a temptation to apply a level of rigor to the subject.

This will usually end in disappointment. Not only is rigor impractical even in technical humanities, but the professor is highly unlikely to be proficient in rigorous arguments. The technical student will probe and argue with rigor and the professor will not provide rigorous arguments in response. The student may take that as a sign that they have “won” and shown that the subject is nonsense. In truth, they are just speaking a different language.

A common instance of this is that a professor will make a claim. The student will think for a bit and provide a counter-example. The professor might accept the counter-example but note that it is an exception. After all in a humanities subject, claims do not have to be universally true. Most universally true claims in humanities are rather vacuous. The student will not care, as after all in math a single counter-example disproves a claim.

When taking a humanities course, it is paramount that one does not try to apply the same technical analysis—mutch as one shouldn’t rigorously analyze the time travel mechanics of The Terminator.

This may be hard, as many technical people have this rigorous analysis bound tight into their persona. They believe that their powers of logic and reason are what make them smart and different. In many regards they are right. But it does not pay to analyze everything through a logical lens. Pejoratively, nobody likes a know-it-all.

To prevent this temptation, I would recommend taking humanities courses that do not approach the technical. It’s a lot less tempting to take a logical, rigorous approach to film than linguistics.

I’ve Learned Enough

When I’ve made these arguments to my friends, they’ve acknowledged that humanities are useful. It’s quite hard to make the claim that humanities are absolutely devoid of merit. They then go on to make the claim that there is a limit to which one should learn humanities and they have reached that limit.

I disagree that there is a limit for humanities. The humanities are a reflection of the world and the people within it. As humanity changes, so do the humanities. The Overton window shifts. Ever wonder how certain old people stay rooted in their outdated beliefs? They stopped learning. The times are always a-changing and if you don’t start swimming, you’ll sink like a stone.

This project is maintained by torchNYU