The use of acronyms and technical jargon in the world of software engineering is… out of control. API, IDE, entry-point, AGILE, SWE, Pandas, SGTM. These are just some of the terms thrown around at lunch with a software engineer. There is genuinely a second language used by computer scientists, but there is no Duolingo course available for “Annoying Nerd”.
This manner of speaking obfuscates the point of what is being discussed behind layers of technicality that, for most casual discussions, is completely unnecessary. Not to mention the fact that this sort of “second language” is a major gatekeeping factor; if you cannot speak the language, you’re not going to be able to participate. And who is taught the language? Who is encouraged to become a computer programmer? I think if we examine the current biases in place in our society, we’ll see that this ocean of technical language further keeps out groups that aren’t encouraged to pursue this field in the first place.
Now obviously, when working in the role of Software Engineering, there are points where we must discuss the nitty gritty details of our implementations; that’s our job. My point here is not that all specialized language should be avoided or removed, but rather that we – as software engineers – have a communication issue. This issue has lasting consequences; it causes new computer scientists to feel more insecure, and that feeling can linger for years into their career. Nearly 60%[1] of computer scientists report experiencing imposter syndrome, with that number being far higher with computer scientists of minority demographics.
When I first joined computer science it seemed like there was so much information I couldn’t possibly conceive of, but the vast majority of the things I thought I couldn’t understand were in fact quite simple! I just didn’t yet know the jargon, which made the concepts sound significantly more complicated than they were. “Implementing a new entry point (available to users) utilizing a pre-existing API endpoint” is equivalent to the sentence “creating a button”. The first sentence is far more information dense; however, effective communication is not measured by how much information you can cram into one sentence. Not to mention the fact that if you don’t recognize one of the jargon words in that “information dense” sentence, it loses all meaning, while the second is universally understood.
I don’t believe this is a malicious attempt by software engineers to feel or appear intellectually superior. To my knowledge, there’s no cabal intentionally pushing the over-use of complex language; I believe this is a byproduct of the fact that you must be incredibly precise with computers. One might believe, then, that it naturally follows that the language around computers should be incredibly precise, right? I’d argue no. Unlike computers, humans have the capability for abstract, generalized thought – let’s use it to make computer science more widely available and welcoming to new groups of people who want to learn the discipline.
I think computer science could do with a similar dichotomy of language to medicine. As an example, the medical world has the technical term “xerosis”, and the layman term ‘dry skin’. We need to get better at understanding what circumstances require what level of precision in speech. I think we’ll find if we lower the barrier to entry for computer science, the field will flourish with new ideas, perspectives, and ways of thinking that may just give us a future of new technology we cannot yet imagine.
- Rosenstein, Adam, et al. “Identifying the Prevalence of the Impostor Phenomenon
among Computer Science Students: Proceedings of the 51st ACM Technical Symposium on Computer Science Education.” ACM Conferences, 11 Mar. 2020, https://dl.acm.org/doi/10.1145/3328778.3366815.