Tuesday, January 24, 2012

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

These Google interview questions are some of my favorites collected from different sources. Every Programmer know that Google is one of the best technology company and its dream for many software developer to work for google, but at same time interview process at google is very tough and only few genuine intelligent programmers get through there interview process. Google interview questions are always been a good topic of discussion when few young software developer gathered around, I can still remember when one of my friend got call from google for interview then how whole bunch was got excited. We have searched a lot on 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 algorithm and data structure plays a lot more important roles. Books like Algorithms for Interviews and Introduction to Algorithms are 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, rest of them become very easy.

Answers of these Google interview questions can be found  by doing google :) , Also each question in itself demand a blog post and I will try to cover those one by one as and when time allows. I have divided all interview questions on different category 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 process. Before starting preparation, a must read to get yourself motivated.

Google Interview questions answers for Software Engineers

Google interview questions based on data structure

top google interview questions and answers for software engineer
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 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 equals to "n" ?
3) How do you convert a max heap to min heap ?
4) You have two list 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 based on operating system

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 ?


Google interview questions on Software design

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

1) You have provided a set of points across globe as latitudes and longitudes ? How will you determine
points which are within a particular mile ?
2) Can you design data package transfer form London to Tokyo ?
3) Design a distributed system for storing a static set of (key, value) pairs which will behave like
a hashtable , 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

 

Google interview questions on Coding

There will always be some questions on coding in Google interview, especially if it is for 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 requires good knowledge of recursion, data structure and good familiarity of 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. Code should be thread-safe?
3) Can you write code to implement your own hashtable in C++ or Java?
4) Write code to find out number of occurrence of a number in a sorted array ?
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.

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 light question and some time after exhaustive screening they ask based on your profile and luck. Apart from below they also questions based on puzzles and riddles.

1) How Google Search work ? If asked to you how will you design it to scale and fast at 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 lot of puzzles available in internet as well make sure you prepare on puzzles before appearing to any google interview. Some time 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

There are lot of books available in 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. Algorithms For Interviews By Adnan Aziz and Amit Prakash
This book is especially written for Google interviews. Authors has 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.

2. Are You Smart Enough to Work at Google?  By William Poundstone
Google is known for asking insanely difficult puzzles, this books 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 :) 

3. Introduction to Algorithms (Includes CD-Rom) By Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein
Another top class book on 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.

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 full solution including pseudo code and C++. This book fills lot of gap on how to solve coding questions on Google, something freshers and software engineers lacks.

That's all on Google interview questions .What is most important is that most of the questions asked in google is original and you don't see them again. practice can give you guidance on how to tackle those questions.

11 comments :

Readitt 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.

Post a Comment