A coding interview, programming interview or Microsoft interview is a technical problem-based job interview technique to assess potential employees. The technique was pioneered by Microsoft, 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.
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 (such as Which of the fifty states would you remove?) 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:
- What is the cosine law and how do you use this in real life situations?
- Design a GPS navigation unit for a hiker.
- Design a communication device for Canadian park rangers.
- Shift all elements of a circular array by k bytes, using no extra memory.
Manhole cover question
The question of why manhole covers are typically round (in some countries) 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 ("Manhole covers are round because manholes are round.") to the philosophical.
Reasons for the shape include:
- A round manhole cover cannot fall through its circular opening, whereas a square manhole cover may fall in if it were inserted diagonally in the hole. The existence of a "lip" holding up the lid means that the underlying hole is smaller than the cover, so that other shapes might suffice. (A Reuleaux triangle or other curve of constant width would also serve this purpose, but round covers are much easier to manufacture.)
- Round tubes are the strongest and most material-efficient shape against the compression of the earth around them, and so it is natural that the cover of a round tube assume a circular shape.
- A round manhole cover has a smaller surface than a square one, thus less material is needed to cast the manhole cover, meaning lower cost.
- The bearing surfaces of manhole frames and covers are machined to assure flatness and prevent them from becoming dislodged by traffic. Round castings are much easier to machine using a lathe.
- Circular covers do not need to be rotated to align with the manhole.
- A round manhole cover can be more easily moved by being rolled.
- A round manhole cover can be easily locked in place with a quarter turn (as is done in countries like France), which makes them hard to open without a special tool. Lockable covers do not have to be made as heavy, because traffic passing over them cannot lift them up by suction.
The practice of asking these sorts of so-called lateral thinking questions was later formally discouraged at Microsoft.
Microsoft provides a list of suggested reading to prepare for its interview. Notable examples include:
- McConnell, Steve (2004) Code Complete (Microsoft Press, 2nd ed.) ISBN 978-0-7356-1967-8
- Gates, Bill, Hemingway, Collins (1999) Business @ the Speed of Thought[ISBN missing]
- Gates, Bill (1995) The Road Ahead[ISBN missing]
- Brooks Jr., Frederick P. Mythical Man-Month, (Addison-Wesley, Anniversary Edition), 1995. ISBN 978-0-201-83595-3
- Knuth, Donald (1968-) The Art of Computer Programming, (Addison-Wesley). ISBN 0-201-03801-3
- Applicants blog after Google interview. Archived March 13, 2011, at the Wayback Machine
- Job Interviews Get Creative, NPR 2003. Retrieved from the World Wide Web on January 16, 2006.
- John Mongan, Programming Interviews Exposed: Secrets to Landing Your Next Job (2nd ed.), Wrox, ISBN 978-0-470-12167-2
- McDowell, Gayle Laakmann (2015). Cracking the coding interview : 189 programming questions and solutions (6th ed.). Palo Alto, CA. ISBN 978-0-9847828-5-7. OCLC 913477191.
- Poundstone, William (2003). How Would You Move Mount Fuji. Boston: Little, Brown and Company. pp. 50–90. ISBN 0-316-91916-0.
- Poundstone, page 62.
- Poundstone, page 67.
- Poundstone, William (2003). How Would You Move Mount Fuji? Microsoft's Cult of the Puzzle – How the World's Smartest Company Selects the Most Creative Thinkers. Little, Brown. ISBN 0-316-91916-0.
- Davis, Jim (February 10, 2009). "Why Are Manhole Covers Round?". Joblossguide.com. Archived from the original on June 12, 2011. Retrieved 2011-04-08.