It's because whatever you learn in the first 6 months on the job will stick with you your entire career. If you've been a programmer for a long time, you've probably noticed some people are "vi" guys, others are "Emacs" guys, still others use GUIs. Chances are these are the tools they learned in the first six months on the job. In my case, my first job was in school. I learned vi... so I'm a "vi" guy. I still use it everyday.

I was fortunate to have a very good mentor when I started working. Such a thing is rare today. I had a really hard job with low tolerance for mistakes. I learned quickly to write bug free code and use good designs, or face the consequences. Back then, the term Politically Correct wasn't invented, so critical review was very critical - bordering on abuse. Not that I condone such things, but it was an experience that forced me to pay attention to my job and do the best I could do every day. I'm thankful for the experience and I'm better for it.

If you have the responsibility to hire a fresh college grad, you should be aware that whatever job you give him/her will be the basis of their career for the most part. The job should be as challenging as possible. If you hired a computer science guy, give him assignments to write code - even if it's just fixing bugs. Do not, give him a testing assignment. He might become a test engineer instead of a software engineer. Being a test engineer is a good thing, but if you studied software engineering and want to write code, the transition to writing code will be very hard.

So, if you are an employer, please take care of your new hires. If you are a new hire, seek the most demanding situation you can. It will serve you well.