Preparing For Google Technical Internship Interviews
Preparing For Google Technical Internship Interviews
Internships
1 Recruitment Process
2 Interview Tips
3 Technical Preparation
Explain
Explain your thought process and decision making throughout the interview. In all of
Google's interviews, our engineers are evaluating not only your technical abilities but
also how you approach problems and how you try to solve them. Many of the questions
asked in Google interviews are open-ended because our engineers are looking to see
how you break down and approach the problem. There is no “one true answer” to them.
We want to understand how you think. This would include explicitly stating and
checking any assumptions you make in your problem solving to ensure they are
reasonable. Think out loud.
2018 | Confidential and Proprietary
Clarify
Ask clarifying questions if you do not understand the problem or need more information.
Many of the questions asked in Google interviews are deliberately underspecified
because our engineers are looking to see how you engage the problem. In particular,
they are looking to see which areas you see as the most important piece of the
technological puzzle you've been presented. Clarifying questions are encouraged!
Also, take interviewer tips seriously because they’re trying to give you helpful hints.
They may ask some additional questions or share comments when you're solving a
problem. Take a minute to think through these prompts -- they can help you land on a
more optimal solution!
Ask Questions
At the end of the interview, most interviewers will ask you if you have any questions
about the company, work environment, their experience, etc. It’s always good to have
some pre-prepared for each interview.
Interviewing at Google
Read more here.
Min/Max Heaps
Heaps are incredibly useful. Understand their application and O() characteristics. We
probably won’t ask you to implement one during an interview, but you should know when
it makes sense to use one.
Recursion
Many coding problems involve thinking recursively and potentially coding a recursive
solution. Prepare for recursion, which can sometimes be tricky if not approached
properly. Practice some problems that can be solved iteratively, but where a more
elegant solution is recursion.
2018 | Confidential and Proprietary
Operating Systems
You should understand processes, threads, concurrency issues, locks, mutexes,
semaphores, monitors and how they all work. Understand deadlock, livelock and how to
avoid them. Know what resources a process needs and a thread needs. Understand how
context switching works, how it's initiated by the operating system and underlying
hardware. Know a little about scheduling. The world is rapidly moving towards
multi-core, so know the fundamentals of "modern" concurrency constructs.
For Underclassmen
Guide for Technical Development
How to Get Hired - What CS students need to know