I’m starting to sound like a grumpy old man. (Those that know me should stop nodding their heads and agreeing now, please.) This is another “things were better in my day” post.
As I previously mentioned, both graduates and companies are complaining that university courses are not vocational enough. I personally dispute that. However I am generally in agreement with Joel Spolsky when he says that “Java is not, generally, a hard enough programming language that it can be used to discriminate between great programmers and mediocre programmers.”
Joel on Software: The Perils of JavaSchools
This all comes back to knowing “principles” rather than just implementation details. Java is a fine language for doing “real” things in, but since you don’t need to know much about pointers, recursion and some fairly standard algorithms, people tend not to learn the fundamentals. This is a great shame.