One of the simplest abstractions in programming is also the one that still shocks me, because of it's beauty, purity, composability: the function. With functions you start with simple things, and layer after layer the end result can be a world of any complexity.
#