All Content from Business Insider 01月17日
15 slang terms you need to know if you want to become a software engineer
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文汇总了软件工程领域常用的行话和术语,旨在帮助新入行的工程师快速适应行业文化。文章通过三位资深软件工程师的分享,介绍了诸如“橡皮鸭调试”、“自行车棚效应”、“样板代码”等一系列专业术语,并解释了它们的含义和应用场景。了解这些术语不仅有助于理解技术文档和日常交流,还能体现对行业文化的融入。此外,文章还涵盖了“代码异味”、“牦牛剃须”、“遗留代码”等与代码质量和维护相关的术语,以及“鸭子类型”、“裸机”、“RTFM”等更深层次的技术概念。掌握这些术语,对于软件工程师的职业发展至关重要。

🪞`橡皮鸭调试`: 是一种通过向橡皮鸭(或任何无生命物体)逐行解释代码来发现逻辑错误的有效问题解决方法。这种口头表达的过程有助于发现那些在默默工作时不易察觉的缺陷。

🚧`自行车棚效应`: 指的是在软件开发中,人们对琐碎问题给予过多的关注,而忽略了更复杂或至关重要的问题。这个概念来源于人们会争论自行车棚的颜色,却忽视了核电站的设计。

🍝`意大利面代码`: 这是一个贬义词,用于形容控制结构复杂且混乱的软件,特别是那些使用大量GOTO语句、异常、线程或其他非结构化分支结构的软件。这种代码难以阅读、调试和维护。

🥚`彩蛋`: 在软件工程中,彩蛋指的是程序员在软件中设置的隐藏功能或新奇之处。

🛠️`重构`: 指在不改变软件行为的前提下,重写现有代码以提高其可读性、结构或性能的过程。这就像整理房间一样,不会使房间变大,但会使其更易于使用。

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."

Read the original article on Business Insider

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

软件工程 行业术语 代码规范 问题解决 技术文化
相关文章