Joel Spolsky said something interesting in his critique of Java-oriented Computer Science eduction.
Pointers and recursion require a certain ability to reason, to think in abstractions, and, most importantly, to view a problem at several levels of abstraction simultaneously. And thus, the ability to understand pointers and recursion is directly correlated with the ability to be a great programmer
This is so true. Great geeks understand the importance of the mental ducking and diving and wheeling and loop-the-looping up and down the layers of abstraction. The Geek's job is to see at all levels so that the requirements of one level can be solved by implementations further down.
But now consider the perenial Suit complaint of the Geek : that he starts getting bogged down in unnecessary technical details when he should just be giving a high-level progress report or talking to the customer about her problems.
He doesn't "understand business" the Suit thinks.
How tragically, irritatingly wrong. The Geek's job is to make the abstraction levels fit together. Of course the only way to achieve this is with an understanding of both the higher and the lower levels : simultaneously. And the easy shifting from one to another.
But Suits love to keep the levels separate. Their whole reason for existence, their positions depend on the notion that the levels are distinct. The rigid company hierarchy is the reification of non-traversable levels of abstraction.
It is obvious to them that "business" can be understood through the abstraction of accounting. And that the senior managers make visionary plans which require highly abstract inferences about strategic relations but don't require understanding the gritty details of technology.
To the Suit, Geek thinking, that swoops between the layers of abstraction, that claims the right to think of the problem from any perspective, is anathema.