I work in an IT shop, and over the years I have noticed that fresh-out-of-college programmers seem to fall into one of two camps:
The "efficiency freaks" and the "get it done" programmers.
Efficiency freaks are searching for the holy grail of efficiency: code that when it executes consumes 0 CPU seconds. They will constantly rework their code to wring out even the most minor gains in efficiency. They have no sense of deadlines (you can't rush perfection

) and don't like to unit test because they "know what they are doing". Their code is generally unreadable, does not follow standards, and is unmaintainable. They often view standards as inneficient and do not follow them. They tend to be very possesive of their work and take any suggestions as personal insults. These are usually the stereotypical introverted programmer types.
"Get it done" programmers are the people who fell asleep in their lectures in college and didn't start their assignments until the night before. As soon as they got output, they stopped working. At the workplace, they can best be described as lazy. Being that they have no Playstations or fridges full of beer to distract them at work, they tend to finish assignments early, scan their unit test results, and declare themselves done. They will spend the time between when they (allegedly) finish their work and the deadline loudly complaining about how boring their job is. Their stuff generally doesn't work. Their code is also unreadable, but this time because they don't know or care about standards. They tend to agree with suggestions when made, then forget to make them.
Both groups don't understand how to really test, as their college assignments were short and simple. The also have no appreciation for how standards allow you to be able to jump into someone else's code and quickly make changes.
BTW, I was a "get it done" programmer out of college.