Just a brief note on abstraction in the professional world while reading :
A simple example …
Say, you were given the following exercise :
“Draw a square, a rectangle, a rhombus, and a parallelogram.”
Both solutions below, figures (a) and (b) would be correct. With (a) you show your ability to abstract, with (b) your detail knowledge.
… and its practical relevance
Now take the profession of engineering (software, electrical, mechanical, …). Of course an engineer needs both of the above ways of thinking, (a) and (b). However, from my own experience I may say, what separates the engineer from the craftsman is clearly (a), the ability to abstract.
If you graduate from craftsman to engineer, the focus in education shifts from details to principles to enable you to understand the details, you have applied as a craftsman by convention or basic understanding, on a more abstract level. This is why civil engineering students have courses in physics and differential equations and studying software engineering involves complexity theory, logic and structural mathematics.
In practice applying such principles is required for doing things like handling the complexity of software by a proper architecture. In requirements engineering – understood as a common learning process of stakeholders – abstraction is essential for understanding and should not be confused with heaping loads of detailed descriptions. More general, abstraction is required to transform a single big problem into many small ones – an/the essential task of engineering.
On the status quo of education: “a study we undertook in France showed that the majority of university and middle-school students are unaware of how some of these categories [square, rectangle, …] include others, and many simply refuse to accept the idea that squares are rectangles or rhombi” 
Hofstadter Sander (2013) Surfaces and Essences
4. Abstraction and Inter-category Sliding
 Why Abstraction is central for Expertise
 Are Squares Rectangles?