ABSTRACTION

The Essence of Computer Science is Abstraction:

The authors of the wonderful book Concepts, Techniques, and Models of Computer Programming define Abstraction as any tool or device that solves a particular problem.

Abstractions are central to what we do. I find that the most rewarding work is not writing programs but rather designing abstractions. Programming a computer is primarily designing and using abstractions to achieve new goals. It’s exciting when you can build something which hides away some of the underlying complexity and present a simpler interface for whoever or whatever is using your system.