- Business Insider asked three software engineers to share the top industry jargon newcomers should learn.
- Understanding tech jargon helps new software engineers fit into their company culture.
- Terms like rubber band and zero day are crucial to effective technology communication.
Software engineering has its own jargon terms that are only heard in the industry. Business Insider polled three IT experts with a background and/or education in computer and software engineering, who together bring two decades of experience in the industry for a list of phrases that young people should be familiar with before joining the industry.
Burak Özdemir, a software engineer with a bachelor’s degree in computer engineering and a master’s degree in informatics, has navigated many technological languages during his seven years in the industry.
“In our field, we use a lively mix of industry-specific terms and jargon,” Özdemir, founder of Character Calculator, told Business Insider. “These terms often capture complex concepts, tools, or experiences in a concise and sometimes amusing way.”
Özdemir said that for anyone aspiring to become a software engineer, knowing terms and keywords not only helps in understanding conversations and documentation, but also means you are part of the tribe, comfortable with its culture, and more likely to fit:
1. Rubber duck
Özdemir describes the rubber duck as “a surprisingly useful problem-solving method where you explain your code line-by-line to a rubber duck (or some inanimate object).”
He said that this act of vocalization helps reveal flaws in logic that were not apparent when working silently.
2. Bicycles, aka The Law of Triviality
“This refers to the phenomenon where disproportionate attention is paid to trivial issues in software development, while more complex or crucial issues are overlooked,” Özdemir said.
“It comes from the idea that people will argue about the color of a bike shed, ignoring the design of the nuclear power plant it’s meant to house.”
3. Boiler plate
Boilerplate refers to sections of code that should be included in many places with little or no change. “It is often seen as a necessary evil and a potential place for future optimization,” Özdemir said.
4. Spaghetti code
Özdemir described spaghetti code as a derogatory term for software with a complex and convoluted control structure—especially one that uses many GOTO statements, exceptions, threads, or other unstructured branching constructs. “It’s a nightmare to read, debug and maintain,” he said.
5. Easter egg
An easter egg in software engineering refers to a hidden feature or innovation that programmers have placed in their software.
6. Refactoring
The process of rewriting existing code to improve its readability, structure, or performance without changing its behavior is known as refactoring.
“It’s like arranging your room,” Özdemir said. “It doesn’t make it bigger, but it makes it easier to navigate.”
Komal Fatima has a BS in computer software engineering and an MS in computer software technology. She currently works at Gaper, which hires remote software engineers, as a Senior SEO Manager. Although she’s fairly new to the tech industry, with three years under her belt, she’s had a crash course in jargon.
Fatima’s list includes rubber ducks and bicycles, too, and she added these three industry jargon terms and definitions:
7. Code smell
The smell of the code is poorly written or structured code that may contain errors or inefficiencies.
8. Yak shaving
Digressing from unrelated tasks before addressing the original problem is also known as neck shaving.
9. Code of inheritance
Older software, often outdated, requiring maintenance and lacking proper documentation is called legacy code.
“There are so many jargon terms that are specific to the software industry, I think it’s impossible to exhaustively list them all,” said Abhinav Upadhya, an experienced engineer with expertise in robotics and automation, who has a decade of experience in the industry and is currently a. senior engineer at L&T Technology Services Limited.
Upadhyay founded the podcast search engine DrPawd and writes about programming in the Confessions of a Code Addict newsletter.
His list of prerequisites for software industry startups includes:
10. Pressing the duck
Also called dynamically typed languages, duck typing refers to a class of programming languages that do not have strict typing. “Essentially, this means that if an object behaves like a duck, then it probably is a duck, but the language will not ensure or enforce that it is actually a duck,” Upadhyay said.
“Such loose requirements make code easier to extract, however, at the cost of potential bugs and code readability.” He added that many companies use these languages, such as Python, Ruby and JavaScript, to name a few.
11. Bare metal
Bare metal, according to Upadhyay, typically refers to running code directly on the hardware without using any virtualization or abstraction layer between the code and the hardware.
“It’s commonly used in the world of embedded systems, and if you decide to work in that domain, you should know that,” he said.
12. RTFM
RTFM stands for “Read the Dirty Manual”. “This is an old acronym, and you’ll hear old-timers use this to direct newcomers to reading the documentation before asking questions,” Upadhyay said.
13. kiss
Software engineers use another common acronym—KISS, for “Keep it Simple, Stupid”—as a guiding principle when designing code.
“The idea is to keep the design as simple as possible and delay the introduction of complexity as late as possible,” Upadhyay said.
14. Magic numbers
People often need to use hardcoded numbers as parameters in their code — Upadhyay said software engineers refer to these as magic number.
“They usually use trial and error or guesswork to arrive at good values for these numbers,” he said. “However, they don’t have a good explanation for why they work. Such coded numbers are usually called magic numbers because they work like magic, since no one understands how they work.”
He added that you can read the phrase magic number in textbooks or industry documentation and hear it used by other engineers.
15. Day zero
The term zero-day refers to a security vulnerability that is unknown to the software vendor or developer.
“It’s called a zero-day because it’s being actively exploited in the wild by attackers before developers have had a zero-day to fix it,” Upadhyay said. “If you work in computer security, this is a must-have term.”