OK, I know I'm talking about the prep for the interview after I already posted about the interview, but you don't usually get this much activity on my website so don't complain. :)
Before I went to the first Microsoft interview at Waterloo, I borrowed several books from IBM’s library about data structures and algorithms as part of my preparation. The IBM library is a sight to behold. There are shelves upon shelves of books that are shelved by the Dewey decimal system (as you would expect). However, most of the books have the exact same number because almost all the books are about programming. It’s almost the perfect library. If you threw in some books about quantum mechanics, and Roman history it would be flawless (it already has books about chaos theory!).
The first interview wasn’t especially technical, but I expected that the second one would be, so I brushed up on my material again. I really liked this book called, "Fundamentals of Computer Algorithms". It was a good reference. The book looks really old, but it’s not a big deal since fundamental computer algorithms haven’t changed too much. When I finished reading it, I noticed an actual library card at the back of the book. How archaic. :) I don’t think I’ve signed out a book with a library card since elementary school. The entry on this card was made in 1979! That was before I was born! I wonder what the people who signed out the book back then do now. They're almost certainly not writing much code anymore. You know, I'm not really that young anymore, but thinking about what my life will be like in 25 years is almost unimaginable. What do you think you'll be doing in 25 years?
posted Friday, November 14, 2003 at 3:08 AM | permalink |
The Interview
The day started off at the Microsoft recruiting building. They actually have an entire building devoted to recruiting. The Microsoft campus is very nice and a lot bigger than I expected it to be. I heard anecdotally that there are perhaps 20 to 30 thousand people at MS. According to a census in 2000, the entire population of Redmond is only 45 thousand! It does actually look a bit like a university campus. At the recruiting building, I met with a recruiter who told me that I would be interviewing for the Visual Studio for Devices team and the C# team and then we chatted for a bit. I talked to 5 other people that day. What I was really looking forward to was hearing the Microsoft interview questions. You see, the Microsoft interview is kind of legendary and I was very curious to see what it would be like first-hand. A lot of people have been asking me about which questions were asked. I got the following questions:
Reverse a linked list
Convert an unsigned long to a string
Describe how you would design an online multi-player version of Monopoly
Reverse the letters of a word (i.e. "Jason" --> "nosaJ"), then reverse the words of a sentence (i.e. "All your base are belong to us" --> "us to belong are base your All")
You have a group of items, each of which can be used as a parameter to the function better (item1, item2), which will tell you which of the two items is "better" or that none of them are clearly "better". Find the best item in the group if possible given that the better function is non-transitive (i.e. if item1 is "better" than "item2" and "item2" is better than "item3", it does not imply that "item1" is better than "item3")
I am not posting any answers to these questions. You have to solve them yourself if you're interested. :) I was a bit surprised that I didn't get any brain-teaser logic questions. I thought the questions were pretty good. They weren't so complicated that they required hours to answer, yet they were sufficient to show the interview some of your problem solving and analysis techniques. However, in my opinion, the last question was the most involved and also the most interesting. I did quite a bit of prep for this interview by reviewing data structures and algorithms material that was largely unnecessary (although I did get a chance to talk about Lamport clocks in question 3 and I used a little XOR number swapping algorithm in question 4 that was pretty neat). In retrospect, I think this was a very good thing. It doesn't seem very representative to turn down a candidate because they don't know how to implement merge sort on the spot. I knew that it probably wouldn't be necessary, but you never know right? The other thing that I liked is that virtually everyone I talked to seemed very intelligent and very interested in their work. From what I've seen, I think I would enjoy working at Microsoft. I'll find out the results of my interviews in about a week.
In general, I was quite impressed with Microsoft's interview process. It was well orchestrated, the interviewer's asked good questions and they treated me well throughout. Basically, I think they did a good job of trying to make sure that good people get into their company. I interviewed with 6 different people. I think it went quite well. I don't have much time to give many more details because I'm off to meet up with some friends in the area, but I promise that I'll post more later tonight.
posted Thursday, November 13, 2003 at 9:19 PM | permalink |
Seattle, Here I Come
I'm leaving for Seattle this afternoon. If I get Internet access at the hotel I'm staying at, I'll be sure to do some blogging.
posted Wednesday, November 12, 2003 at 10:06 AM | permalink |
Mensa
Yes, it's true. I am a member of Mensa. Specifically, I'm a member of Mensa Canada. My gosh, I've been inundated with people congratulating me about this in the two days since Derek posted it on his blog. I bet I wouldn't have had half the response if I had just posted it on my blog. I guess that's what happens when you update your blog every 4 months or so. From now on, if I ever have an important announcement that I want my friends to know about, I'll be sure to get Derek to post it. :)
OK, but I digress. Regarding Mensa, it's not a big deal. I'm definitely not a genius. Interestingly enough, most of the people who asked me or congratulated me about it are really intelligent people. In fact, I'm lucky enough to say that I'm often in the company of people who are much more intelligent than I am. So why would I bother to join Mensa when I already have access to a large group of very intelligent people? Well, I'm interested in Mensa because it's a society of intelligent people who choose to spend time with intelligent people. I just believe than Mensans will probably enjoy having intellectual conversations about random topics and I think I'd really enjoy that occasionally.
On the job front, I have a second interview with Accenture Friday afternoon. I'm not quite sure what to expect because it's a behavioural interview. All the travel plans have been finalized for the trip to Redmond as well. I've got my entire stay planned out. I'm going to be getting together with Zurb, Tim and some ex-IBMers that I haven't seen in a while. I'm also planning to drive to Oregon to see my aunt and uncle. I've also been preparing for the interview. It's such a good opportunity that I just want to do my best. If I actually get the job, I'll be sure to let everyone know by asking Derek to post it on his page. :)
posted Friday, November 07, 2003 at 12:12 AM | permalink |