Computer science, by itself, is irrelevant.
Of course, you could generalize that argument to all fields of study, but at least when you study biology, even if you don’t apply it somewhere, you understand how cells and organisms, including yourself, function.
However, with computer science, it does you no good to learn how to program or how CPUs work unless you apply that understanding somewhere. Computer science is focused exclusively on applications to fields outside of itself – that’s precisely why we refer to computer utilities as “applications” (e.g., mobile “apps,” software applications).
While computer science is a field wholly concerned with algorithmic problem-solving, the problems it solves aren’t within the field. Hence, computer science must be applied toward another field of study in order to be relevant. For example, applying it to biochemistry allows us to model complex molecular systems and better understand their characteristics; applying it to linguistics allows us to create tools like Google Translate; and applying it to communication studies allows us to better develop social media platforms.
Despite this, there is little emphasis in computer science education on applying its techniques to different fields. Take the UCLA computer science graduation requirements, for example: Students are required to take only five general education classes (e.g., literature, philosophy, biology) and a single chemistry class alongside a series of math, physics and computer science courses. The School of Engineering and Applied Sciences does require students to take a nominal number of courses in non-computer science fields, but students just tend to find the easiest path to satisfy these requirements. Just taking a look at UCLA’s computer science Facebook group will show you this:
These tendencies have just become a status quo for students and
SEAS. But, it’s not as if breaking from this status quo is enormously difficult. All it requires is for computer science students to take courses and systematically educate themselves in other fields that interest them, be that biology, chemistry or sociology.
I’m not saying that computer science students need to pursue a second major, but that they should have an open mind for exploring other fields and develop a keen eye for understanding the nuances of those fields. But, contrary to what many computer scientists in industry tend to do in practice, these nuances cannot be learned on the job.
Code outside the box
Computer scientists cannot expect to become knowledgeable about the fields they are applying their skills to simply through work experience alone – and I say this from personal experience. Rather, the foundational understanding can only come from some sort of education setting, be that reading associated literature in a library or taking courses in that particular non-computer science field.
While in high school, I interned for nearly three years at a molecular dynamics lab – this involved complex, computerized simulations of biochemical systems. While I started out just editing simple web pages, I was soon tasked with running molecular dynamics simulations of my own. Although my work focused mainly on running simulations and debugging any computer issues that came up, when it came time to interpret data and determine which simulation settings produced the most accurate results, I was sorely lacking in the chemistry knowledge I needed and started making mistakes. Although my mentor helped me out often, I eventually blundered so badly that it cost us nearly two months of work.
Of course, being a high school student, I wasn’t expected to understand the complexities of electrostatic and thermochemical interactions, but the byproduct of trying to learn these concepts only when I got the job cost the lab time and resources. Had I spent the time to seek out related scientific literature or simply ask someone in the field to teach me in-person – all of which I eventually did – the mistakes I made wouldn’t have exploded in the way they had.
Much like my experience, it’s naive to think that the people can learn just through work experience alone the concepts of the field to which they are going to apply their computer science skills. Even something so technical as developing a search engine, such as Google’s, requires knowledge in sentence structure and grammar – knowledge which can’t be learned simply by watching your coworkers and reading a couple of how-to pages.
For example, in the context of social media, computer scientists should be knowledgeable about the nature of people’s social interactions with one another and how, when people are sharing pictures with each other, they probably aren’t interested in sending money to each other – a questionable feature Snapchat added to its app in 2014.
Ultimately, while the emphasis in computer science education is to master computer science techniques and be equipped for the workforce, it’s equally as important to take a step away from the computer and learn a thing or two about another field. And who knows, it may only take that one step for you to create something revolutionary with computer science.