Companies like Google, Facebook, Amazon, and Microsoft have a strange selection process. Even if you have 10+ years of experience as a software developer, they are not interested in your experience at all.
Instead, they give you various computer science and algorithmic problems to solve. Obviously, fresh university graduates are in advantage here as they still hold this knowledge in their heads.
Last week I started my interview process at Microsoft, unprepared. The first interview with the recruiter went smoothly, but I knew even then that my experience in software engineering was irrelevant. They gave me three coding questions to solve, and if I passed them, I would be facing four rounds of interviews, three of them technical. The process takes about four hours.
I solved two of those coding questions. For the third one, I probably did well, but I ran out of time. That’s when I realized that if someone wants to get through those interviews, it just takes a lot of practice, like if you train for a competition…
If I studied the basics of computer science and algorithms for an hour every day, and practiced coding on HackerRank or LeetCode, I believe that in half a year from now I would have a decent chance of passing the interview.
The question is whether it’s worth it… Is it worth it for the prestige? It’s a big investment in time, and you have to remember that you’re preparing for months for one day of interviewing, not for the actual work that awaits you afterwards. Simply put, it’s like preparing for SATs.
Many others have had similar experiences to mine. For example, Google will supposedly give you 600 pages of material to prepare for an interview. Today I came across a tweet talking about the the selection process. And one of the people discussing even wrote a blog post on how to go through the process even in three months.
In short, it’s all about practice and preparation.