The Microsoft interview is a job interview technique used by Microsoft to assess possible future Microsoft employees. It is significant because Microsoft's model was pioneering, and later picked up and developed by other companies including Amazon, Facebook, and Google.
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.
Joel Spolsky phrased the problem as identifying people who are smart and get things done while separating them from people who are smart but don't get things done and people who get things done but are not smart.
Interview questions previously used by Microsoft
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.
Below is a small sample of questions that a candidate might be asked to answer during the second-round interview:
||This section may contain excessive, poor, irrelevant, or self-sourcing examples. (May 2012)|
- What is the cosine law and how do you use this in real life situations?
- Design a cellphone for a blind person.
- Design a music system for a car. What are the features? Draw a picture.
- Design a GPS navigation unit for a hiker.
- Design a communication device for Canadian park rangers.
- Design a remote control for an automatic window-blind system.
- Design a TV Remote Control with Two Buttons.
- Design a coffee maker that will be used by astronauts.
- Design an alarm clock.
- Design a parachute.
- Design an alarm clock for a blind person.
- Design a search function.
- Design a website for a library.
- Design an ATM for children.
- What method would you use to look up a word in a dictionary?
- What are examples of poorly designed software?
- Design an instant messaging system.
- I am your grandmother. Describe what MATLAB is to me.
- How would you explain what a database is to a 5-year-old?
- How would you explain computer networking to a kindergarten kid?
- What is your favorite software, and how would you improve it?
- Write code for an electronic messaging board. What happens when a user logs on?
- Develop an algorithm for selecting objects in Visio.
- Tell me about a time when you made a decision and later found out that it was incorrect. What did you do to resolve the issue?
- Suppose you are one week away from the product shipping date and discover a bug in your software. What do you do?
- You have a linked list and don't know how long it is; how do you find the middle of it?
- How would you test a keyboard?
- How would you test a pen?
- Write code for finding a duplicate in an array.
- Write code that returns the length of a string without using any built-in functions.
- Reverse a singly linked list with and without using recursion.
- Determine if a binary search tree is well formed.
- Reverse every word in a string (abc def becomes cba fed).
- Write a function that returns the angle between the hour and the minute hands of a clock, given input of the time.
- Write a function that takes a string consisting of numeral characters and returns all possible alpha character strings of same length as input that correspond to the keypad of a typical telephone.
- Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval?
- How would you test an elevator?
- How would you test a vending machine?
- How would you test a program that takes in two points and outputs the distance between the two points?
- Test the Windows scroll bar.
- Switch every pair of words in a string ("ab cd ef gh" becomes "cd ab gh ef").
- Write the function for strstr function (finding a substring inside a string).
- Reverse the order of words in a string ("ab cd ef gh" becomes "gh ef cd ab").
- Write the function for string comparison. How would you test it?
- Write a function to zero all duplicate values in an integer array. How would you test it?
- Write a function that compares two strings and returns a third string containing only the letters that appear in both.
- Find cycles in a singly linked list, using minimal storage.
- Shift all elements of a circular array by k bytes, using no extra memory.
- For an array of size n, print all pairs that add to k. (then, do the same thing with a sorted array.)
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.
Microsoft provides a list of suggested reading to prepare for the interview. A sample is given below:
- Writing Solid Code, Steve Maguire.
- Code Complete, Steve McConnell.
- Testing Computer Software, Cem Kaner.
- All I Really Need to Know in Business I Learned at Microsoft, Julie Bick.
- Business @ the Speed of Thought, Bill Gates.
- The Road Ahead, Bill Gates.
- Algorithms in C, Robert Sedgewick, eds. Addison-Wesley, 1990.
- Essential .NET Vol 1 The Common Language Runtime, Don Box Addison-Wesley, 2003.
- Lessons Learned in Software Testing, Cem Kaner, James Bach, Bret Pettichord Wiley Computer Publishing, 2002.
- Mythical Man-Month, Anniversary Edition, Frederick P. Brooks, Jr. Addison-Wesley, 1995.
- Introduction to Algorithms Second Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein MIT Press, 2001.
- The Art of Computer Programming, Donald Knuth Addison-Wesley.
- How to Break Software, James Whittaker.
- How We Test Software at Microsoft, Alan Page, Ken Johnston, Bj Rollison.
- Cracking the Coding Interview, Gayle Laakmann McDowell
- Cracking the PM Interview: How to Land a Product Manager Job in Technology, Gayle Laakmann McDowell, Jackie Bavaro
- Decode and Conquer: Answers to Product Management Interviews, Lewis C. Lin
- Applicants blog after Google interview.
- 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 68–69.
- Spolsky, Joel (October 25, 2006). "The Guerrilla Guide to Interviewing (version 3.0)". Retrieved September 20, 2009.
- 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 (2009-02-10). "Why Are Manhole Covers Round?". Joblossguide.com. Retrieved 2011-04-08.
- Microsoft College Careers. The Interview — First Round. Retrieved from the World Wide Web on January 16, 2006.
- Job Interviews Get Creative, NPR 2003. Retrieved from the World Wide Web on January 16, 2006.