Over the past few weeks I've met with several people who are all having the same headaches
1. Hiring talented coders 2. Retaining talented coders
The first is usually down to lack of talent (coders directly out of college just don't have the "new " skills (for example) in things like ajax, ruby, but have core knowledge of things like C, and what I call "old" languages), and also salaries wanted, especially if you are trying to sell abroad and compete with pricing abroad, i.e brazil, russia, ukraine offer lower prices these days.
My thoughts about this
When hiring freshers, I don't think you should look for what languages they know. Instead you should - try to gauge how much of the fundamentals they know - if they (freshers) are self-learners
Point 1 can be checked by asking them about sorting/searching algorithms or networking or process management (basically the topics which are covered in their operating system course or their data structures course).
Point 2 can be checked by seeing if they have contributed to any free software project and actually asking them to show their code (it is after all free software and there is no NDA). If a fresher has worked on an open source project, it usually means - he knows about version control - he knows about mailing lists - he can work without much supervision - he can work with a distributed team - and most importantly, he can work with a team
In the email, the original poster had also mentioned this point
the big guns (tcs, infosys etc) hire like 10K users in a go, and its seems that the prospects of getting a good wife/husband are directly linked to the name of the company on the CV (again this maybe biased, but am seeing it more and more).