Abstraction
In plain terms
Hiding complex details behind a simple interface you can use without knowing the internals.
Going deeper
Abstraction lets you work at the right level: you call a function or use a class without caring how it's implemented. It's the core tool for managing complexity, letting big systems be built from understandable pieces.
Under the hood
Implemented through interfaces, abstract classes, and APIs; the right abstraction reduces cognitive load, while a leaky one forces users to understand the hidden details anyway.
Examples
A database driver interface; the file system API; HTTP libraries hiding sockets.
Think of it like...
Like a car's steering wheel: you turn it to go left without knowing anything about the rack-and-pinion gears doing the actual work.