I recently read this article: Why The New Guy Can’t Code (the article is only the top 25% of the page, the rest is comments, don't be intimidated, it's not that long)
The gist of it is that many new hires can't program (as discussed in this older article: Coding Horror: Why Can't Programmers.. Program?, again that page is mostly comments).
Both articles blame the interview process: potential employees are given riddles (3 lights, 3 switches or 3 doors, 3 doormen type stuff) instead of technical interviews, which does not actually test a programmer's ability to program, so many new hires are only hired because they knew the answers to some common riddles. So the push is to bring back the technical interview and get away from the riddle interview introduced in the 1990s by Microsoft, then perpetuated by Google.
But the first article goes a step further, and makes this statement:
I'm pretty on the fence about this statement. I do believe that you shouldn't hire somebody who has no interest in programming outside of school or work, but I don't think gaining "real-world users" is as easy to do as the article makes it seem. Or am I wrong? Maybe I haven't programmed a "real" enough application in my spare time?So what should a real interview consist of? Let me offer a humble proposal: don’t interview anyone who hasn’t accomplished anything. Ever. Certificates and degrees are not accomplishments; I mean real-world projects with real-world users. There is no excuse for software developers who don’t have a site, app, or service they can point to and say, “I did this, all by myself!” in a world where Google App Engine and Amazon Web Services have free service tiers, and it costs all of $25 to register as an Android developer and publish an app on the Android Market.
What do you guys think?