When I was a new grad, I thought that I knew everything, but taking a class in a subject does not make you a subject matter expert. I did write more code when I was younger, but it was pretty crappy and hacked together. It worked "fine" mind you, but I pitty the fool who has to maintain it. comments? Technical Design Document? Those did not exist.
google around for something called the 10,000 hour rule, but it basically says that to become an expert in something you need to have about 10,000 hours of experience in it. That's about 5 years if you work a 40 hour week. Take out meetings, coffee breaks, lunches, "compiling time" (http://xkcd.com/303/ ) and what not and a really EXPERIENCED programmer has about 7 to 10 years of professional experience.
I personally have had no trouble transitioning languages or technologies over my 14 years of experience. If you understand the concepts of software, then everything else is pretty straight forward. A short book on the intricacies of a language such as memory management, basic libraries (network, DB, etc), syntax, compilation and a quick tutorial project should be all that an experienced programmer needs in order to out perform a recent college grad. It should not take more than a week or two to get up to speed and start being effective, but that's about it.