I found some interesting videos yesterday of the Microsoft interview process.
Zoe Goldring and Gretchen Ledgard – What is it like to interview at Microsoft? (Video)
Zoe Goldring and Gretchen Ledgard – Riding the Recruiting Shuttle (Video)
Gary Daniels and Evan Goldring – Mock whiteboard problem (Video)
The third one is by far the most interesting since it disects one of the technical interview questions. Although I am pretty sure anyone who has got to that position knows how to write algorithms and convert them into code, I could see how it allows the interviewer to get into the mind of the candidate.
Since I am no C programmer, and therefore would not use pointers, the technical purpose of the question would be lost on me. I found one of the responses at Channel9 to be particularily interesting…
“How is the algorithm to handle punctuation and whitespace? My thoughts are to strip them off prior to the forward/reverse iterative checking loop.
When dealing with TCHAR’s the issue of internationalization needs addressed; this introduces some other interesting concepts.
Should case be considered? Some languages have single character lower case but that same “character” in upper case is actually two characters (ala the German ß (sharp-s). This makes for interesting buffer manipulation.
Should accented characters be accepted as equivalent to non-accented characters? In Turkish, there are four representations of the letter ‘i’ that are all equivalent if you are ignoring case.
Should we even consider the culture of the source string, or assume the current culture?
Last, but not least, is the issue of string length. These days, I am surprised that the interviewer/interviewee did not add a string length parameter, stipulate the string is null-terminated, or better yet #include strsafe.h above the function prototype.”
I’m also wondering if asking for these types of clarifications is too much – the interviewer may be thinking “get on with it already, I just want to know if you understand pointer arithmetic!””
Since Microsoft creates software for an international community I doubt analysis like this would be lost on the interviewer. It also shows that the candidate is comfortable enough with programming (and pointers in this case) to move on and solve the real problem.