Coding Interview University
John Washam's free, multi-month study plan that took him from web developer to a software engineering job at Amazon, published on GitHub as a long checklist covering complexity, data structures, trees, sorting, graphs, recursion, dynamic programming and more, with videos and reading for each item. It suits self-taught developers who want to see the full computer science foundation large companies expect, and who have months to study.
362k
GitHub · Sept 2026
85k
GitHub · Sept 2026
December 2024
GitHub · Sept 2026
CC BY-SA 4.0
GitHub · Sept 2026
GitHub repo
Interview Prep
John Washam
6 to 12 months
Beginner
Free
What it is
Coding Interview University started as the author's own to-do list of study topics while preparing for large-company interviews. It grew into one of the most-starred repositories on GitHub: about 362,000 stars and 85,000 forks as of September 2026. In the README he says he studied 8 to 12 hours a day for several months, and was hired as a Software Development Engineer at Amazon.
It is a study plan for general software engineering, not frontend or full stack. The README says you need only a little coding experience, patience and time.
What it covers
The plan is an ordered checklist. The core topics:
- Algorithmic complexity and Big-O
- Data structures: arrays, linked lists, stacks, queues, hash tables
- Binary search and bitwise operations
- Trees: binary search trees, heaps and priority queues, balanced trees (concept only), traversals
- Sorting: selection, insertion, heapsort, quicksort, mergesort
- Graphs: directed and undirected, adjacency matrix and list, BFS and DFS
- Recursion, dynamic programming, design patterns, combinatorics and probability, NP-completeness
- How computers run programs, caches, processes and threads, testing, string searching, tries, floating point, Unicode, endianness and networking
It then covers final review, updating your resume, the interview process, questions to ask, and optional extras including system design and scalability. The README states that JavaScript, HTML and CSS, and SQL are not covered.
The README has been translated into many languages, including Urdu, which is helpful for readers in Pakistan.
How long it really takes
The author is honest about scale: it is a long plan that may take months, less if you already know much of it. He also says you will not need to study as much as he did, and that he spent time on things he did not need.
How to use it sensibly
- Use it as a gap finder, not a to-do list to finish. Tick off what you already know, then focus on the gaps.
- Follow the daily plan: take the next subject, watch or read about it, then implement the data structure or algorithm yourself in your chosen language.
- Do problems while learning, as the README advises in its "Don't make my mistakes" section, rather than saving all practice for the end.
- Use flashcards for review; the author notes he forgot much of what he watched without them.
- Skip or skim the optional sections unless you have time; they go beyond what most interviews need.
Where it falls short
It is a list of links, many of them long university lecture videos, so it is slow compared with focused pattern-based preparation. Some links break over time. The last commit to the README was in December 2024.
Pair it with
Pair it with a problem list such as NeetCode 150 or Grind 75 for practice, and with roadmap.sh's computer science roadmap, which the README points to for a fuller self-taught CS programme.
Best for: self-taught developers who want the full scope, and anyone planning a long, thorough preparation.
Ready to start?
Opens on John Washam in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.