A knowledge base distilled from 9 books
Computer science, clarified.
Algorithms and data structures, design patterns, software architecture, refactoring, and the craft of building software — organized into domains and topics, cross-linked into one knowledge graph.
- Domains
- 10
- Topics
- 71
- Graph edges
- 145
Algorithmic FoundationsHow to reason about algorithms before writing them: asymptotic analysis, recursion, invariants, and the limits of what computers can do efficiently.Core Data StructuresThe building blocks behind every library collection: arrays, lists, trees, heaps, hash tables, tries, and union-find — how they work, not just how to call them.Sorting & SearchingThe comparison and non-comparison sorts every other algorithm leans on, plus binary search and its many disguises.Graph AlgorithmsTraversal, ordering, shortest paths, spanning trees, and flow — the algorithms that turn a graph representation into an answer.Algorithm Design ParadigmsGeneral-purpose strategies for building an algorithm from scratch: divide and conquer, greed, dynamic programming, backtracking, and string matching.Coding Interview PatternsThe recurring shapes behind interview problems — recognize the pattern, and the algorithm follows.Design PatternsThe Gang of Four catalog: reusable object-oriented solutions to recurring design problems, and why each one earns its complexity.Software Architecture & Design PrinciplesSOLID, component cohesion and coupling, and the boundaries that keep a system’s policy independent of its details.Refactoring & Code QualityRecognizing code smells and repairing them in small, behavior-preserving steps, backed by tests.Software Craftsmanship & PracticeThe habits and working methods behind durable software: pragmatic principles, prototyping, estimation, tooling, and debugging.
Distilled from
- Algorithms (4th ed.)Robert Sedgewick, Kevin Wayne
- Algorithms Notes for ProfessionalsStack Overflow Documentation
- Clean ArchitectureRobert C. Martin
- Crushing the Technical Interview: Data Structures and AlgorithmsKeith Henning
- Data Structures and Algorithms in Java (6th ed.)Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser
- Data Structures and Algorithms in Java: A Project-Based ApproachDan S. Myers
- Head First Design Patterns (2nd ed.)Eric Freeman, Elisabeth Robson
- Refactoring: Improving the Design of Existing Code (2nd ed.)Martin Fowler
- The Pragmatic Programmer (20th Anniversary ed.)David Thomas, Andrew Hunt