Tuesday, September 12, 2023

Top 10 Google Interview Questions for Software Engineer - Books, Resources

Hello guys, if you are preparing for Google's Software Development Engineer roles and looking or Google Software Interview questions then you have come to the right place. Earlier, I have shred Amazon and Microsoft Interview questions and in this article, I am going to share popular questions from Google Interviews. These Google interview questions are some of my favorites collected from different sources. Every Programmer knows that Google is one of the best technology companies and its dream for many software developers to work for Google, but at the same time interview process at Google is very tough and only a few genuine intelligent programmers get through their interview process

Google interview questions have always been a good topic of discussion when few young software developers gathered around, I can still remember when one of my friends got a call from google for an interview then how the whole bunch was got excited.

We have searched a lot on the internet on google interview questions and answers for him and us and then make a note of some of the best questions for preparation. I am listing down some google interview questions from that list. 

Apart from the popular questions asked in various Google Interview for software engineers or developers, books on algorithms and data structure play a lot more important roles. Books like Algorithms for Interviews and Introduction to Algorithms are a must-read for any Programmer, who is serious about converting Google interview or similar companies like Facebook, Amazon, and Microsoft. Once you start preparing for Google, the rest of them become very easy.

Also, basic knowledge of essential data structure and algorithms is also very important and that's why I suggest all Java programmers join a comprehensive Data Structure and Algorithms course like the Data Structures and Algorithms: Deep Dive Using Java on Udemy to improve your knowledge and algorithms skills. 




10 Google Interview questions answer for Software Engineers

Answers to these Google interview questions can be found by doing google :), Also, each question in itself demands a blog post and I will try to cover that one by one as and when time allows. I have divided all interview questions in different categories like data structure, puzzles, operating system, Software Design and Coding, etc for better organization.  

In the last section, I have shared some top class, must-read books for Google Interview preparation. It contains books like Are You Smart Enough to Work at Google? which is not only a good read but tells you a lot about Google interview, it's processed. Before starting preparation, a must read to get yourself motivated.


1. Google Interview Questions on Data Structure and Algorithm

Here are few questions from data structures appeared on various google interviews, data-structure is a complex topic and can get very complex at google and we have purposefully not collected very tough data-structure questions at that time because of time limit and we wanted to gain some confidence to solve moderate questions, though this may not be a good strategy for many people but it depends on how much knowledge you have and how confident you are on data-structure.
  1. Find out the fastest way to locate the largest element in a circular sorted array ?
  2. You have a binary search tree and integer n, find out the most efficient way to locate two nodes of the three whose summation is equaled to "n" ?
  3. How do you convert a max heap to min heap ?
  4. You have given two lists L1 and L2 write an algorithm to see if both the lists are equivalent or not?
  5. How do you figure out time and space complexity of recursive function ?
  6. how will you implement three stacks with one array?
See here for few more questions on data structure and algorithms

Google Interview Questions for Software Engineers and Programmers



2. Google Interview Questions based on Networking and Operating Systems

Here are some of my favorite Google interview questions from various operating systems like Unix and Linux. Good knowledge of how operating system works always helps to excel any programming interview and Google is not an exception.

  1. If you have given a chance to rewrite Linux, how will you do that ?
  2. Explain how congestion control works in the TCP protocol ?
  3. How would you optimize TCP Protocol without going on UDP ways ?
See here for some more socket based networking questions from Programming interviews



3. Google Interview Questions on Software design

Here are some of the software design questions from various Google interviews for software engineer position. Software design is a critical piece to get through Google interview and people has almost always faced one of two questions from this category.

  1. You have given a set of points across the globe as latitudes and longitudes ? How will you determine points which are within a particular mile ?
  2. Can you design data package transfer from London to Tokyo ?
  3. Design a distributed system for storing a static set of (key, value) pairs which will behave like a hash table, the user will provide you key and system will return value.
  4. Design Algorithm for Lift to get minimum waiting time on each floor ?
For more questions on Object oriented design and software design see here

 


4. Google interview questions on Coding and Programming

There will always be some questions on coding in Google interview, especially if it is a software engineer or developer role. They want to see you writing code. There is no language barrier and you can choose whatever programming language you are most comfortable with Google interview questions on coding mostly require good knowledge of recursion, data structure and good familiarity with a programming language.

  1. Can you write code in Java or C++ to find the power set of a given set? For example if S={a,b} the power set is P={{},{a},{b},{a,b}} ( you can also choose any of your favorite programming language)
  2. Write code in Java to find out whether a binary tree is a mirror image of itself or not. Should code be thread-safe?
  3. Can you write code to implement your own hashtable in C++ or Java?
  4. Write code to find out a number of occurrence of a number in a sorted array ? (solution)
  5. Can you implement a Generic LRU Cache in Java ?
  6. Write a program to solve a Rubik's cube in any programming language.

For more coding questions, you can  also see my list of Top 30 programming interview questions.



5. Miscellaneous Google Interview Questions

In this category of google interview question, you will see mostly behavioral questions, some time before throwing data-structure questions they ask a light question and some time after exhaustive screening they ask based on your profile and luck. Apart from below they also question based on puzzles and riddles.

  1. How Google Search work ? If asked to you how will you design it to scale and fast at the same time ?
  2. Why do you want to work with Google ?
  3. Which Google product you like most and why ?
  4. Do you like coding or designing application ?
  5. Questions about your previous project and work experience.

Puzzles are another popular topic on various google interview and there are a lot of puzzles available on the internet as well make sure you prepare on puzzles before appearing to any google interview. Sometimes they even ask questions on lateral thinking and tricks which doesn't require complex logic but sharp mind to guess. See this list of the most popular puzzles asked in programming interviews.


Books to Prepare Google Interview Questions




Best Books to Prepare Google Software Developer Interviews

There are the lot of books available in the market, which covers lot of different topics asked in Google or Amazon interviews, but most of them lack quality. In order to succeed in Google, most important thing is data structure and algorithm topic along with problem-solving skills, if you have that, half of battle is won. Following are some of the popular books, which programmers prefer during preparation of Google interviews:

1. Are You Smart Enough to Work at Google?  By William Poundstone

Google is known for asking insanely difficult puzzles, this book takes you on both. It's readable, fun and same time introduce hard realities of Google interviews. You will be glued to read this book, after reading the first interview experience :)

Google interview questions for software developers



2. Algorithms For Interviews By Adnan Aziz and Amit Prakash

This book is specially written for Google interviews. Authors have put decent effort to not only show how to use algorithm but also focus on problem-solving skill. A must read for any Google aspirants.

Google data structure and algorithmic interview questions



3. Introduction to Algorithms (Includes CD-Rom) By Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein

Another top class book on the topic of Algorithm. As I said, data structure and algorithms are extremely important to survive and excel google interviews. Read this book at least one time, if not two. Another must read for Google aspirants.

Google programming interview questions



4. Top 10 coding interview problems asked in Google with solutions: Algorithmic Approach

One more great book to prepare for Google interviews. This book present 10 top quality code questions asked on Google, with a full solution including pseudo code and C++. This book fills a lot of gap on how to solve coding questions on Google, something freshers and software engineers lacks.

Google Coding Interview Questions and Answers


That's all on Google interview questions for Software Engineers and Programmers .What is most important is that most of the questions asked in google are original and you don't see them again. Only practice can give you guidance on how to tackle those questions. That's why its important to practice as many Google interview question as possible. 


16 comments :

Gowardhan said...

very nice post

Javin @ Java Collection interview questions said...

@Readitt, Thanks for your comment. glad to hear that you like this google interview questions.

Hitesh said...

In my google phone interview , they asked me explain algorithm for designing lift if you have 3 lift which goes form 1 to 15th floor so that people wait time is minimal. decent questions but google interviews are more tougher than these.

Anonymous said...

does Google takes telephonic interview ? never heard that before. All my friends so far interviewed by Google has personal interview.

Teddy said...

There is always buzz and curiosity about questions asked in Google interviews. most of these these questions are already appeared in Google and chances are more that they won't be repeated. Only benefit these Google interview question can provide anyone is practice but as Google always ask new, unheard and novel questions, you got to prepare yourself more. how about language specific questions, I don't see any questions form SQL, C, C++ or Java here. Doesn't Google asked questions on SQL, C, C++ or Java, I heard they use Java a lot along with python and JavaScript.

Anonymous said...

hi Javarevisited, I am looking for some Java questions asked in Google , Can you help with them ?

Anonymous said...

From an Amazon interview:
Write a function to convert roman numerals to integers

Anonymous said...

What is difference between C and Java Coding, this is what they asked my friend

Anonymous said...

Top 10 coding interview problems asked in Google with solutions: Algorithmic Approach By Dr Lin Quan is a great book for programming problems asked in google/amazon/facebook

Sumit Arora said...

You need to follow a very organized and disciplined approach to prepare for the Software Engineering Job at Facebook/Google/Amazon/Microsoft etc.

Actually all these companies e.g. MS, Google, Amazon, Facebook, Apple follow an approach on which that measure the thought process of a candidate.

And they use different means to evaluate that, but yes most of them uses Algorithms/Data Structures/Open-ended questions(If you have applied for a software engineering job) as one of the approach to evaluate the talent.( As those are the base to develop the technologies).

To be accustomed with algos/data structure/coding , you must have understood/practiced the minimum e.g. :

(Step-1): You should have practical understanding of the Algorithms (e.g. When to use BackTracking, When to Use Divide and Conquer, Why double hashing required?, Where brute force concept can be applied?) (100 Hours).

(Step-2): You should have practical understanding of Data Structures e.g. (Practical use cases related to :when to use circular buffer , or when to use adjacently list or the combination of both or something else to solve the problem ).
(100 Hours)

(Step-3) : You must practice several coding problems to implement the things which learn from Step-1 , and Step-2 (you may do the following choose any coding language for the choice of yours (C, C++ or Java or Python or PHP or any one else ).
(100 Hours)

(Step-4): Solving the problem doesn't mean just to solve it, but to understand the best way to solve it e.g. The given technical problem can use various ways to come to solution, and you might want to use the optimal one. (How you connect the given solution with the computing/memory resources e.g. Memory/Processing Power)
(100 Hours)

Most Important One.

However other than programming you might need to understand the main concept for the interview is to keep the interview active and this requires some action from your side, such as the following:

You need to talk.

You need to explain.

You need to discuss.

You need to express your views.

You need to understand clearly the questions given to you.

You need to understand the interviewer’s expression and mindset to un- derstand those questions.

You might need to ask appropriate questions to understand the question or any other discussion item. (100 Hours)

And also :

Prepare : "Please tell me about your self" , "Your skills related positive/negative further interest" , Basics for the most needed computer science concepts or anything as you presented on your "CV/Resume".
(100 Hours)

Above is just a sample plan, you may customize the way you want(e.g. 100 hours to 10 hours or something else) - Click to Amazon, to find the best books you might need.

(Here Google doesn't mean the Google, it means any company which is very creative to introduce the computer science related products ).

Anonymous said...

Hello Sir, Can you please share some Java questions asked at Google for Software Developer or Software Engineer job interviews? I need them urgently.

Anonymous said...

@Anonymous, some questions I have seen in past
- difference between final, finally and finalize in Java?
- how do you design another programming language which can run like Java?
- when to use abstract class over interface in Java?
- how does lambda expression of Java 8 was implemented?
- how does generics in Java implemented internally?

Good luck

Anonymous said...

Very helpful

Unknown said...

Hello everyone!! I am working on a plugin project as a part of my internship for MCA from a company...I have some issues related with my project...can anyone help me to come out this...???? My project title is "Diagramming using YFiles"..

Unknown said...

Very nice post. I am working as software engineer on Java/J2EE in service based company and i have done MCA from Private college.. does google or other top product based companies shortlist my resume? plz reply

Unknown said...


hi I am looking for some Java questions asked in Google , Can you help with them

Post a Comment