When I interview, I start by asking the applicant about their general background. What projects they have worked on.
I then try to pick something from that specific knowledge domain and ask about that. I typically ask them to describe, in detail, a project they have been involved in, or ask a question about it.
My personal experience: most know nothing about the specific domain in which they have participated.
Some of the answers I've received were embarresing. People volunteering knowledge in C++ STL and BOOST, working with smart pointers, who have no idea how shared_ptr works or what its drawbacks are. People saying they used multiple inheritence and virtual inheritence (I would never bring it up on my own as I know many people consider it a niche) who don't understand how virtual inheritence actually work. People who built communication platforms for VOIP who cannot answer why/whether/when UDP is better than TCP.
So, no, programmers suck even when you ask them about their own knowledge domain. I usually end up recommending someone without experience but with the right spark in their eyes, figuring my time is better spent growing a bright newbie than fighting with bad habits by a someone with good-for-nothing "experience".
Shachar
Shachar