I'd like to agree with Alain more, but I must say that the correlation I observe between how smart a CompSci PhD is, and how much he earns is not great.
If someone told me it was actually negative, I might even believe him.
There exist certain skills like signal processing where smart CS PhDs can ear really rather good money, but the majority of CS PhDs aren't only focused on topics that aren't relevant to banking, I sometimes struggle to understand how they relate to computing.
Some CS PhDs are effectively pure maths, things like partition logic which shows some promise of actually being useful though not in banking. It requires a serious effort of will not to hit the delete button when I see "security" on a CS PhD the correlation between studying computer security and being useless to man and beast is quite high. Odd because some of the very smartest people I know do security, but they rarely learned it on a course. There is information in the choice a person makes to study security.
I expect CS PhDs to be able to program.
That is because I am a naive fool.
But I stick to that standard in spite of relentless provocation.
I guess I'm well known as a
C++ bigot, but actually I'm pretty relaxed about which language they know, partly because expecting them to know any language, even a quiche option like Java is a bit optimistic.
I shall share a test that I apply to CS people who express some idea that they may be able to program.
I say various nice things about the Windows architecture, which for most people from that culture is provocative.
An vaguely acceptable candidate disagrees with me, but where most blow up is when I say things like "because it has more sophisticated memory management options than Linux", and they often respond by saying "no, Linux is much better", and then I smile sweetly and ask "how are they different ?"
Almost all crash and burn.
Of course O/S internals are often nothing to do with a CS education, (which is not an excuse) so I look for ability to solve problems using computers, something I think of as important. That's a far wider range of algorithms than the norm.
Here's a simple one that dumbfounds too many CS types:
Why are functional languages often superior in multi processor environments ?