There’s a lot of debate in tech these days about whether computer science degrees are essential in software engineering, and the rise of coding bootcamps in the last few years is adding fuel to the fire. It seems as though every week there’s a new debate on what it takes to be a “real engineer.” And while I would never begrudge people their choice in academic pursuits, I’m just not convinced that it’s impossible to write quality software without a CS degree.
Linguistics was my particular divertissement in school. (That’s the study of language generally, not the study of any specific language.) And despite the fact that a career in tech wasn’t on my radar at the time, it actually prepared me pretty well for one.
Turns out, some fields in linguistics are quite technical – and I’m not even talking about computational linguistics. We learned how to break down a problem with sentence trees in my syntax class and how to analyze data by reading spectrograms in phonetics. In semantics, we studied formal logic, including some very tedious assignments that involved writing out proofs in logic symbols. This combination of a logical mindset with an analytical approach is an essential tool in the pocket of any engineer.
But a well-rounded engineer isn’t all technical. If quality software is the end game, we have to understand why we’re building it and who it’s for. And for that, we need to be good communicators and great listeners. These soft skills are arguably the hardest to master, but the study of language fosters an awareness that can certainly help.
Much emphasis is put on historical and sociolinguistics: How are language and culture related, and how do they change over time? What role does language play in power dynamics, relationships, even humor? How does language shape our society and vice versa? Thinking about language in this way caused me to pay a lot more attention to how folks communicate – not just what they say, but how they say it, and to whom – and this has been incredibly useful for me as an engineer.
So I’m dubious when I hear the argument that “real engineers” are the ones with CS degrees. Studying CS certainly provides a solid foundation, but that doesn’t mean it’s the only way to build a strong skill set for building quality software.