I'm convinced that computer science grew so fast and is so vital today because there are people all over the world who have a peculiar way of thinking, a certain way of structuring knowledge in their heads, a mentality that we now associated with a discipline of its own. This mentality isn't sharply focused, in the space of all possible ways of thinking; but it's different enough from other ways -- from the mentalities of physics and mathematicians ... -- that the people who had it in the old days were scattered among many different departments, more or less orphans in their universities. Then suddenly, when it turned out that their way of thinking correlated well with being able to make a computer do tricks, these people found each other.

I believe it was this way of thinking that brought computer scientists together into a single department, where they met other people who understood the same analogies, people who structured knowledge roughly the same way in their heads, people with whom they could have high-bandwidth communications. That's what I [mean] when I [refer] to a "computer science perspective". ...

One of the main characteristics of a computer science mentality is the ability to jump very quickly between levels of abstraction, between a low level and a high level, almost unconsciously. Another characteristic is that a computer scientist tends to be able to deal with nonuniform structures -- case 1, case 2, case 3 -- while a mathematician will tend to want one unifying axiom that governs and entire system. This second aspect is sometimes a weakness of computer science: When we encounter a situation that can be explained by one axiom, we might still give it five, because five different rules are no sweat for us. But we're at our best in circumstances where no single principle suffices; then we can handle the discrepancies between different cases very nicely.

-- Donald Knuth, Things a Computer Scientist Rarely Talks About, CSLI, 2001