I was interviewed there a few weeks ago and the questions I got were much more related to the team's tasks. Most were coding but a few where design architecture but all were quite relevant (ie no linked list stuff, though there was a BST question).
Microsoft Job Interview Questions
21–30 of 36 posts
Re: Microsoft Job Interview Questions
#22Earlier quoted context omitted.
"Gets-things-done" people prepare for technical interviews, such that they don't flub simple questions. The danger for the employer is that lots of Computer Science PhDs end up not writing much code during their research, and may not be a good fit at many tech employers. "Interview for Smart and Gets Things Done" is an accurate explanatory abstraction over what good interviewers do, but it's not prescriptive enough t…
"'Gets-things-done' people prepare for technical interviews, such that they don't flub simple questions." So, let's be clear: you're admitting that you're screening for a trait that you assume is correlated with the trait that you actually want. I don't grant the assumption, but it should at least be explicitly stated. "The danger for the employer is that lots of Computer Science PhDs end up not writing much code dur…
The "reverse-a-linked-list" question is an attempt at "minimal coding question that anyone should be able to do in 15 minutes at a whiteboard". It's an indicator, a mark of the ability to think on your feet and understand the basics -- think of it as the "pons asinorum" of programming. (cf http://en.wikipedia.org/wiki/Pons_asinorum)
If you're going to demand argument-from-authority, I've probably interviewed more than 200 PhD's for various positions over the last 30 years, and a statistically significant number of them were unable to pass a basic set of tests that history has shown to indicate the ability to function in an industrial-style software development environment.
Industry demands a different skill set than research; not better, not worse, just different.
Re: Microsoft Job Interview Questions
#23Earlier quoted context omitted.
"'Gets-things-done' people prepare for technical interviews, such that they don't flub simple questions." So, let's be clear: you're admitting that you're screening for a trait that you assume is correlated with the trait that you actually want. I don't grant the assumption, but it should at least be explicitly stated. "The danger for the employer is that lots of Computer Science PhDs end up not writing much code dur…
I think by and large we agree: It's wrong to expect memorized answers or to ask questions that are so narrow that they only test whether a candidate spent time studying. I'd even go so far as to say that algorithmic questions are probably not good indicators for skill at many kinds of work we would call "programming"---i.e. Programming skill is more heterogeneous than many interviewers admit. We shouldn't expect a jQ…
I think my primary argument is that it's basically impossible to assess "intelligence" at a 30-minute white-board session. There are too many other factors: thinking style, nerves, fear of speaking, etc. But most interviewers will flip the idiot bit if you don't answer their pet algorithm question quickly enough; it can be very difficult to come back from that kind of deficit.
It's usually pretty easy to tell if someone can't code -- you give them a straightforward problem (no "aha" moment required), and make them write the code. If you're really worried about it, give them a phone-screen problem that requires coding, then make them write a variant of the solution during the interview.
For "intelligence" testing, I like to give design problems, since they're far more representative of what will happen on the job. For these, I usually reach back into the grab-bag of recently-solved problems, and ask them to sketch out a solution, then iterate. If their solution is better than my own, that's a win. If it's the same, that's good too. If they just can't come up with something reasonable...well, we have a problem.
But note what you don't see here: there are no situations where I ask a question that requires a moment of algorithmic brilliance. That's just too random. Google can get away with that kind of stuff, because they get thousands of resumes a day, and can't possibly hire every good engineer that applies. For the rest of us, we have to be a bit more intelligent.
Re: Microsoft Job Interview Questions
#24Earlier quoted context omitted.
"'Gets-things-done' people prepare for technical interviews, such that they don't flub simple questions." So, let's be clear: you're admitting that you're screening for a trait that you assume is correlated with the trait that you actually want. I don't grant the assumption, but it should at least be explicitly stated. "The danger for the employer is that lots of Computer Science PhDs end up not writing much code dur…
If the job involves writing code, you're going to be asked to write code in the interview. The "reverse-a-linked-list" question is an attempt at "minimal coding question that anyone should be able to do in 15 minutes at a whiteboard". It's an indicator, a mark of the ability to think on your feet and understand the basics -- think of it as the "pons asinorum" of programming. (cf http://en.wikipedia.org/wiki/Pons_asin…
" I've probably interviewed more than 200 PhD's for various positions over the last 30 years, and a statistically significant number of them were unable to pass a basic set of tests that history has shown to indicate the ability to function in an industrial-style software development environment."
What you're saying is that a "significant" number of PhDs (from a small sample that you have interviewed), have not passed the tests that you put in front of them. That's a long way from the argument that PhDs tend not to thrive in industry.
Ignoring the fact that you're begging the question (are your tests any good?), I would wager that a "significant number" of interviewees with any degree would fail your tests. The question is, do PhDs fail at a higher or lower rate? I very seriously doubt you have enough data to substantiate your claims about the industry-worthiness of people with doctoral degrees.
Re: Microsoft Job Interview Questions
#25Earlier quoted context omitted.
"Third, all of the questions listed, no matter how trivial they seem, are dispositive. I've interviewed engineering candidates with PhD's from top tier universities who couldn't reverse a linked list when asked, or who couldn't even explain basic concepts in their putative focus areas. You have to ask the seemingly stupid stuff -- it's a continual surprise." While there are certainly idiots with PhDs, if you've got a…
Reversing a linked list is not an Alan-Turing-level problem. I've used the reverse-a-list problem (and others of a broadly similar kind) in interviews. It shouldn't matter at all if a candidate hasn't read or written any list-manipulation code in years; that gives them the chance to sit and scribble some diagrams for me and work out how to do it. I don't mind much if they don't end up with a beautifully neat solution…
I'm not suggesting that it is. The problem is, people are asking much harder questions -- questions that require "aha" brilliance -- and using it as a proxy for intelligence. That's stupid.
Hell...it's not even a deal-breaker if someone has to struggle a little to work out the algorithm for reversing a list, so long as they get it right. The problem is that if you spend more than 5 minutes (or whatever) doing it, 99% of nerds are going to flip the idiot bit on you, and it's time for "Do You Have Any Questions For Me?"
Once you've set up the game such that a candidate has to memorize the answer to "easy" questions to perform, there's no end to the regurgitation that could be required. Before long, people are committing obscure algorithms to memory, because "someone might ask", and they don't want to appear to be stupid. It's a waste of time and energy for everyone involved.
Re: Microsoft Job Interview Questions
#26Re: Microsoft Job Interview Questions
#27While they seem like pointless questions for some jobs, this list is a conglomeration of questions for the three types of positions (Dev, Test and PM).
The questions are made to be very difficult because the interviewee is supposed to struggle and have to verbalize what he/she is thinking. If the questions are less strange there is the chance that a candidate will have seen them before and know how to solve them off the top of their head. That's only useful for weeding out people who can't program at all. The verbal communication is just as important as actually solving the problem correctly. Microsoft has a pretty high confidence in it's mentoring system, it believes that teaching the actual code is much easier than teaching how to think systematically.
I was given questions that took me > 6 hours to fully complete when I went home and did them. There is no way the interviewers actually wanted all the code, just a discussion.
Some of the "Gotcha" questions are from earlier in Microsoft's hiring practices, so take these lists with a grain of salt. Though they are wicked fun to try to solve them all.
HR at MS is very good at their job. They keep track of everything about who talked to whom.
Re: Microsoft Job Interview Questions
#28My problem with the coding questions (other than the fact that everyone has seen them) is that they're too shallow. So the questions are binary. If you can't do them, interview over, sure. But if you can do them they don't say that much. They're almost short enough to count as trivia. I prefer asking for a program that will take about an hour, but will also get a range of correct answers and mistakes. The ideal quest…
Could you give some concrete examples of the sorts of programs you mean?
So there's file I/O, string matching, string storage, counting probably means a simple data structure, and there's formatted output to print the number of occurrences.
You can also ask deeper questions, such as the big-O of the algorithm/data structure they come up with, and what happens if the file is too large to load in main memory.
Perl programmers (for example) will laugh at this question, but in my experience that puts them ahead of the rest of the interviewing pack.
I ask a similar question in my interviews that has some simple math instead of strings.
I don't demand that my interviewees can remember the name of every library function, but if there's too much handwaving I get suspicious.
Re: Microsoft Job Interview Questions
#29Write code that returns the length of a string without using any built-in functions. It took me a while to realize that they're probably not counting infix operators that behave like functions except for the syntax. Accomplishing this task in Lisp or Haskell would be nearly impossible.
(defun strlen (str)
(loop for i from 0
for char across str
finally (return i)))
Works in my emacs... I (require 'cl).Re: Microsoft Job Interview Questions
#30Earlier quoted context omitted.
Reversing a linked list is not an Alan-Turing-level problem. I've used the reverse-a-list problem (and others of a broadly similar kind) in interviews. It shouldn't matter at all if a candidate hasn't read or written any list-manipulation code in years; that gives them the chance to sit and scribble some diagrams for me and work out how to do it. I don't mind much if they don't end up with a beautifully neat solution…
"Reversing a linked list is not an Alan-Turing-level problem." I'm not suggesting that it is. The problem is, people are asking much harder questions -- questions that require "aha" brilliance -- and using it as a proxy for intelligence. That's stupid. Hell...it's not even a deal-breaker if someone has to struggle a little to work out the algorithm for reversing a list, so long as they get it right. The problem is th…
As for "aha! brilliance", the trouble with that is that the variance is so large; someone very good may well take a while, and someone not so good may well happen to get there quickly.