Giter Site home page Giter Site logo

algorithms-1's Introduction

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.

Is it worth putting in the time to prepare? I would say yes, you want to be placed into a level where your experience shines. Plus, it will give you more growth opportunities. Another benefit: I will neither confirm nor deny these compensation numbers. However, I can say that the compensation difference between levels is high.

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

algorithms-1's People

Contributors

jguamie avatar manimaul avatar rivukis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.