Tuesday, February 26, 2008

Microsoft 1

Microsoft IDC campus Recruitment Process
Submitted By -Roma Shah


1st Round: Technical Test in two parts.

1st Part: It had 45 questions and 25 minutes. All were programming based questions like complete the code or find the output etc. I was able to solve only 5-6 questions but was confident of their answers.

2nd Part:
It had 3 questions and 45 minutes. 2 questions required to write code of the given problem statement and 3rd question involved writing test cases for a given program.

2nd Round: 2 technical Interviews


1st Interview:
First he asked me to explain my project. But he didn’t ask many questions on it.
Then he started with the coding questions.
I had to design a “dynamic spell check” for Microsoft word i.e. suppose you write ‘y’ after ‘x’, then as there is no word starting with ‘xy’ then it should immediately alert you.
So first I was asked to give an appropriate data structure for the English dictionary for this purpose. The answer to this is a tree structure.
He was happy with my first answer and said it to be a good answer. This encouraged me.
Then I had to write the exact structure and then we had a discussion on the structure of the node as to what all information it should hold.
Then he asked me to first give the logic and write the code for adding a new word to the dictionary i.e. the tree. We had a long discussion on the logic.
Then the same proceeded for deletion of a word from the dictionary.
This all went for 60-75 minutes. He himself gave me feedback about my interview and he said that it was very good though the problem was not very straightforward. He also pointed put 1 or 2 mistakes.

2nd Interview:
He too asked me about my project and asked me explain what is neural network as it is part of my project.
This interview was more of a learning session.
He asked me my favorite subject. I answered “data Structures” and then we had long discussion as to why most computer engineering students have the same answer for this.
Then I was asked to do the requirement capturing for designing a software for “his customized” ATM machine. I had to ask him the relevant questions to do so.
Then he asked me some questions on database concepts.
Then he asked me write a code for finding the number of occurrences of a substring in a given string. We had a long discussion on the code and its correctness in different scenario. Then I had to write the different test cases for the same.
This interview also went for an 60-75 minutes. I asked him about a feedback and so he discussed my interview with me.

The feedbacks given both the interviews had built up my confidence.
Also during both the interviews they were giving us hints and they mainly checked our approach to the problem.

3rd Round: Final Technical Interview
In this interview I was asked concepts on Operating Systems especially threads and process. He grilled me on these questions.
Then he asked me about the OSI layers. But he didn’t grill me on that.
Then he asked me about hashing- what is hashing? Why is it done? Etc. Then he asked me write a code for finding a record in file indexed using hashing. Also write the hash function. He just read my code, gave a weird look and told me wait for the results.
But later I got to know that he gave a weird look to all.


All the interviewers had their laptops with them and were continuously working on that. We suppose they were sharing our answers with each other.
So we were at a time being examined be 6 of them supposedly.


Preparation:
I had in fact done zero prior preparation as I had never expected to get into Microsoft. But truly speaking you cannot prepare for these interviews 1 or 2 days back. Its all your 3 years that matter and the clarity of your basic concepts. Data structures and Algorithms and databases (mainly) and operating systems and computer networks (to some extent) are the main subjects for any interview.

All the Best!!!

No comments: