explaingit

jwasham/coding-interview-university

346,224Audience · developerComplexity · 1/5Setup · easy

TLDR

A battle-tested, months-long self-study plan covering the computer science fundamentals needed to pass technical interviews at top tech companies, created by someone who used it to get hired as a Software Development Engineer at Amazon.

Mindmap

mindmap
  root((repo))
    What it is
      Self-study plan
      Interview prep guide
      Not a full CS degree
    Data structures
      Arrays and linked lists
      Hash tables
      Trees and heaps
      Graphs
    Algorithms
      Sorting methods
      Binary search
      Dynamic programming
      Big-O analysis
    Meta advice
      Language choice
      Recommended books
      Daily plan template
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Follow a structured, all-in-one study plan to prepare for software engineering interviews at Amazon, Google, Meta, or Microsoft.

USE CASE 2

Learn the core computer science topics most relevant to interviews, algorithms, data structures, and Big-O analysis, as a self-taught developer.

USE CASE 3

Use the built-in daily plan template and recommended book list to pace a multi-month interview prep campaign.

USE CASE 4

Review the author's documented mistakes to avoid over-studying and focus only on the 75% of CS that actually appears in interviews.

Getting it running

Difficulty · easy Time to first run · 5min
No explicit license stated for this repository.

In plain English

This repository is a long, opinionated study plan that the author (John Washam) put together while preparing to interview at large tech companies. He used it himself for several months of full-time study and was eventually hired as a Software Development Engineer at Amazon. He shares it so other self-taught engineers can prepare for technical interviews at companies like Amazon, Facebook, Google, and Microsoft without having to assemble the material themselves. The README is upfront about what it is and is not. It is a plan for backend software engineering interviews, not frontend or full-stack roles, and it covers roughly the 75% of a computer science curriculum that the author judges to be relevant for interviews. The author explicitly warns the reader not to study as much as he did, and points to Kamran Ahmed's Computer Science Roadmap for anyone who wants a more complete self-taught CS program. The body of the README is a large table of contents that lays out both the meta-advice and the technical curriculum. The meta sections include why to use the plan, how to use it, how to choose a programming language, recommended books for data structures, algorithms, and interview prep, the author's own mistakes to avoid, a daily plan template, and pointers for coding question practice. The technical curriculum then walks through algorithmic complexity and Big-O analysis, core data structures (arrays, linked lists, stacks, queues, hash tables), supporting ideas (binary search, bitwise operations), trees (binary search trees, heaps and priority queues, balanced search trees, traversals such as preorder, inorder, postorder, BFS, and DFS), sorting algorithms (selection, insertion, heapsort, quicksort, mergesort), graphs (directed and undirected, adjacency matrix, adjacency list, BFS, DFS), recursion, dynamic programming, design patterns, combinatorics and probability, and the theory of NP and NP-complete problems. The README is also translated into many languages, with separate translations in progress tracked through GitHub issues.

Copy-paste prompts

Prompt 1
I'm a self-taught developer preparing for a Google software engineering interview in 3 months. Based on the coding-interview-university plan, build me a week-by-week study schedule.
Prompt 2
Explain Big-O notation and algorithm complexity to me the way coding-interview-university introduces it, plain English, no jargon, just examples.
Prompt 3
I want to practice the data structures in coding-interview-university. Give me 3 practice problems for each of: arrays, linked lists, hash tables, and binary trees.
Prompt 4
I'm stuck on dynamic programming from the coding-interview-university curriculum. Walk me through the core concept with a simple example before I tackle harder problems.
Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub jwasham on gitmyhub

Verify against the repo before relying on details.