I've been at Google for a little over 3 years and have conducted several dozen software engineering interviews.
I have noticed a consistent pattern amongst candidates that succeed and candidates that don't. In this article, I want to share with you what I believe to be the single biggest mistake that candidates in the interview process.
The technical on-site interviews at Google for software engineers consists of or are entirely made up of problems centered around data structures and algorithms.
If you don't do well in at least a portion of the interviews, the chances are fairly slim that your average rating will be high enough to get a green light on an offer.
The one mistake I keep seeing in candidates that don't pass my technical interviews is that they aren't prepared on stuff that is easy to prepare for.
If you're looking to work at Google and have an interview lined up or plan on interviewing in the future, make sure you spend some time preparing to maximize your odds.
I keep seeing candidates blotch basic algorithms like:
- Breadth-first search
- Depth-first search
- Using stacks/queues
- Using the idiomatic hash map in their language of choice
- Binary search
This isn't a comprehensive list, but at the very least, you should memorize how to code these algorithms so you don't have to worry about how to whip one up during your interview.
Not knowing these algorithms in an interview is akin to a musician not knowing their scales or a photographer without knowledge of photo composition.
Instead of trying to recall the fundamentals during your interview, your energy is better spent trying to solve the abstract problem instead. Do your homework. Be prepared and come into the interview ready to apply the knowledge to solve a problem.