It is a follow up post on my Google’s Interview Experience. This is essentially a behind-the-scenes post.
Now that you’ve read my experience, let’s talk about the preparation now. Here’s my 2 cents and I hope you all can take something useful out of this article. Stay tuned to find out the most frequently asked topics along with some sample problems.
The Dreaded Outset
“Where and how to start the interview preparation”, is a question often asked. Below is a list of topics you can follow to kick start your prep -
- Algorithm Analysis — asymptotic notations
- Searching and Sorting algorithms
- Algorithm Paradigms — Divide & Conquer, Greedy Technique, Dynamic Programming, Backtracking
- Data Structures — Array, List, Tree, Graph, Hash table, Stack, Queue
- Graph/Tree Traversals — DFS, BFS
Being a crucial step in interview preparation, it is one of the most frequently asked question.
The abundance of online resources/study material can be a double-edged sword. We’re often left confused seeing a plethora of information.
- If you are an absolute beginner, I’d recommend to start with — Introduction to Algorithms, CLRS. A book that will equip you with all the stuff listed above. GeeksForGeeks is another great resource
- Stop wasting time looking/asking for the best platform to embark on your coding journey. Just start with any of these — InterviewBit, LeetCode, HackerRank etc. You’ll figure things out along the way. * I practiced majorly on LeetCode *
- Explore LeetCode’s Discuss section
- Knowing others’ approach can help. * I especially used to refer votrubac, lee’s solutions to gain their perspective of the problem *
- Participate in weekly contests, mock tests etc. and more importantly track your performance and analyse the mistakes
- Check out some LeetCode solutions’ series on YouTube
- Start slow. Begin with Easy level problems. Build the habit of solving some problems regularly
- Don’t beat yourself up if you’re unable to solve them initially
- Try spotting patterns in similar kind of questions
- Take note of every new learning and expand your tool box
- DO NOT rush into submitting the solution. Dry run your code and think of edge cases. It’ll help in real interview settings
Competitive Programming …? ♀️
CP isn’t necessary but obviously good to have. I’m not a competitive programmer myself. You are ^only^ expected to have great problem solving skills, remarkable command of algorithms and data structures.
- Binary Search - Work this out. Understand how and why Binary Search can be applied in such kind of problems. Refer to this amazing post
- Dynamic Programming - Try House Robber, Min Cost. See how does DP fit here
- Graph - Solve this (and this) Make sure to analyse time and space complexity of your algorithm
- Tree - Try this out