coding-interview-university
A complete computer science study plan to become a software engineer.
Coding Interview University, a study plan with a success story
Coding Interview University started as one person's to-do list and grew into a complete computer science study plan. The author says it got him hired at Amazon after months of full-time study.
Where it came from
The origin story is told in the first person. The author made a short to-do list of study topics for becoming a software engineer, and it grew into the large list that exists today. He studied eight to twelve hours a day for several months and got hired at Amazon. He also insists, more than once, that readers will not need to study as much as he did.
The scope
The plan targets software engineering, not frontend or full-stack work, and points elsewhere for those paths. It covers roughly 75 percent of a university computer science program, which the author argues is enough for an interview. The topic list runs from balanced search trees and traversals to heapsort, quicksort, mergesort, and graph work with adjacency matrices and BFS and DFS. Optional sections cover AVL, splay, red-black, and B-trees, plus system design for people with four or more years of experience.
How the plan works
Everything below the top is an outline, and the README says to work through it in order. Git users fork the repository; everyone else grabs the zip from the Code button. Each day means taking the next subject, watching some videos, and writing an implementation in the chosen language. You do not need to memorize every algorithm, just understand it well enough to write your own version.
Advice from the author's mistakes
The author volunteers his own missteps. He watched hours of videos, took copious notes, and still forgot much of it months later. His answer was flashcards, and he built a mobile-first site for reviewing them. He also warns against overdoing it: his own database ran to over a thousand cards, most of them trivia nobody needs. Anki comes recommended as a lighter alternative.
Languages and resources
The plan asks readers to pick one language for the interview and a second for study. C gets a recommendation for learning data structures and memory, because pointers and allocation are visible there. Python is praised as expressive and useful for writing less code. Books are listed per language, and some video resources are MOOCs that require enrollment and may not be in session.
Community notes