15 slang terms you need to know if you want to become a software engineer
- Business Insider asked three software engineers to share key industry slang newcomers need to learn.
- Understanding tech slang helps new software engineers fit into their company's culture.
- Terms like rubber ducking and zero-day are crucial for effective communication in tech.
Software engineering has its own slang terms only heard in the industry. Business Insider polled three IT experts with computer and software engineering experience and/or education who collectively bring two decades of industry experience for a list of phrases newbies should familiarize themselves with before they join the industry.
Burak Γzdemir, a software engineer with a bachelor's degree in computer engineering and a master's in informatics, has navigated plenty of tech lingo during his seven years in the industry.
"In our field, we use a vibrant mix of industry-specific terms and slang," Γzdemir, the founder of the Character Calculator, told Business Insider. "These terms often capture complex concepts, tools, or experiences in a concise and sometimes amusing manner."
Γzdemir said that for anyone aspiring to become a software engineer, knowing key terms and buzzwords not only helps in understanding conversations and documentation but also signifies you're part of the tribe, comfortable with its culture, and more likely to fit in:
1. Rubber ducking
Γzdemir describes rubber ducking as "a surprisingly useful problem-solving method where you explain your code line by line to a rubber duck (or any inanimate object)."
He said this act of vocalization helps uncover flaws in logic that weren't apparent while working silently.
2. Bikeshedding, aka The Law of Triviality
"This refers to the phenomenon where disproportionate attention is given to trivial issues in software development, while more complex or crucial issues are overlooked," Γzdemir said.
"It comes from the idea that people will debate the color of a bike shed while ignoring the design of the nuclear power plant it's meant to house."
3. Boilerplate
Boilerplate refers to sections of code that have to be included in many places with little or no alteration. "It's often seen as a necessary evil and a potential place for future optimization," Γzdemir said.
4. Spaghetti code
Γzdemir described spaghetti code as a disparaging term for software with a complex and tangled control structure β especially one using 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 novelty the programmers have put 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 tidying up your room," Γzdemir said. "It doesn't make it any bigger, but it does make it easier to navigate."
Komal Fatima has a BS in computer software engineering and a master's in computer software technology. She currently works atΒ Gaper, which hires remote software engineers, as a senior SEO manager. Although she is fairly new to the tech industry, with three years under her belt, she's had a crash course in the lingo.
Fatima's list includes rubber duck and bikeshedding as well, and she added these three industry slang terms and definitions:
7. Code smell
Code smell is poorly written or structured code that may contain bugs or inefficiencies.
8. Yak shaving
Getting sidetracked by unrelated tasks before addressing the original problem is also known as yak shaving.
9. Legacy code
Older, often outdated, software that requires maintenance and lacks proper documentation is called legacy code.
"There are so many slang terms which are specific to the software industry, I think it's impossible to exhaustively list them all," said Abhinav Upadhya, a seasoned engineer with expertise in robotics and automation who has a decade of industry experience 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 newsletter Confessions of a Code Addict.
His list of terms for software industry newbies includes:
10. Duck typing
Also called dynamically typed languages, duck typing refers to a class of programming languages that don't have strict typing. "Basically, this means that if an object behaves like a duck, then it is probably a duck, but the language will not ensure or enforce that it is actually a duck," Upadhyay said.
"Such loose requirements make it easier to churn out code, 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, usually refers to running the code directly on the hardware without using any virtualization or abstraction layers between the code and the hardware.
"It's commonly used in the embedded systems world, and if you decide to work in that domain, you should know this," he said.
12. RTFM
RTFM stands for "Read the Fucking Manual." "This is an old acronym, and you'll hear old-timers using this to point newcomers toward 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 that the design should be kept as simple as possible and delay introducing complexity as late as possible," Upadhyay said.
14. Magic numbers
People often need to use hard-coded numbers as parameters in their code β Upadhyay said software engineers refer to these as magic numbers.
"They usually use trial and error or guessing to arrive at good values for these numbers," he said. "However, they don't have a good explanation for why those work. Such hard-coded numbers in the code are usually called magic numbers because they work like magic as no one understands how they work."
He added that you may read the phrase magic number in industry textbooks or documentation and hear it used by other engineers.
15. Zero-day
The term zero-day refers to a security vulnerability that's unknown to the software vendor or developer.
"It's called zero-day because it's being actively exploited in the wild by the attackers before the developers have had zero days to fix it," Upadhyay said. "If working in the computer security area, this is a must-know term."