Below is my answer from Quora
Q. What are some of the questions asked in Google interviews?
Anyone showing you a list of questions commonly asked at Google is misleading you, even if they don't intend to.
Think about it, people are susceptible to such lists out of fear that they will be asked. It's a great way to attract people's attention, but not necessarily good for the reader.
- The fact is, even Google internally cannot find if certain questions are the most common. There's no pattern there. And they have all the data!
- And IF they found that out (because they have the data), they would instantly discourage their engineers from asking them. Knowing how sophisticated Google is with their interview data, you can count on them to do that.
So by looking for common Google questions (as most people do):
- You're either trying to find a target that doesn't exist, or
- You're trying to find a target that only a handful of people know about.
Both of those are not good strategies.
So, what should you do?
Instead of focusing on company-specific questions, you should focus on a good collection of technical interview questions, such as those provided by Leetcode.
You should practice at least 200 questions to have a good chance of getting into Google. Have people done it with way less? Of course, but why would you gamble instead of putting in the work and improving your odds.
Focus on Techniques, not just Questions
The fact is, there is an unwritten consensus about what kind of questions to ask. Problems that utilize Graph search - absolutely yes! Problems that need you to implement Red-Black Trees - definitely not!
Once you can distill techniques used in problems, you can apply them to other problems. Take Linked Hash Tables for example. Once you master it, you can use it to solve the LRU Cache Problem, and also the Finding the Skyline Problem, and every problem in that category.
After that, the interview boils down to identifying which technique to use for the problem.
At, we call them Building Blocks.
Finally, here are a couple more tips:
Practice on Paper:
Practicing on paper is much better than typing on a computer. If you can, practice in a notebook. Implement an algorithm and see how much difference it makes. Then implement it again.
If you write the same algorithm twice on paper, you get comfortable with it. This is different from memorizing because you are actually implementing the algorithm, not just repeating it from somewhere.
Follow a Schedule:
The biggest mistake I see people make in their prep is endlessly browsing questions online with no schedule or strategy. You want to ensure you are practicing the highest impact problems for every category of questions. This is done by making and following a schedule.
I have talked about Algorithms, but the same applies to System Design.
Lastly, make sure you enjoy the process. Learn to appreciate these algorithms and system designs and enjoy practicing them. It's a skill. Probably the most useful one to advance your career.