in reply to (OT) Real World Skills Versus CS Skills
Somone who knows all the theory can pick up CVS, xUnit, Test::Builder whatever without much trouble. It doesn't work the other way around.
stare at you blankly if you ask them about red-black trees. That might be OK depending upon what their work requires them to do.but you have no real way of knowing what their work requires of them and when a CS grad would have said "aha this would be much faster with a red-black tree" and make what seemed impossible, possible.
I worked somewhere that use Delphi/Object Pascal (very similar to Java). It has no hash data structure in it's standard library but it had associative arrays. They are implemented as arrays of (key, value) pairs. Which is fine for a short list but very bad for a long one. Most of the coders there had never heard of hashes and didn't even know what they were missing.
Joel Spolsky talks about this stuff in his graduates from Java-only schools. Basically, when he interviews them and throws them a question that require recursion (or pointers), if they struggle, he can't tell if it's because they're smart but recursion wasn't an impportant part of their education or if they're someone who'll never grok recursion.
lambda-the-ultimate has lots of discussion and links to even more discussion about this article.