Being my dream to work for one of the Big 4, since an early age I stated to learn the skill-set I’d need in order to be interviewed in Microsoft. This blog intends to be a little recap of the things you can do to make your possibility of entering a Big 4, far greater.
Early in October, Microsoft came to my campus for recruiting. We had a very cool coding contest, and did good enough to get another interview. They also came bearing cool swag to give out to potential Microsoft recruits. (Recruiters, this makes the difference, between being another job experience or out-standing).
My team and I did well enough and we got invited to our First-Round interviews by phone.
The first round of interviews is a HR filter for applicants, for this I recommend practicing brain teasers and going through basics and methodology of standard software engineer practices such as testing and design. But the most important thing in this stage is communication. You have to prove that you can communicate well enough in a stressful job where communication in teams is essential.
Next are the technical interviews, to be honest, the technical interviews are very difficult if you have never faced problems you can’t solve. They provide tough, challenging questions that brings your best form.
#Basic preparation for getting your foot in the door.
In order to pass the college recruiting step, you really need to have worked in cool projects or have an internship. Some friends haven’t , but they’ve got really nice competitive programming titles. Make sure you’ve got something to be proud about, something that shows that you have a real passion for software engineering as a whole, It can be anything from a job, to a contribution to a modern framework.
#High school stage.
If you are in high school for some weird reason and you are reading this, you should try enrolling into competitive programming, It will help you a lot to get you on track to be one of the best software software developers out there. It presents you with a background in algorithmic computing and in solving difficult problems while being in a time constrained environment.
Get into your local IOI (International Olympiad in Informatics) group, or seek TopCoder contests and Felix Halim’s book on Competitive programming to get started.
In the college stage, first of all, I’d recommend to pay attention to your classes, this is the most important think I can think of, understanding of things presented in class, is often the best way to comprehensively understand algorithms and complexities.
Furthermore, Make sure not only that you “get” the things seen in class, but you have to fully understand and explore them. For example, I got a class on Hamiltonian Cycles, and I didn’t _fully_ get what the TA was talking about until I got to code it for myself.
Secondly, I’d recommend joining an internship beforehand, or getting deep into algorithmic programming competitions (Just as in high school) so that you have the best chances of understanding C/C++. See if your school has a local ACM ICPC chapter. Don’t worry, don’t get to overwhelmed, at first you won’t understand Dynamic Programming questions with minimum spanning trees, but its important to persist through them. The most important thing here is to grasp why each algorithm is better or worse in certain situations.
In order to prepare to the interview, if you haven’t done any competitive programming, you have to at least implement 3 times each type of important algorithm, (Linked Lists, BFS, DFS, etc) so that you are able to get a grasp of how they work.
The single 3 resources I found fundamental to my interview were:
Competitive Programming (6th edition) Gayle McDowell but be CAREFUL, don’t skip the introduction and the message Gayle has for everyone. It is important, fundamental, and an often missed part of the book. Where she introduces what recruiters and companies are looking for in an software developer.
Gayle McDowell’s Videos on Vimeo, available for purchase. I used to be super nervous in technical interviews, but once I saw Gayle videos where she explained how the recruiting process went along, where she demonstrated some mock interviews with random people, I understood clearly what was expected of me to know and explain.
Interview cake Interview cake is a resource that presents different types of common interview problems, in an easy interactive way,. This is the easiest resource for you to follow along with receptive feedback, where you can correct your train of thought, and follow the common interview process.
Mock interviews with your friends. At first they may seem futile or silly, but once you are on the spot, trying to explain things, your mind shifts into a different reality.
After all this things, remember to enjoy the experience and understand that every interview you do helps you grow as a professional.