If you lookup the term "abstraction" you'll see many definitions. Here, I'm using the the word "abstraction" to mean building on one layer of capability to create a new, more powerful layer of capability.
Perhaps the best example of abstraction in real life is the concept of reading. In pre-school or kindergarten, a person learns to decode the alphabet, and I remember struggling with b and d. Next, a person learns to sound out words. Decoding letters becomes second nature and the person is no longer thinking at the letter level but at the word level - a new layer of abstraction. Next, a person no longer has to sound out words, or even think about the words, the entire sentence is instantly recognized and the person can think a the concept level.
Abstraction layers of reading:
Building software systems also leverages the concept of abstraction. A microprocessor executes microcode inside the CPU to execute the assembler commands and move data between the registers and adders. The OS and drivers use low level assembler code to build functionality. Compilers turn C# code into executable code.
Inside Tejon Tech, we write SQL Server T-SQL code to create an object-oriented database. The result is an abstraction layer consisting of SQL Server stored procedure calls. While they are simple to call, no user would ever want to use the database by writing proc calls, so the user interface is essentially an abstraction of those proc calls turning the code into a graphical user experience that's much easier to use and can visualize that data.
Abstraction is all around us and you'll see it everywhere once you're aware of it. And, if you can use abstraction to turn multiple complex steps into a single new step, then you've created new capabilities.