When I first got to college, I wasn’t sure what I wanted to study, let alone pursue as a career. I decided to start off as an English literature major because I liked reading and I thought it would teach me to more effectively express myself and analyze the things I saw and read.
Eventually, I tried a few classes in the computer science department because they worked with my schedule and I thought they would be interesting. All it took was one semester of programming in Java, and I was hooked—I knew I wanted to become a software developer. I felt torn, though. Would I give up my English major? Were all the classes I had taken a waste?
After talking with professors, advisors, and people who were a lot smarter than I was, I realized something—the skills and ideas I was learning as an English major were equipping me for a career as a developer in ways that a computer science degree alone would not.
Now, after graduating with both majors and working in the software industry, I’m more convinced than ever that the humanities are an invaluable addition to any computer science education. Here are some of the main skills a humanities education instills that complement software development.
Until even a few years ago, a high degree of technological understanding was the main qualification for getting into the software industry. As long as you could write code that worked and maintain it over time, you usually wouldn’t have much issue finding a job.
The reality is now much different. Having technical expertise and understanding is no longer the main requirement for potential employees; it’s the minimum expectation. Communication and teamwork are absolutely essential skills in software, whether you’re working as a consultant, developing a single product, or even providing a support role.
You have to be able to work effectively with your team, which involves learning the differences in styles and expression that your teammates have and finding ways to effectively interact with them. You have to work alongside your clients to understand and manage their needs and expectations, whether that involves a single entity or an entire body of users.
Being an effective communicator and team player is no longer something that can be delegated to one or two roles within a larger team. Those skills are inseparable from the modern software world, independent of the role you may have. This interdependence is only going to continue growing as the industry matures.
These skills are also critical parts of the humanities. You may be a naturally effective communicator or pick up some good team skills while working on course projects, but nothing compares to how sharply humanities courses can hone those skills. The fundamental importance that the humanities place on clear communication and self-expression is an invaluable addition to any computer science education.
Another area where the humanities excel is forcing you to think of the big picture. They make you take a step back and consider angles you might not have thought of before.
For me, this happened often when writing an essay in English classes. I would feel great about what I had written–both in terms of understanding what the author was trying to do and in arguing my points effectively. It took multiple instances of getting papers back with grades that were less than I had anticipated before I realized that I was often focusing on one or two specific things and missing the bigger picture of what was going on in the story.
In software, it’s relatively easy to get lost in the weeds in a similar way. You could encounter a particularly difficult problem and get stuck on a small detail that keeps you from solving it. Rather than looking at the issue from a structural perspective, you end up spending lots of time focusing on the small, specific issues that are holding you back.
A better way to solve problems like this involves taking a step back and realizing that those problems are actually a result of your implementation. There might be a solution that not only circumvents your particular issues, but ends up being more efficient in the long run. The humanities are geared toward helping develop your ability to understand the large problem and make the necessary shifts in perspective.
Understanding the Human Perspective
The humanities have their name because, even though they compose many independent fields of study, they have one overarching theme in common. They all seek to help us understand some facet of the human experience.
For a long time, the human experience was only marginal to software. The main issue was getting software that worked, and it was far less important if that software was easy to use.
Today, the industry is sprinting in the other direction, and this can be seen in many ways. Software design has cemented itself as a fundamental part of the development process (and something that Atomic has been incorporating for a while now). Apps live and die less on the complexities of what they can accomplish, and more on how easy it is for the average person to use them.
Having empathy is fundamental to this process of incorporating the human experience. It involves understanding who is going to use your product–not just how they’ll use it, but why. It involves understanding the differences in communication and work styles that your team has and adapting to those in order to create a development environment and codebase that allows your team to be as efficient as possible. These kinds of skills and ideas are more than fundamental to the humanities; they’re the entire reason for their existence.
As time moves forward, software will become less a by-product of what computers can do and more a result of what people need. This change is already happening all over the industry. An education in the humanities can help you drive this change while complementing the communications skills you need for a career in software.