What Is This Guide?

A comprehensive, bottom-up algorithm & data structures curriculum tailored to Google’s L5+ coding interviews (2 × 45-minute sessions). Written in Python (Google’s preferred interview language), with Go for concurrency topics.

Every chapter builds on the previous one. By the time you reach graphs and dynamic programming, you’ll have all the mental tools to decompose problems independently.

What Google Evaluates

Area What They Want to See

Problem Decomposition

Break the problem down BEFORE coding. Think out loud.

Multiple Approaches

Discuss brute-force first, then optimize. Show you know tradeoffs.

Big-O Analysis

State time AND space complexity for every approach. Explain WHY.

Code Quality

Clean, readable, executable code. Not pseudocode.

Edge Cases

Handle nulls, empty inputs, single elements, duplicates.

Communication

Ask clarifying questions. State assumptions. Listen to hints.

4-Week Study Plan

You have 4 weeks. Chapters are ordered by priority — the first 10 chapters cover what Google asks 95% of the time. Chapters 11+ cover important but less frequently tested topics.

If time is short, focus on chapters 0–10 first. Chapters 13–15 (Union-Find, Concurrency, Interview Strategy) should be read even if you can’t do all exercises.

Week 1: Foundations

  • Day 1–2: Chapter 00 — Python Toolkit (reference chapter, skim and revisit)

  • Day 2–3: Chapter 01 — Big-O Complexity

  • Day 3–5: Chapter 02 — Arrays and Strings

  • Day 5–7: Chapter 03 — Hash Tables

Week 2: Core Structures

  • Day 8–9: Chapter 04 — Sorting

  • Day 9–10: Chapter 05 — Recursion and Backtracking

  • Day 10–11: Chapter 06 — Binary Search

  • Day 11–12: Chapter 07 — Linked Lists

  • Day 12–14: Chapter 08 — Trees ⭐

Week 3: Graphs and DP (The Hard Stuff)

  • Day 15–18: Chapter 09 — Graphs ⭐⭐ (most critical chapter)

  • Day 18–21: Chapter 10 — Dynamic Programming

Week 4: Advanced Topics + Review

  • Day 22: Chapter 11 — Heaps and Priority Queues

  • Day 23: Chapter 12 — Stacks and Queues

  • Day 24: Chapter 13 — Union-Find

  • Day 25: Chapter 14 — Concurrency (Go)

  • Day 26: Chapter 15 — Interview Strategy

  • Day 27–28: Review weak areas + mock interviews

How to Run the Code

Prerequisites

  • Python 3.12+ (tested on 3.14)

  • Go 1.21+ (for Chapter 14 only)

Setup

# Create and activate virtual environment
cd google-python-guide
python3 -m venv venv
source venv/bin/activate   # macOS/Linux

# Install test runner
pip install pytest

Running Tests

# Run ALL tests across all chapters
source venv/bin/activate
python3 -m pytest --tb=short -v

# Run tests for a specific exercise
python3 -m pytest 09-graphs/code/number_of_islands/ -v

# Run tests for a specific chapter
python3 -m pytest 02-arrays-and-strings/code/ -v

# Run a single test file with unittest directly
python3 -m unittest 02-arrays-and-strings/code/two_sum/test_solution.py -v

Running Solution Files Directly

Every solution.py file can be run standalone to see example output:

python3 09-graphs/code/number_of_islands/solution.py

Chapter Index

# Chapter Priority

00

Python Toolkit for Algorithms

📖 Reference

01

Big-O Complexity

🔴 Critical

02

Arrays and Strings

🔴 Critical

03

Hash Tables

🔴 Critical

04

Sorting

🔴 Critical

05

Recursion and Backtracking

🔴 Critical

06

Binary Search

🟡 Important

07

Linked Lists

🟡 Important

08

Trees

🔴 Critical

09

Graphs

🔴🔴 Most Critical

10

Dynamic Programming

🔴 Critical

11

Heaps and Priority Queues

🟡 Important

12

Stacks and Queues

🟡 Important

13

Union-Find

🟡 Important

14

Concurrency (Go)

🟢 Good to Know

15

Interview Strategy

🔴 Critical