Quote from prt_systems:
He was of course correct.
If you want to build software systems that are actually used then a better statement would be "Computer science has little to do with building commercial software systems" .. except perhaps at the very cusp of innovative design and the number of people employed in such endeavors is very very small. Of course there is a lot more money in innovation if you have the stomach for such projects ....
Let me do a disambiguation, there is sufficient difference between Computere Science and Software Engineering, although they are often confused with each other. SE is focused on constructing ("engineering") flexible, scalable, extensible software systems. Computer Science, as an academic endeaver ("science"), is focused on improving or solving individual computer algorithm related problems. The central problem surrounding SE is a "system", the central problem surrounding CS is a "problem", not a system.
There are plenty of computer scientists that don't know how to construct a system, and that's perfectly reasonable, no different from an organizational behavior research scientist in Business School have no idea how to parse a balance sheet. They would rather focuse on the mathematical properties of fuzzy logic theory, that's their focus, on their particular problem area (formal logic theories).
What most high-end CS undergrad and especially grad programs teach a student is how to be a "computer scientist", which is why a graduate, while perfectly capable of proving NP-Completeness, and proving language semantic properties, does not know to construct a "scalable" system. Is that a flaw? I am not certain, since the Charter of the EECS program in MIT, CS in Stanford, etc, are not to produce "programmers", they are to produce "computer scientists". The hiring firms just need to be keenly aware of the type of talents they are hiring, that's all. Using a pure theorist in a pure-coding environment, of course it won't work out, leading to plenty of "snickering about graduates from MIT / Standard / etc can't program". But I have seen computer theorists make incredible quant modeler developers, being their formal, theoretical, and yet can translate models to prototype code.
From a personal point of view, I like Lisp, I did AI (knowledge representation and formal reasoning). I was CS student council and then gradudate student union president, so this type of debate comes up very often. Usually there are plenty of freshmen (or women) comes in, expecting how to "program", instead faces a class in discrete mathematics, and wondering what is going on.
Rufus