Every day, I hear one candidate ask another, "Have you interviewed with Company X? What were you asked?" This would be a perfectly reasonable question, if it weren't for the fact that they were doing so on a website with thousands of interview questions. Why get 5 questions when you can get hundreds? The truth is that, at most companies, there's no grand system. There's no structure. No one saying, "ok, now, every candidate will get one networking question and it will cover TCP/IP."
There's just... people. Interviewers take a bit of interviewing training, that usually covers oh-so-helpful legalese like "asking candidates about their marital status is illegal", and then off they go! Interviews ask whatever they want to ask. No system, no structure. Just a bunch of people making up their own minds.
Next time you're about to ask someone else what they were asked, stop and think: will this person tell me anything new? Relying on one person's experience for your preparation is much, much worse than relying on the experiences of many.
Instead, do the following:
- Check CareerCup.com for programming interview questions, but don't limit yourself to just your company's questions. If you're interviewing for Amazon, be sure to check out the Microsoft Interview Questions and Google Interview Questions. Companies are far more similar than they are different.
- Review the questions to get a general feel for what the company likes to ask. If you're doing an Amazon interview, for example, you may notice that Amazon loves object oriented design questions. That'll give you a good idea of where to focus.
- Practice! Don't worry about getting the answer to each and every question. Answers won't help you. You need to solve the problems yourself, so you learn the general techniques.
While your questions may vary based on your background, your interviewer, the team, or the prospective company, interview questions are actually more consistent than not. Interviewers don't like coming up with new interview questions for every candidates; it's hard, and results in poorly calibrated feedback.
As far who "invents" the questions, the answer is that it's rarely the interviewer. Employees talk, and questions are shared across a company. When people switch companies, they bring their favored interview questions with them.
I'm still asking my five favorite questions in my mock programming interviews. I don't change them frequently because calibration is more important than creativity. I know how to ask the question, how to lead a candidate to the solution, and exactly how well you did relative to other people. Why change?