Nearly 300 MSPs took a written test for the post of Intern/Full time Employment ( FTE ) at Microsoft in Goa during the Microsoft Student Partner Bootcamp 2011 which was conducted on Sep 5 .
There were 2 tests , one for Microsoft IT and another one for Microsoft India Dev center ( IDC ) . Just after an hour on reaching goa , i was made to write both the tests which were 1.5 hours each and weighed 50 marks each. Well , Frankly , i was in no mood to write both the tests in GOA .
The first test was for MS-IDC which was fully based on programming . Here are a few questions :
1. Given 2 sorted arrays , write an algorithm to find the median . ( 10 marks )
2. A College has 2 hostels , 1 boys and another girls , and a common Print Server . Write down all the possible cases when the system will work and the cases when the system will fail and give appropriate suggestions . (10 marks)
3. ( Forgot the exact question) You are supposed to create a software program for a grocery store , each item is labelled with a bar code which contains the necessary details about the items. Some products are categorized as “offered” products, which when purchased above Rs.500 will be given 10% discount ( and a lot of other conditions which i don’t remember ) , write an algorithm to calculate the bill and the data structures that can be used . (10 marks )
The second test was for Microsoft IT , which was both programming and logical , i actually did the test well but didn’t get selected . Here are a few questions from MSIT :
1. The given input is – char *a = “123” , convert this into integer 123 without using any built-in functions
2. Find the Maximum element in a binary search tree .
3. You are producing a basic mobile phone , write down all the test cases that you will perform before launching it
4. After the failure of Titanic , the engineers are building Titanic 2 with enhanced facilities . They also have a rescue engineering team inside the ship that will reach the spot of failure in 30 minutes . After learning the mistakes that were made in titanic 1 , suggest appropriate measures to avoid accidents in titanic 2 . ( I havent watched titanic movie even once 😦 )
5. A output question based on call by value and call by reference
and other 5 questions which i dont remember.
Around 20 people were selected for each MS-IDC and MSIT from the results of the test .
Finally , i was called to attend a face to face interview for Intern @ MS-IDC on 5th January 2012.
MS-IDC was situated in the outskirts of Hydrabad and travel was real pain as i din’t know both telugu ( the local language ) and hindi .
At around 9:30 am , i was called for the intervie.
The first question , was – Write a code to convert integer “n” , say “123” to a linked list , 1->2->3 . I wrote the code and showed him the paper , He said , “Very nice , now using the above program add 2 numbers , m and n ” . After i finished writing the code , he asked me to write down all possible test cases when the program will go wrong . I was confident that my program was fully correct but just in time it struck me that i totally forgot to analyze the carry over conditions. With the permission , i modified the code and gave thim the full program , which took 2 A4 sheets for me to write , he was satisfied with my logic and code.
Suddenly something caught his eye on the first page where i wrote the code for converting the integer into a linked list . He pointed me to the block where i created nodes for each digit and asked , “Do you find any mistake here ?” , it took a while for me to realize that i din’t allocate memory for the linked list at all.
My second question was to find the maximum element in an unsorted binary tree.
I wrote a crappy code , as i was a bit weak in datastructures 😦
The second interview (the last round i.e) was bad for me. The question was to code a function – bool isLucky ( int n ) to find if the given number is lucky or not.
The explaination given for the lucky number was :
Consider the series of natural nos :
In the first iteration will be like
1,3,5,7,9,11,13………… ( i.e removing the numbers after 1 place , i.e 2,4,6,8….. are removed )
The second iteration will be :
1,3,7,9,13……….. ( i.e removing the numbers after 2 places , i.e 5, 11….. are removed )
The Third iteration will be :
1,3,7,13,……… ( i.e removing the numbers after 3 places , i.e 9 … are removed )
Now we are sure that 1 , 3 and 7 will not be removed in the later iterations ,So , these are termed lucky .
I was totally blank after seeing the problem and it took nearly 40 mins for me to come to a conclusion . I wrote a program which will find the lucky number but it had the maximum time complexity for O(N^2) but the interviewer wanted a code with the least time complexity .
Interns at MS-IDC get a pay for 25,000 Rs per month and the hounour of working at Microsoft’s projects for 3 months.