Over the past year, I conducted well over thirty technical phone screens in hope of finding a single, somewhat-skilled Java development contractor. The majority of those interviewed were Indian people who were working in the US on H1B visas. Interview results ranged from the mediocre down to the abysmal. The resumes of all these candidates claimed several years of work exclusively in Java, and many also purported to have had lead/architect roles.
My screening technique is an insult to a good developer. I ask questions that anyone who has written any decent Java code should be able to answer without pause. For example, I email a small snippet of code containing a try/catch block and ask the candidate to trace through the flow of program execution if the checked exception is thrown. Literally half of candidates think that program execution terminates whenever a catch block is entered and the contents of that block done executing. How could someone have written any quality code and not know this? I'm not asking Java trivia.
What's going on here? If I was going to travel half way around the world to work as a Java developer, I'd be sure to read a couple of Java books on the plane. Is there something uniquely American/Western about expecting people to "know their stuff"? I'd attribute my observations to general, world-wide idiocy except that the rate of ineptitude relative to claimed experience was far worse with Indian candidates. Perhaps a Mid-Western, Fortune 1000 company isn't a compelling place to spend six months on a contract? The role was to do back-end engineering work on a pretty large, well-know site -- something I would think would be compelling compared to the average "maintain a crappy legacy banking system" gig. If I claimed to be a Java developer and didn't know much Java, I'd be so embarrassed that I'd study every night to achieve competence.
I feel like such an Ugly American asking this question, but I can't discount my observations. What am I missing? Is there some selection bias in my data set that I'm unaware of? I also find a general lack of creativity in these candidates, but I attribute that to the rote nature of Indian education (at least that's what I've read about most schooling in India).
Note: I'm not trying to start a "Java sucks" language war here...When looking at a candidate for the long term, I don't care if he/she knows Java at all. However, when you claim to have done Java for five years and don't know basic stuff, I have to question if you know anything at all.