Computer Scientists Can’t Program!
Talking to people in the industry, I’m frequently told that computer scientists can’t program. Part of the problem is people hiring computer scientists and thinking that they’ve just done a three- or four-year programming course. (Another part is students applying to study computer science with the same idea.)
Some computer scientists, and even professors, really can’t program. Professors have PhD students to handle programming for them, but recent graduates can’t make that claim. Programming falls close to the engineering part of computer science, and people who have been through a degree that focuses more on the mathematics or psychology aspects of the subject are likely to be fairly weak in engineering.
A lot of dissatisfaction with computer science comes from the misplaced expectation that a computer science graduate will be a good programmer. Such a graduate should have been exposed to at least half a dozen languages, but won’t necessarily have done anything particularly complicated with those languages. She almost certainly won’t have any kind of deep understanding of the standard library available for a given platform. This kind of comprehension comes only with experience. She may have picked it up from other jobs or open source work, but not from her degree.
Computer science and software engineering are very different disciplines, and a lot of people seem to confuse the two. Software engineering teaches the process of developing software, in terms of both tools and processes. A computer science course briefly touches on these topics, in the same way that a materials physicist may learn something of mechanical engineering. This doesn’t make a computer scientist a software engineer, any more than it makes a physicist the best candidate for building a bridge.