The idea that a liberal arts education is better for a software developer than a traditional engineering education is increasingly in vogue.

This is convenient for me, as I received a liberal arts education: I went to the College of William and Mary 1, where I started out an English major and then pivoted to Marketing and Computer Science. (I joke that this was a move borne of cynicism, not pragmatism.)

I’ve long held the belief that the skills I picked up in British Literature and Race, Rhetoric and Poetry improved my capabilities as a software developer much more than, say, Principles of Programming Languages or Software Engineering. It’s nice to see people come around to my way of thinking!

Well, sort of.

Here’s an example of an article extolling the virtues of liberal arts:

It’s very simple. A well-­rounded liberal arts degree establishes a foundation of critical thinking. Critical thinkers can accomplish anything. Critical thinkers can master French, Ruby on Rails, Python or whatever future language comes their way. A critical thinker is a self­-learning machine that is not constrained by memorizing commands or syntax.

This is… not very substantive, and kind of dismissive to all sides. Liberal arts majors are not better critical thinkers than STEM majors; “critical thinking” is such a broad and undefinable skill that it’s practically meaningless.

People often extol the virtues of “soft skills” that liberal arts-educated engineers bring to the table (implicitly contrasting with the “hard skills” that traditional engineers bring). This is more accurate than saying “liberal arts majors are better thinkers”, but it’s still reductive: without defining these specific skills, how can we accurately value them, let alone teach them?

(Plus, I’m an engineer: I like concrete, graspable definitions, not something like soft skills which sounds hand wavy and vaguely dismissive!)

Here are some specific skills I received with my liberal arts education:

  • communication: in terms of being able to articulate oneself clearly and succinctly but also the ability to form a compelling argument and empathize with others
  • self-directed research, including the ability to tackle nebulous problems and reconcile conflicting information
  • context switching and the ability to minimize friction switching from one problem, task, or role to another.

And sure, these skills aren’t exclusively gained in a liberal arts education: they’re picked up in any sort of structured learning program. But they’re best picked up for most people in a liberal arts education, and as they become more and more vital to being a successful software developer, it’s important to call them out as opposed to lumping everything that isn’t “writing” code under the umbrella of soft skills.

  1. Go Tribe! [return]
Liked this post? Follow me!