Friday, 16 May 2008

Interview Tips : How to Bang the Living Daylights out of a Microsoft/Google Tech Interview

First the Zen...

Walk in like you're the hottest thing in programming since Joel Spolsky...
Translation - Be calm, cool and confident! (not arrogant!) Imagine that this company really, REALLY wants you... and you're gonna go in and evaluate whether its a cool company to work at...
Of course you need to back this up with some quick thinking and some even quicker coding/answering.

Then the Basics...

You need to go and revise study all the "Data Structures & Algorithms" stuff you'd (hopefully) done back during your second year of engineering!
You need to be able to play with pointers in C...
You need to be able to analyse algorithm complexity... yes the big O is important!
And you need to really grok recursion!
And of course...Object Oriented Programming concepts...
I'd recommend Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss & Object Oriented Programming in C++ by Balgurusamy.

The Next Level...

What you need to really seal the deal is some advanced programming techniques like Dynamic Programming, Memoization, Backtracking etc.
Just reading a couple of tutorials on these & solving a couple of the problems in your head is not going to work. You really need to get your hands dirty and practice coding these. The best place to get cracking at the "advanced techniques" is at the TopCoder Algorithm Contests. They've got tons of practice rooms that are made for this!
They've also got the best tutorials...

Course stuff... (for those fresh out of college)

Depending on who's interviewing you, they might ask you about the fundamentals of Networking, DBMS & Operating Systems if you've studied these courses. You should be able to talk about you're Degree Project. Why you chose it... and what you've done in it...

Work / Project stuff...

You should be able to talk about the area in which you've worked... and about you're specific contributions to the projects.

Other stuff..

You should be abreast with the latest in the field... and you should also know about the domain of the company you're interviewing with.
Also... you REALLY should be able to explain how the Internet works today!

Must Read Articles... (apart from this one...)

Joel Spolsky's Guerrilla Guide to Interviewing
Steve Yegge On Interview Preparation (SteveY read my original post, drank some wine and basically elaborated on all of my points...; ))

Other Links...
General Interview Strategy...
Sample Questions...
Lessons from a Microsoft Interview...

There's lots more to add... but get the basics handled first... then we'll talk about the rest...

Feel free to comment and ask me anything...

Note : All these "Interview Tips" will help only when applied on top of an already solid base of interest, curiosity, passion and skill in programming and building software.

Don't think you're gonna be able to fake your way through multiple tech interviews.
(So what if I managed to do that both at Google and at Microsoft? ; ) )

3 Comments:

Deepank Gupta said...

Nice Article Pratik

MagWorld said...

Very useful!
Thanks!
: )

Pratik Stephen said...

Thanks Deepank!
: )
Congratts on your job at Microsoft...
Did you apply any of these tips while interviewing?