I applied through college or university. The process took 1 day. I interviewed at Microsoft (Redmond, WA) in May 2010
Interview
On campus interview that involved very little programming, mostly discussion. Asked about how to implement a function which prints 1-10 and then prints it backwards using both recursion and then iteratively.
On site interviews were tougher. Full day of interviews, various questions on C++, Data Structures, UI development and a ton of testing questions. Recommended background reading was critical for these interviews. Overall very difficult, and very competitive.
I applied through college or university. The process took 3 months. I interviewed at Microsoft in Mar 2011
Interview
After the contact at University, there were 2 steps:
1. a phone interview, with few technical questions. it was more like a chat where the interview would like to know why I was applying for MS, what were my expectations, etc.
2. in campus interview, in Redmond. There were 5 interviews in an afternoon, with 5 differents MS employees. Each interview took 50 minutes and there were 10 minutes between each one. Some interviewers asked coding questions, and some just talked ans asked me to explain (verbally, not coding) how I would solve and test some problems.
They took 2 and half months after the phone interview to invite me for a in campus interview and the final result was given at the same day of interviews, just a few minutes later.
Interview questions [1]
Question 1
Consider two arrays of integers, v1 and v2, with allocate memory of (n+m)*sizeof(int) and m*sizeof(int), respectively;
In array v1, you have the first n positions filled with integers, sorted in ascendent order.
In array v2, you have all m positions filled with integers, also sorted in ascendent order.
Write/implement a function that return a vector of size (n+m)*sizeof(int) that have all the elements of v1 and v2, sorted in an ascendent order