Microsoft internship written test
August 15th, 2014

Here in Belgrade, Microsoft has its development center. During the entire year, they have open positions for internships. [clicky]. I heard some positive talks from senior colleagues from the university and their general satisfaction with the time spent there while on their internship, so I though I might give it a try. I wanted to experience whole process first-hand and in the end, try and get the offer and perhaps learn something new and useful, that would help me in the future. Also, being accepted by a Microsoft is not a small thing, and that reference could also mean a lot for my further career. So with that in mind, I applied and soon got an invitation for a written test.

I though I fulfilled most of the requirements mentioned on the website, so there were no problems in that part. The problem was I had no idea what to expect at the test and for the interviews, so my quest first began by asking people that went through entire process for their opinions and suggestions how to prepare for those.

Preparations

One of the most useful texts about entire application process that I found was at the Nenad Bozidarevic’s blog: Utisci sa testa za praksu u Microsoft-u (Serbian-only). It gave me an insight of the kind of problems that are chosen for the test and the overall expectations for the one’s knowledge and programming skills. I soon found out about two great (excellent, must read!) books for preparing interviews:

Both books are filled with carefully chosen questions from all kinds of programming areas: strings, arrays, linked lists, bit operations, sorts,… Also, both books talk about necessary preparations for the interview, but for the test, it’s more important to focus on questions and problems, and once you got an invitation for an interview, then it’s time to worry about the rest. So, focus on questions, cover areas that you think you are most unfamiliar with, and if you don’t have much time to prepare, then at least read problems and learn the strategy for their solving, because it’s more important that you understand the concept of the solution, than is to know exact code required.

Two other very helpful websites where you can find a lot of helpful information about companies that you’re applying to and questions from interview are: CareerCup and Glassdoor.

Test

Now, once I was prepared with knowledge about hiring process and what to expect, I went to the written test. The test has 7 questions in total, and is divided into 3 categories. Easy programming questions, “hard” programming questions and math problems.

And this is what came on the test that I was doing (well, most of it):

You have 4 hours to do a test. It may sound enough, but once you start writing, you’ll soon realize that your grand idea of solving all problems and commenting the code is not going to happen (yeah, this sounds familiar to me). Stress, practical lack of time will have influence on you and you may end up panicking and screaming internally at yourself for not preparing more (I’m also familiar with this one too). I started solving third problem and finished first part of it in two hours. After realizing exactly how much time I spent on that part, I started being really nervous, but I quickly realized what I needed to do to do the rest of the test well (those are tips’n’tricks).

Tips n tricks

First category:

Hard ones:

Math/logic category:

It comes down to few things: write code, don’t worry if it’s pretty or super-optimized. Suggest several ideas, write at least something so they “get to know you better” and the way you think about problems. Don’t panic, just spend time on solving problems instead of worrying about the whole thing.

Wrapping up

Several candidates were contacted within the period of first two weeks after the test. My answer came on the third week after the test. I was called for an interview. Now interviews, that’s a whole another story and I’ll cover it up in some future post.

tags: , , ,


Comments:

MW commented on January 31, 2016 at 19:44:

Thanks a lot, it was very helpful!
So, I had mine earlier today, so I figured I’d share with the rest of you my experience:

The test (on our surprise) had 4 questions and lasted 3 hours.

1.Check if two strings (could be different sizes) are isomorphic;

2.Given an array and its size, make a N-ary tree represented as left-son-right-brother, with these conditions:
– Odd values must have son(s), while even can not
– Preorder traversal outputs initial array
– first value in the given array is odd, and the last is even. If more than one exists, return any.

3.Length of a given array is n=2^m. Find the period of repetition of characters (it has to be fully completed, if the last one is “chopped of” it doesn’t count)

4.Given a Node** head (linked list) and indexA and indexB, rotate a linked list chunk between them (indexA and indexB node included), if the first node starts at index 1.

As you can see, they are all relatively easy, which in my opinion is a bad thing, because I think MDCS staff would hardly rang candidates properly. But, I believe interview will clear things up, and if we are not called after this test, then better luck next time, I guess. :D

I wish you all much luck on the exams (and hopefully interviews)! ;)

abstract_algorithm commented on February 5, 2016 at 16:05:

Thanks for the latest information!