I think the reason so many companies resort to asking candidates to do a programming project for the interview is because they are lazy and don't want to take time to interview someone, or they suck at interviewing, or both. Bottom line, if you can't judge someone's ability by talking to them it's YOUR fault. You suck at interviewing. Last time I was looking for a job a company I was interested in gave me this massive assignment and I just told them to take a hike. I'm not spending all day writing some code for you for free sorry. Sure there are lots of horrible programmers out there, and you'll end up hiring them if you suck at determining what their skill level is via a conversation. But I hope other GREAT developers follow suit with me. Refuse these stupid programming challenges.