google-interview-prep

Either just go through this guide instead.

Or go through the following before the interview.

  • LeetCode
  • Cracking the Coding Interview (CTCI) Questions
  • Anki Card Preparation
  • Daily Anki Card Review Until Job Offers
  • Google Tech Dev Guide

Note: Clear checkboxes by doing a find & replace on this document and swapping "[x]" with "[ ]" (without quotes)


CTCI Questions

  • All Relevant CTCI Questions
    • Ch 1 - Arrays and Strings
    • Ch 2 - Linked Lists
    • Ch 3 - Stacks and Queues
    • Ch 4 - Trees and Graphs
    • Ch 5 - Bit Manipulation
    • Ch 6 - Math and Logic Puzzles
    • Ch 7 - Object-Oriented Design
    • Ch 8 - Recursion and Dynamic Programming
    • Ch 9 - System Design and Scalability
    • Ch 10 - Sorting and Searching
    • Ch 11 - Testing
    • Ch 14 - Databases
    • Ch 16 - Moderate
    • Ch 17 - Hard

Leet Code Questions

Top 100 Liked Problems

  • All Leet Code Top 100 Liked Problems
    • All Easy
    • All Medium
    • All Hard

Interview Questions Sets

  • All Leet Code Google Interview Question Sets
  • All Leet Code Amazon Interview Question Sets

Google Tech Dev Guide

  • All Google Tech Dev Guide - Foundations of Programming sections
  • All Google Tech Dev Guide - Advanced Programming sections

Anki Cards

  • Anki Cards on:
    • Advanced Algorithms
      • Divide and Conquer
      • Dynamic Programming
      • Greedy Algorithms
    • Math
      • Elementary Probability Theory
      • Combinatorics
    • System Design
      • Distributed Systems
      • Concurrency
      • Object Oriented Design
    • D.S. & A. Implementations
      • C++
        • Stacks
        • Queues
          • Priority Queues
        • Binary Tree (BT)
          • BT Node
          • BT Traversal
            • Pre-order
              • DFS
              • BFS
            • In-order
              • DFS
              • BFS
            • Post-order
              • DFS
              • BFS
            • Reverse In-order
              • DFS
              • BFS
          • Node-wise Comparison of 2 BT's
          • Tree Depth
          • Tree Diameter
          • Red-Black Trees
        • Heaps
          • Max-heap
          • Min-heap
        • Tries
        • Graphs
          • Adjacency List Representation
          • Matrix Representation
          • Object and Pointers Representation
          • Graph Search
            • BFS
            • DFS
          • Graph Connectivity
          • Cycle Detection
          • Distance between Nodes
        • Hashing
          • Hash Functions
          • Hash Maps
            • Direct Addressing
            • Open Addressing
          • Hash Sets
        • Resizable ArrayList
        • Linked List
          • Singly
          • Doubly
          • Cycle Detection
        • Sorting
          • Merge Sort
          • Quick Sort
          • Selection Sort
          • Insertion Sort
          • Bubble Sort
          • Heap Sort
          • Radix Sort
          • Topological Sort
        • Searching
          • Binary Search
          • A*
          • Dijkstra
      • Python
        • Stacks
        • Queues
          • Priority Queues
        • Binary Tree (BT)
          • BT Node
          • BT Traversal
            • Pre-order
              • DFS
              • BFS
            • In-order
              • DFS
              • BFS
            • Post-order
              • DFS
              • BFS
            • Reverse In-order
              • DFS
              • BFS
          • Node-wise Comparison of 2 BT's
          • Tree Depth
          • Tree Diameter
          • Red-Black Trees
        • Heaps
          • Max-heap
          • Min-heap
        • Tries
        • Graphs
          • Adjacency List Representation
          • Matrix Representation
          • Object and Pointers Representation
          • Graph Search
            • BFS
            • DFS
          • Graph Connectivity
          • Cycle Detection
          • Distance between Nodes
        • Hashing
          • Hash Functions
          • Hash Maps
            • Direct Addressing
            • Open Addressing
          • Hash Sets
        • Resizable ArrayList
        • Linked List
          • Singly
          • Doubly
          • Cycle Detection
        • Sorting
          • Merge Sort
          • Quick Sort
          • Selection Sort
          • Insertion Sort
          • Bubble Sort
          • Heap Sort
          • Radix Sort
          • Topological Sort
        • Searching
          • Binary Search
          • A*
          • Dijkstra

Extra / TODO

  • All Relevant CLRS Chapters
  • Learneroo Math Course
  • Behavioral Questions Prep
    • Fill in Behavioral Chart
  • Installation instructions on Anki, leetcode signup, and links to books and courses
  • Source Control - Git Basics -> Advanced
  • Python Language Specifics
  • C++ Language Specifics
  • AI/ML Prep
  • Agile Software Development