Coding interview: Difference between revisions

Content deleted Content added
m Reverted edits by 148.87.1.170 (talk) to last version by CmdrObot
mNo edit summary
 
(406 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|Problem-based job interview technique}}
The '''Microsoft interview''' is usually divided into three phases. [[Microsoft]] generally seeks undergraduate college students with degrees in [[computer science]], [[computer engineering]], or [[systems engineering]] for the three main technical positions of Program Manager (PM), Software Design Engineer (SDE), and Software Design Engineer in Test (SDET). Because Microsoft recruits heavily from college campuses in the [[United States]], the first step in the interviewing process typically begins with college students attending a career fair on campus and submitting a [[résumé]] to recruiters. This is frequently held in conjunction with an on-campus information session about the company that gives students the opportunity to ask questions of current employees and to find out more about what Microsoft does. After the résumés have been collected, a select number of students are contacted for a first-round interview usually held on the candidate's college campus or over the telephone with a single recruiter. If candidates successfully complete the first-round interview, the third phase is the second-round interview, which is held in Microsoft's headquarters located in [[Redmond, Washington]].
{{Use mdy dates|date=May 2015}}
A '''coding interview''', '''technical interview''', '''programming interview''' or '''Microsoft interview''' is a technical problem-based [[job interview]] technique to assess applicants for a [[computer programming]] or [[software development]] position. Modern coding interview techniques were pioneered by [[Microsoft]] during the 1990s<ref name="time-2012" /> and adopted by other large technology companies including [[Amazon.com|Amazon]], [[Facebook]], and [[Google]].<ref>[http://ifdefined.com/blog/post/Google-interview.aspx Applicants blog] after Google interview. {{Webarchive|url=https://web.archive.org/web/20110313021040/http://ifdefined.com/blog/post/Google-interview.aspx |date=March 13, 2011 }}</ref><ref name=":0">[https://www.npr.org/templates/story/story.php?storyId=1405340 Job Interviews Get Creative, NPR 2003]. Retrieved from the World Wide Web on January 16, 2006.</ref> 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 [[Mathematical programming|programming]] problems, [[algorithms]], or [[puzzle]]s.<ref>{{citation |title=Programming Interviews Exposed: Secrets to Landing Your Next Job |author=John Mongan |date=December 11, 2023 |edition=2nd |isbn=978-0-470-12167-2 |publisher=Wrox |url-access=registration |url=https://archive.org/details/programminginter00mong_0 }}</ref><ref name=ctci>{{Cite book|title=Cracking the coding interview : 189 programming questions and solutions|last=McDowell|year=2015|first=Gayle Laakmann|author-link=Gayle Laakmann McDowell|isbn=978-0-9847828-5-7|edition=6th|___location=Palo Alto, CA|oclc=913477191}}</ref> Coding interviews are typically conducted in-person or virtually.
 
==The positionsInnovation==
Microsoft's interview style was distinctive in that it concerned technical knowledge, problem solving and creativity as opposed to the [[Job interview#Behavioral interview questions|goal and weaknesses interviews]] most companies used at the time. Initially based on [[Bill Gates]]'s obsession with puzzles, many of the puzzles presented during interviews started off being [[Fermi problem]]s, or sometimes logic problems, and have eventually transitioned over the years into questions relevant to programming.<ref name="Poundstone">{{cite book | last = Poundstone | author-link = William Poundstone | first = William | title = How Would You Move Mount Fuji | ___location = Boston | publisher = [[Little, Brown and Company]] | year = 2003 | pages = [https://archive.org/details/howwouldyoumovem00poun/page/50 50–90] | isbn = 0-316-91916-0 | url = https://archive.org/details/howwouldyoumovem00poun/page/50 }}</ref> As [[William Poundstone]] wrote, "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."<ref name="Poundstone" />{{rp|62}}
There are three general technical positions that Microsoft hires for. They are: Program Manager, Software Design/Development Engineer in Test, and Software Design/Development Engineer. Descriptions of each position can be found on Microsoft's College Careers website, which also includes interviews with current employees:
*[http://www.microsoft.com/college/ft_pm.mspx Program Manager]
*[http://www.microsoft.com/college/ft_softdesengtest.mspx Software Design Engineer in Test]
*[http://www.microsoft.com/college/ft_softdeseng.mspx Software Design Engineer]
 
== Questions ==
Microsoft also hires for non-technical positions and those who have an [[MBA]]:
The questions asked during a coding 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.<ref name=Poundstone />{{rp|67}} 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.
*[http://www.microsoft.com/college/ft_nontechpos.mspx Non-Technical Careers]
*[http://www.microsoft.com/mba/default.mspx Post-MBA Candidates]
 
A coding interview is intended to seek out creative thinkers and those who can adapt their solutions to rapidly changing and dynamic scenarios.<ref name=":0" />
==The first-round technical interview==
The first-round interview is generally held on the student’s college campus with a single recruiter, or over the [[telephone]], and can last for about thirty minutes. The candidate is initially asked to fill out an application form prior to the interview detailing work-___location (Redmond, Silicon Valley, North Carolina, Nebraska) and work-type preferences (Business initiatives, media center/gaming, [[operating system]], etc.). During this interview the recruiter attempts to determine if the candidate will be able to flourish at Microsoft. Some examples of questions that the recruiter will keep in mind or ask a candidate include (First Round 2006):
*What types of projects (academic or otherwise) have inspired you in the past?
*What are some self-directed missions that may have influenced your career direction?
*Did you have a moment of epiphany when you KNEW what you wanted to be when you grew up?
*How does Microsoft fit into your vision?
*What are some things that excite and motivate you?
*What are some examples of poorly/well-designed software? What makes the software this way and how would you change it?
 
Typical questions that a candidate might be asked to answer during the second-round interview include:<ref>{{Cite web |date=4 September 2024 |title=Coding Interview Questions |url=https://interviewquestionanswers.net/technical/java-interview-questions/ |publisher=OmniJobs}}</ref>
It is expected that the candidate research Microsoft's various businesses and product groups, and come prepared to speak in-depth about his/her résumé in addition to asking thoughtful questions. After the first-round interview, the recruiter will consider Microsoft's current business needs and evaluate whether they are in line with the candidate's qualifications and interests. The candidate can generally expect to receive the results of the first-round interview from the recruiter within about two weeks of the interview date (First Round 2006). If selected for a second-round interview, the candidate is invited to travel to Microsoft's headquarters located in [[Redmond, Washington]], for a second-round interview. The candidate is contacted by a Microsoft recruiting coordinator and a mutually agreed upon date is determined for the second-round interview. Travel and lodging arrangements are then processed and finalized. The maximum length of the candidate's interview trip can be up to three days and two nights, which includes one day to interview and one day to sightsee (Overview 2006).
 
* Design a GPS navigation unit for a hiker.
==The second-round technical interview==
* Design a communication device for Canadian [[park rangersranger]]s.
The second-round interview is held on Microsoft's main campus in Redmond, Washington. Candidates interviewing for the program manager position can be expected to answer detailed design questions that test the candidate's creative ability as well the attention that he/she pays to designing customer-centric products. The candidate is expected to provide reasons for features added to products designed and include explanations as to why a customer might want or need a particular feature. Candidates interviewing for the SDE and SDET positions can be expected to answer detailed coding and algorithm questions as well. Many of the questions asked of the candidate are purposely ambiguous and/or abstract. It is expected that the candidate ask thought-provoking questions of the interviewer in order to better answer the question. The candidate is normally given a marker, eraser, and a whiteboard to record his/her solutions and ideas to questions. The purpose is to allow the interviewer to observe how the candidate attempts to solve a problem and to follow the candidate's thought processes.
* Shift all elements of a [[circular buffer|circular array]] by ''k'' bytes, using no extra memory.
 
=== Manhole test ===
The interview day usually comprises of meeting with about three to five different employees within Microsoft. A typical schedule might include two interviews in the morning, one lunch interview, and two interviews in the afternoon. The lunch interview can take place in one of Microsoft's various in-house cafeterias or in a restaurant off-campus. In most cases the
Microsoft popularized the question of why [[manhole covers]] are typically round (in some countries) when they began asking it as a job interview question.<ref name="Poundstone" /> 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 [[tautology (rhetoric)|tautological]] ("Manhole covers are round because manholes are round.")<ref name="Poundstone" /> to the philosophical.
candidate will interview with two different product teams within a single product group or two entirely different product groups (FAQ 2006). It depends on the current business needs of Microsoft at the time of the interview and which needs best fit the candidate's skill set and interests. The candidate is notified on the day of the interview as to which position he/she will be interviewing for. This is generally the case if the candidate is interviewing for Software Design Engineer, Software Design Engineer in Test, or Program Manager Positions.
 
By 2012, the practice of asking [[lateral thinking]] questions had declined at companies including Microsoft and Google. A study by [[San Francisco State University]] associate professor of psychology Chris Wright found that puzzle interview questions annoyed job applicants. "Methods that had a transparent relationship between test content and job duties, such as interviews, work samples, and reference checks were perceived more favorably," Wright wrote in a research paper entitled "Why Are Manhole Covers Round? A Laboratory Study of Reactions to Puzzle Interviews". Poundstone, who had written puzzle interview guides for Microsoft and Google, referred to puzzle questions in 2012 as "a sort of fad" that lost popularity because of a lack of evidence of their effectiveness.<ref name="time-2012">{{cite magazine |last1=White |first1=Martha C. |title=No-Brainer: 'Brainteaser' Job Interview Questions Don't Work |url=https://business.time.com/2012/10/23/no-brainer-brainteaser-job-interview-questions-dont-work/ |access-date=July 4, 2022 |magazine=Time |date=October 23, 2012}}</ref>
==Interview questions==
The questions asked during the Microsoft Interview are crafted to determine how a candidate solves a problem. They are designed to evaluate a candidate's coding and design abilities. When answering design questions it is important for the candidate to be able to think about how the technology might be used both now and in the future. User scenarios are extremely important to consider. Some questions involve relating design questions with technical discussions of 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:
*Design a music system for a car. What are the features? Draw a picture
*Design a communication device for Canadian park rangers
*Design a remote control for an automatic window-blind system
*Design a coffee maker that will be used by [[astronaut]]s
*What are examples of poorly designed [[software]]?
*Design an instant messaging system
*I am your grandmother. Describe what [[Matlab]] is to me
*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?
*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
* Find if a BST is well formed
* Reverse every word in s String
(abc def becomes cba fed)
 
==References==
==The post-interview==
{{Reflist}}
After the second-round interview the candidate is asked to submit a reimbursement form for any expenses incurred during the trip to Redmond (i.e. taxi travel and meals). The candidate then generally receives an e-mail detailing the outcome of the second-round interview. If selected, an offer is made and the candidate is given a date to decide on whether to accept based on any other pending offers.
 
[[Category:Microsoft culture]]
==Interview resources==
[[Category:EvaluationJob methodsinterview]]
To prepare for the Microsoft Interview, Microsoft provides a list of suggested reading. Below is a sample of some of the materials (Reading 2006):
*''Writing Solid Code'', [[Steve Maguire]]
*''[[Code Complete]]'', [[Steve McConnell]]
*''Testing Computer Software'', [[Cem Kaner]]
*''All I Ever Needed to Know in Business I Learned at Microsoft'', [[Julie Bick]]
*''Business at the Speed of Thought'', [[Bill Gates]]
*''The Road Ahead'', Bill Gates
*''Programming Pearls: Second Edition'', [[Jon Bentley]]. Addison-Wesley, Inc., 2000.
*''[[Design Patterns]]: Elements of Reusable Object-Oriented Software'', [[Gang of Four (software)|Gang of Four]]. Addison-Wesley, 1994.
*''The Practice of Programming'', [[Brian Kernighan]] & [[Rob Pike]], eds. . Addison-Wesley, 1999.
*''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
 
==References==
* (First Round 2006) Microsoft College Careers. The Interview - First Round. Retrieved from the World Wide Web on January 16, 2006. http://www.microsoft.com/college/int_first.mspx
* (NPR 2003) NPR: Job Interviews Get Creative. Retrieved from the World Wide Web on January 16, 2006. http://www.npr.org/templates/story/story.php?storyId=1405340
* (Second Round 2006) Microsoft College Careers. The Interview - Second Round. Retrieved from the World Wide Web on January 16, 2006. http://www.microsoft.com/college/int_second.mspx
 
{{Compu-stub}}
==External links==
*[http://www.emicrosoftinterview.com "A collection of UnOffical interview puzzles, problems, questions"]
*[http://channel9.msdn.com/ShowPost.aspx?PostID=18472 "Channel9 video walkthrough of a typical second-round interview"] led by Microsoft recruiters
*[http://blogs.msdn.com/jobsblog/ "The Jobs Blog managed by Microsoft recruiters"]
[[Category:Microsoft]]
[[Category:Evaluation methods]]