To understand abstraction essentially means understanding what has to be abstracted rather than merely knowing how it has to take place. To understand the abstraction leading to an elegant solution of the problem means understanding how the solution can really be found.

