When I think of abstraction is stripping down a problem to it’s core, and solving it piece by piece by looking for patterns in the data. Every equation you use in mathematics is an abstraction from a pattern someone much smarter than myself have found. Using these equations or methods to solve problems in mathematics on the surface is easy, but the if you look at the root problem it’s much more complex.
In programming abstractions are important and make or break productivity. This I think is why we use libraries of commonly used functions, so we can focus on the problem at hand, and not worry about the small details. These functions are abstractions of things other people have wrote for you. When you’re writing a program, you find good abstractions to the problem you are trying to solve, your programs become shorter, hence easier to write and — maybe more importantly — easier to read. The way to do this is to try and grasp the major concepts that define your problems, and make them to it’s core as simple as possible.