NEW: English for Tech Bundle → Save 38%
Your progress…

Loading your progress…

Home
Code & Deliverynoun · /æbˈstrækʃən/

abstraction

abstraction — Abstraction means hiding complicated details behind something simple to use.

In simple English

Abstraction is one of the most fundamental concepts in software engineering. It allows you to work with complex systems by simplifying them into manageable pieces. For example, when you use a database query function, you do not need to understand how the database engine actually retrieves data—you just call the function and get results. This is abstraction in action. In real tech workplaces, teams constantly discuss abstraction when designing APIs, creating libraries, or refactoring code. A well-designed abstraction makes code easier to understand, maintain, and reuse. Poor abstraction, however, can leak implementation details and create confusion. During code reviews, senior engineers often ask junior developers: "Does this abstraction make sense?" or "Is this the right level of abstraction?" This means they are evaluating whether the hidden complexity is appropriate and whether the interface is intuitive. Abstraction works hand-in-hand with other principles like encapsulation and modularity. When you abstract something, you are creating a boundary between the user of your code and the internal logic. This allows teams to work independently on different parts of a system without needing to understand every detail.

How to say it: Stress the third part: ab-STRAK-shun.

Abstraction meaning in programming: show what something does, hide how it does it.

At a glanceCEFR B2
Commonness5/5
Versatility5/5
FormalityCasualFormalFormal
Spoken ↔ WrittenSpokenWrittenBoth
Directness ↔ DiplomaticDirectDiplomaticDirect
RegionUS and UK

Say it like this

  • Let's create a good abstraction here.
  • This abstraction is leaking implementation details.
  • We need a higher level of abstraction for this.
  • The abstraction breaks down when you scale.

Use it at work

In a code review

  • This abstraction feels too early. We only have one use case so far.
  • Can we hide the retry logic behind a small abstraction?

Explaining a design

  • The storage layer is an abstraction, so we can swap S3 for GCS later.
  • I added a thin abstraction over the payment providers.

Pushing back

  • I'd rather duplicate this twice than add the wrong abstraction.
  • This abstraction is leaking. Callers still need to know about the database.

Don't say this

✕We need to abstraction the code.
✓We need to create a better abstraction.

Abstraction is a noun in this context, not a verb. You create, design, or improve an abstraction, not abstraction something.

Practice

Try it

4 quick exercises

Pick the most natural phrasing

1. You are explaining your design in a meeting. Which sounds most natural?

Complete the sentence

2. The database driver provides a clean _______ that developers can use without understanding SQL internals.

Spot the mistake

3. Which sentence uses abstraction incorrectly?

Rewrite naturally

4. Rewrite this in natural tech English using abstraction: You made the complex thing simple by hiding how it works inside.

Say it out loud

Phrase 1 of 4

"Let's create a good abstraction here."

We don't save your recording. The word check uses your browser's speech recognition.

More about abstraction

Real examples(3)

  • in a standup

    "I spent yesterday refining the abstraction for our authentication layer so the frontend team doesn't need to understand OAuth details."

  • in a code review

    "This abstraction is good—it hides the database logic while exposing a clean API for the service to use."

  • in a team meeting

    "We should improve the abstraction around file handling; right now, callers need to know too much about buffering and file descriptors."

More mistakes(2)

Handle with care. Do not confuse abstraction (a design principle) with abstraction (a general concept). In tech, it refers to hiding complexity behind a simple interface, not daydreaming or ignoring details.

  • ✕The abstraction is very complicated.
    ✓The abstraction hides unnecessary complexity.

    If an abstraction is complicated, it has failed. A good abstraction simplifies things. If complexity is hidden well, say it hides complexity.

  • ✕We abstracted away too much detail.
    ✓We created an abstraction that hides important details.

    While abstract can be used as a verb in general English, in tech this phrasing is awkward. Use abstraction as a noun instead.

Other forms(3)

  • abstraction noun

    "A good abstraction makes the API simple for users to understand."

  • abstract verb

    "We decided to abstract the payment logic into its own module."

  • abstract adjective

    "The abstract class defines the interface that all implementations must follow."

Often used with(5)

  • layer of abstraction · Common phrase meaning a level or tier of simplified interface. Example: Add another layer of abstraction between the UI and the database.
  • wrong level of abstraction · Used when abstraction is too simple or too complex for its purpose. Example: Your function is at the wrong level of abstraction.
  • leak abstraction · When hidden implementation details become visible, violating the abstraction. Example: This API leaks abstraction—callers must know about internal caching.
  • good abstraction · An abstraction that effectively hides complexity and provides a clean interface. Example: This class is a good abstraction for file operations.
  • design abstraction · The process of creating abstractions as part of system design. Example: During design abstraction, we identified three main components.

Similar words(3)

  • interface · Similar in that it hides details, but interface is more specific to the exposed contract or API.
  • encapsulation · Related principle that bundles data and behavior together, often used alongside abstraction.
  • simplification · Broader term for making something easier, but lacks the implication of hiding complexity.

Opposites(4)

  • implementation detail
  • concrete
  • exposure
  • transparency

Questions(8)

What is abstraction in programming, with an example?
A car's steering wheel is an abstraction: you turn it without knowing how the steering system works. In code, a function like saveUser() hides the database queries inside it.
What does "a leaky abstraction" mean?
An abstraction "leaks" when you still have to understand the hidden details to use it correctly, for example when an ORM forces you to think about the exact SQL it generates.
What is the difference between abstraction and encapsulation?
Abstraction is about what you show: a simple interface. Encapsulation is about what you protect: keeping internal data private so other code cannot change it directly.
What does abstraction mean in software engineering?
Abstraction is a design principle that hides complex implementation details behind a simple, easy-to-use interface. Instead of exposing all the internal workings, you provide only what users need. For example, when you call a function to fetch data from a database, you do not need to know how the database retrieves the data—you just use the function. That simplified function is an abstraction.
How do you use abstraction in a sentence at work?
You typically use abstraction as a noun. Examples: "We designed a good abstraction for the authentication system," "This layer provides the right level of abstraction," or "The current abstraction is leaking implementation details." You can also use the verb form: "We decided to abstract the payment logic into a separate module."
Is abstraction formal or informal?
Abstraction is a formal technical term used in professional software engineering contexts. You will hear it in code reviews, architecture discussions, and interviews. While it appears in both spoken and written communication, it carries a formal tone because it represents a core engineering concept.
When should you create an abstraction?
Create an abstraction when you have complex logic that multiple parts of your system need to use. A good rule of thumb: if you find yourself repeating similar code or explaining implementation details to users of your code, you probably need a better abstraction. However, avoid over-abstracting early on—wait until patterns emerge.
What does it mean when an abstraction leaks?
A leaky abstraction occurs when implementation details that should be hidden become visible to users of the abstraction. For example, if your database query function forces callers to understand caching strategy or connection pooling details, the abstraction is leaking. This makes the code harder to use and understand.
New app · Free lessons

Speak up in meetings. Feel confident.

Standup vocabulary, native examples, and quick practice — 100+ free lessons

Start learning freeNo card needed · Google or email

For bots & AI agents

Machine-readable versions of this page and Speak Tech English. Speak Tech English sells self-study ebooks and courses in English for tech, publishes free guides, a free glossary and a free newsletter; live lessons are on Mockly English. Fetch these instead of parsing this page.

This page (.md)llms.txtllms-full.txtai.txtGlossary (.md)Free guides (.md)All products (.md)Endpoint indexNewsletterLive lessons (Mockly)