During Covid-19 lockdown, I was contacted by a recruiter from Google for a Software Engineer role based in India. I was given tons of resources by the recruiter to prepare for the interviews. I will try to share all possible resources, questions (hint), most important topics to study, platforms for practicing (daily questions and mock interviews), some tips, good blogs, and of course the mistakes that you should never make while preparing for big techs. Undoubtedly the technical interviews at Google are heavily based on DSA and it has got its own level of difficulty but I gave my best and went up to 3rd round after the written coding round. This drive and experience are really full of learning.
Let’s start the preparation
Step 1: Bookmark the GFG Google Archives. It helped me a lot during my preparations. Reading other’s interview experiences is one of the best ways to get yourselves ready for the next job interview.
Step 2(Data structures): Most important data structures which you don’t want to miss are: Lists, Maps, Stacks, Priority Queues, Binary Trees, Graphs, Bags, Sets
Step 3(Important topics): Most commonly asked topics in Google Interviews ( as per the mail I received from my recruiter ) :
- BFS/DFS/Flood fill
- Binary Search
- Tree traversals
- Hash tables
- Linked list, stacks, queues, two pointers/sliding window
- Binary heaps
- Dynamic programming
- Union find
- Ad hoc/string manipulations
Other topics which you should know: Trie, segment trees/Fenwick trees, bitmasks.
Step 4(Sites to practice): Highly recommended sites for practicing questions ( usually practice medium and hard level questions) :
- Leetcode (highly encouraged)
- Geeksforgeeks (highly encouraged)
Step 5(Coding Book): It’s really great if you take out some time to practice problems from the famous Book, https://books.google.co.uk/books/about/Cracking_the_Coding_Interview.html?id=anhAXwAACAAJ&hl=en
Step 6(Mock Interviews): Highly recommended is preamp (https://www.pramp.com/#/).
Step 7(BigOCheetsheet) This is a great bigocheatsheet that could be of great help https://www.bigocheatsheet.com/
Step 10(Google Coding Questions): Important list of Google Coding questions.
Sharing my interview details (question patterns and difficulty)
Round 1(Coding): This round had 2 questions of easy/medium difficulty. Both were based on concepts of DP. The first question was quite similar to the classical DP question (minimum steps to reach 1) https://www.spoj.com/problems/MST1/. The second question was quite the same as https://leetcode.com/problems/longest-palindromic-substring/. In this, we are supposed to find the longest palindromic substring in a given string. The first question was fully solved and the second one was partially accepted since I used the brute force approach.
Round 2(Telephonic Interview): This round went quite well. In this, I was asked 2 questions. The first one was a medium level pattern searching question (strings). GFG link for further details. The second question was based on heaps (priority queues), GFG link.
Round 3: This round was also virtual. It has some difficult questions when compared to the previous rounds. The first question was similar to https://leetcode.com/problems/text-justification/, the other question was based on a similar concept like https://leetcode.com/problems/the-skyline-problem/, another one was https://leetcode.com/problems/angle-between-hands-of-a-clock/. This round went okayish and I was called for the next round.
Round 4: This round was tougher than all previous rounds, 1 DP medium and 1 Graph Hard question was asked. I was able to solve the first one but got stuck in Graphs :(. Graph question was similar to https://leetcode.com/problems/shortest-path-with-alternating-colors/ ( little more tricky) and the DP question was also from leetcode medium. This round did not go too well for me.
Prepare a good resume (clean, clear, and precise). Don’t put any unnecessary information.
Just before your next Online Interview:
- Keep a pen and paper ready, you never know when to write
- Keep a water bottle with you
- Put your phone on silent
- Login 5 minutes before (it’s important)
- Speak up loud and clear
Make most of the “Tell me about yourself” question
Don’t give up! Even if you’ve had a bad interview for a job that you truly think would be a great fit for you, don’t give up!