Skip to content

jguamie/algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Preparing for the Google Coding Interview

Once it has been decided we are bringing you in for interviews, your interview performance is much more critical than your educational/work background. Based on interviews, we regularly hire engineers with no college degree and only a couple years of experience at a higher level than engineers with many years of experience and a master's degree in Computer Science.

Important Note for Industry Hires

Your projects and work experience may develop your coding skills in various programming languages and object-oriented design. However, it will not be enough to be proficient in data structures and algorithms. Coding interviews are a learned skill. It requires a lot of practice and studying outside of your job responsibilities.

Prerequisites

These prerequisites are for Java interviewees only. Move onto the next section if you're prepping with a different programming language. If you have not decided on a programming language yet, I strongly recommend Java. The most popular prep resources are written in Java.

Practice

Mock Interviews

Practicing with mock interviews is mandatory. I cannot stress this enough. LeetCode is incredible but the actual coding portion of an interview should only be about 15 minutes of a 45-minute Google interview. You're spending a lot of time talking through potential solutions and trade-offs before you start coding. After you're done coding, you need to walk us through test cases. You will not pass a difficult Google-level coding interview without live interview practice and feedback. If you are an experienced software engineer and a top performer at your current employer:

  • At 20+ mock interviews, you have a very high chance of getting hired at L4+. At L5+, you are also required to succeed at System Design interviews.
  • At 10- mock interviews, you're relying on a lot of luck. Even if you pass, you will most likely get hired at L-1.

Mock interview resources:

  • Technical Mock Interview
    • This is a paid service with high quality interviewers from Google, Facebook, and Amazon with detailed verbal/written feedback and personalized coaching. I strongly recommend doing at least 10 mocks through here.
  • interviewing.io
    • This is a free service. It is a hiring platform where it will connect you with potential employers if you pass enough interviews. The quality of feedback is poor in comparison to Technical Mock Interview.
  • pramp.com
    • This is a free service. It is a peer-to-peer mock interview platform. Another great resource if you're trying to do as many mocks as possible.
  • Friends and colleagues
    • Find other engineers to practice with. Start an interview club with your friends. Meet weekly to go through videos and coding exercises together.
  • Mentor
    • Find a mentor. Reach out to other software engineers you respect. Ask them to meet with you regularly for mentoring sessions.

Recommended Order of Study

Big O

  • For every algorithm, understand its time and space complexity (Big O) characteristics.
  • Chapter VI: Big O - Cracking the Coding Interview
    • A lot of coding questions can be solved with various algorithms. Talking through the Big O of each is essential in trade-off discussions.

Binary Search

Sorting

Arrays

Linked Lists

Binary Trees

More Binary Trees

Heaps

LeetCode - Easy

Many LeetCode Medium and Difficult problems are advanced versions of Easy problems. Practicing and understanding a large number of Easy problems builds a strong foundation to set you up for success with Medium/Hard problems. Also, going through a high volume of Easy problems will increase your coding speed.

Graphs

You should expect to get asked a couple graph questions at Google. Don't bother interviewing if you haven't mastered and memorized graph algorithms. Also, get comfortable in recognizing when a problem requires a graph solution instead of a binary tree solution (and vice versa).

More Graphs

  • Skip all of Week 3.
  • Study Week 4: Tries section only.
  • Skip all of Week 5 and Week 6.

Dynamic Programming

Unless you're interviewing for an entry-level L3 position, you should expect to get asked a couple dynamic programming questions at Google. These require a lot of practice to get down.

More Dynamic Programming

LeetCode - Google Interview

This section is absolutely required. Do not skip any of these problems.

Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages