4 ms·
I was hired at Microsoft several years ago. I do not have a college degree, but had many years of experience in software development. Here is what I did to pre
by unoti 5y ago
I was hired at Microsoft several years ago. I do not have a college degree, but had many years of experience in software development. Here is what I did to prepare. I read Skienna's Algorithm Design book, and actively coded many of the things in there. Then I spent weeks practicing on a whiteboard, actively talking out loud through the problems. (These days you're basically not going to need to use a whiteboard, but you should practice talking out loud while you work through the problems in a text editor.) I identified the kinds of problems that gave me the most difficulty, and for me that was things involving dynamic programming. But you should be well versed with graph problems, how to attack problems involving recursion, and so on.
I practiced for weeks or months and thoroughly immersed myself in it. Different people would likely need to practice less. Practice enough to transform your though process from "I'm nervous" to "I've trained for this." I probably over prepared, but I'm the kind of person who would rather show up too early for an airplane flight than to endure the stress of maybe missing the flight. Also whenever I do a long talk, I spend an embarrassing amount of time preparing for it. But if you take weeks or more to prepare don't beat yourself up about it. And keep in mind that if you don't get the job it's not the end of the world. You can come back and interview again. In short the only way you can fail is to give up.
Another very useful thing to do when preparing is make a list of stories you'd like to be able to tell. Little 1-2 minute stories of different important things that you have done. Rehearse telling those stories. When you look at lists of common behavioral interview questions ("tell me about a time you convinced your team to do something" etc.) think about which stories you would tell to answer such questions. Good stories will have several kinds of questions they can answer; during the interview, look for opportunities to tell some of these stories. This is a trick that a top sales person taught me, and has been very useful to me.
If you're transitioning from one kind of technology to another, and the job you're shooting for requires experience in a field you have no experience in, then do some work to prepare a portfolio you can point to. For example, when I made the transition into an AI job that required demonstrated experience with machine learning, I spent a good amount of time preparing a portfolio of work I could point to.
Many people spend a lot of time talking about how it's useless to jump through these hoops to get a FAANG job, and how broken the process is. Do not distract yourself worrying about this; if you want to land the job you need to go prepare. While needing the actual knowledge is somewhat debatable, it's good to be able to demonstrate that you're the kind of person who can dive in to hard-to-learn things and get the learning done. Because once you get the job, you're going to be diving into hard-to-learn systems that you won't know anything about.
- wallflower 5y ago> Practice enough to transform your though process from "I'm nervous" to "I've trained for this." I probably over prepared, but I'm the kind of person who would rather show up too early for an airplane flight than to endure the stress of maybe missing the flight. Congratulations on joining Microsoft several years ago! I like how you frame the benefits of practicing. I am totally with you on the showing up early for a flight. Pre-all those screenings, I once drove a family friend to the airport at 80-85+ mph speeds (never ever again!) so that they would barely catch their flight.