Coding interview


A Coding interview, programming interview or Microsoft interview is a technical problem-based job interview technique pioneered by Microsoft to assess potential employees. Microsoft's interview technique was innovative, and subsequently developed by other large technology companies including Amazon, Facebook, and Google. Coding interviews test candidates' technical knowledge, coding ability, problem solving skills, and creativity, typically on a whiteboard. Candidates usually have a degree in computer science, information science, computer engineering or electrical engineering, and are asked to solve programming problems, algorithms, puzzles. Coding interviews are typically conducted in-person or virtually.

Innovation

The Microsoft Interview was a pioneer in that it was about technical knowledge, problem solving and creativity as opposed to the goal and weaknesses interviews most companies used at the time. Initially based on Bill Gates' obsession with puzzles, many of the puzzles presented during interviews started off being Fermi problems, or sometimes logic problems, and have eventually transitioned over the years into questions relevant to programming:
Puzzles test competitive edge as well as intelligence. Like business or football, a logic puzzle divides the world into winners and losers. You either get the answer, or you don't... Winning has to matter.

Example interview questions

The questions asked during the Microsoft Interview are crafted to determine a candidate's problem solving, coding and design abilities. Eccentric questions test a candidate's ability to come to a decision and articulate it. Candidates answering questions should consider the use of technology in the present and future, and user scenarios. Some questions involve projects that the candidate has worked on in the past.
The Microsoft Interview is intended to seek out creative thinkers and those who can adapt their solutions to rapidly changing and dynamic scenarios.
Typical questions that a candidate might be asked to answer during the second-round interview include:
If the interviewing position has specific programming language requirements, the candidate is expected to know those languages and solve the questions with it. If the interview is for general programming or development position, a thorough knowledge of one mainstream language such as C, C++, C#, or Java may be enough to get by. An interviewer may also allow use of other popular languages, such as JavaScript, PHP, or Perl.

Manhole cover question

The question of why manhole covers are typically round was made famous by Microsoft when they began asking it as a job-interview question. Originally meant as a psychological assessment of how one approaches a question with more than one correct answer, the problem has produced a number of alternative explanations, from the tautological to the philosophical.
Reasons for the shape include:
The practice of asking these sorts of so-called lateral thinking questions was later formally discouraged at Microsoft.

Interview resources

Microsoft provides a list of suggested reading to prepare for its interview. Notable examples include: