Gayle Laakmann McDowell That’s not the point. The point is more general: Companies are asking questions which have nothing to do with the actual job. Because they have an insufficient understanding of informatics. I would have loved to be asked about algorithms and complexity theory, it is something every programmer should know. Companies did the opposite with me: They asked me a lot of questions like “do you have experience with maven?”. Well if the answer is no, how about you take time out of your busy day and give me someone for two hours who gives me an introduction to maven after you hire me? No one comes in and is effective from day one. Everybody needs time to learn before being really effective. This filtering out with experience of specific technologies is very flawed in my oppinion.
Good programmers are not the ones who know lots of technologies, but the ones who have strong foundations in informatics. That I never heard about a company asking about these foundations is not a good thing in my oppinion. It’s a disease. We shouldn’t hire people based on knowledge about hip technologies. We should hire them based on understanding of informatics. Someone who has that understanding can learn every specific technology very quickly. Someone who doesn’t may know the technology, but he will almost certainly not be able to apply it as well as someone who has that understanding.
This is exactly why so many companies still dismiss experience as a PhD student in an IT related subject out of hand as “just academic experience not really preparing you for practical software development” or something to that effect. I learned something new about software development in the company I worked in, don’t get me wrong. But I learned a lot more about it in my time as a PhD student. And companies dismissed that out of hand pretty much. Because it’s just theory. But it’s not. There’s nothing you learn more from than solving a complex problem on your own and failing over and over until you get it right. And there’s no position I know where you do that as often as when you are a PhD student.
Challenging questions are stupid if they have nothing to do with the job. I was asked to solve a simple mathematics problem in an interview as a trainee for Java-based web-service development. What? You want me to do calculations by hand? Really? I know the point is to see how you react under stress. To take you out of your comfort zone. But that’s ridiculous. If I get hired as a Java developer, I shouldn’t be out of my comfort zone when working in your company if I know a lot about Java.
Also, we had an admin at the university who knew more about administrating Linux systems than everyone else combined. This guy could literally almost not talk in front of people. This guy would have never passed a traditional interview. But would I want him in my company if I had one? Yes. Oh yes. Over any smart-mouthed Bachelor graduate with half-knowledge about informatics who can coin pretty phrases and get along with everybody. Any day.
In summary: I think this “clever” way of interviewing people is nonsense. Keep it focused on the job. There is a job you want me to do. Focus your questions on that job. Not on anything else.
Just my opinion as someone who has been in over 30 interviews applying for software developer positions. I eventually found a job: In a company which didn’t know a lot about informatics either, which is why it didn’t work out long-term, but at least was willing to help people learn instead of expecting them to know everything coming in.