DEV Community

loading...
Cover image for How I Prepared for the Google Internship Interview.

How I Prepared for the Google Internship Interview.

Atibhi Agrawal
SWE Intern at Morgan Stanley | Alum @google @grafana @hackerrank @RailsGirlsSoc @iiitb_official
Originally published at levelup.gitconnected.com Updated on ・7 min read

Hey everyone, I'm Atibhi, I interned with Google as a Summer Intern in 2020. After I got the internship, a lot of people asked me about my preparation strategy.

In this blog post, I have tried to clear some of the common questions every student has regarding interview preparation. I have also included resources that helped me during my preparation!

My site of choice - Leetcode

I have explored many sites and in the end, I found Leetcode to be the best.
Sites like CodeChef, Codeforces, SPOJ are really good but they are not interview/job-focused, they lean more towards competitive programming. If your aim is to go compete at ACM ICPC, by all means, practice at those sites.
For interview preparation, the top sites are Leetcode, GeeksForGeeks and Interview Bit. Leetcode beats the other two sites hands down. While the theory in GeeksForGeeks is good (it is often coded inefficiently) and their practice platform has weak test cases. InterviewBit has a good collection of questions but their list is limited, also they do not have a vibrant community.
Leetcode has everything that a good site should, an amazing list of questions, good editorials, really good test cases as well as a community(best thing). The discussion section has amazing discussions, sometimes the solutions here are better than those in the editorial.

I Am Intimidated by the List of Questions, Where Should I Start?

First and foremost, there is no reason to be intimidated, we all have to start somewhere :) If you are a complete beginner, start with Top 100 Liked Questions and Top Interview Questions. Sort them by difficulty level and do the easy ones, followed by medium and then hard.

How Should I Solve Each Question?

Everyone has a different way of approaching problems, I initially looked up the solution to every problem but when I gave the Weekly Contests(another amazing feature! more about it later) I realized my technique wasn't working. I then thought about a question and worked out a basic algorithm and then coded. If it took more than a certain amount of time, I saw the solution. I also went through Leetcode discuss to see different approaches.
Here is a curated list of "how to Leetcode" from various people, do give it a read! It is helpful :

How Do I Measure My Performance, I Am Solving Questions but Am I Improving?

ONE WORD - WEEKLY CONTESTS. Initially, when I started giving weekly contests I would not be able to solve even a single question, but with practice, I started solving two to three. It motivated me to work harder every week and manage time better. I also maintained an excel sheet where I kept track of the questions that I solved in contests.

How my contest excel sheet looked like.

1_3f_EiTbcnQKg3ofw4RFwyw.jpeg

How "MANY" Questions Should I Solve?

It is not about the number of questions rather it is about "how" well you understand the concepts and are able to approach new problems. In spite of that, doing the Top Interview Questions should be a must.

Other Tips

  • Read as many interview experiences of people as you can from Leetcode Discuss.
  • Ask doubts in Leetcode Discuss for each question.
  • If your interview is nearing, take Leetcode Premium and do company-wise questions (very helpful).

What are the important topics I should study ?

Big O Notation

  • Theory
  • Practice problems from Cracking the Coding Interview

Arrays and Maths

Binary Search

Bitwise manipulation

Trees

Recursion and Backtracking

Graphs

Geometry

Hashing

Linked List

Dynamic Programming

Disjoint Set Union

Sorting

  • Be clear with the basic algorithm and time complexity of all sorting algorithms.
  • Additionally read up to count sort, bucket sort and radix sort.

Greedy

System Design

For now, these are the topics that I feel are important for an interview, obviously, this is not an exhaustive list :)

Google Specific Interview Tips

  • Practice coding on google docs.
  • Write variable and function names that are descriptive.
  • Be honest. Do not bluff.
  • Be vocal, explain your approach while coding.
  • Give a lot of mock interviews to friends in a real environment.
  • Do a lot of leetcode.
  • Be confident!

Hope this blog post helped you! All the best! Feel free to comment if you need further guidance or DM me on Twitter. You can also reach me at atibhi.a@gmail.com 😄

Discussion (3)

Collapse
codetobuild profile image
codetobuild

😄Wow! What a wonderfully written post. Thanks for sharing your thoughts and guidance.
I would like to know how many coding problems you usually solve in a day.

I'm preparing for an internship however, I fail many times to be consistent.😐

Collapse
asquare14 profile image
Atibhi Agrawal Author

I used to ensure at least 1 a day. 3-4 on weekends.

Collapse
bam92 profile image
Abel Lifaefi Mbula

This prep roadmap by @edpressoc can also help. Do give it a try.