Knowledge Graph

Algorithmic FoundationsCore Data StructuresSorting & SearchingGraph AlgorithmsAlgorithm Design ParadigmsCoding Interview PatternsDesign PatternsSoftware Architecture & Design PrinciplesRefactoring & Code QualitySoftware Craftsmanship & PracticeAnalyzing AlgorithmsRecursion & RecurrencesAmortized AnalysisAbstract Data TypesCorrectness & InvariantsRandomizationComplexity ClassesArrays & Linked ListsStacks & QueuesTrees & TraversalsBinary Search TreesBalanced TreesHeaps & Priority QueuesHash TablesTriesUnion-FindGraph RepresentationsElementary SortsMergesortQuicksortHeapsortLinear-Time SortingBinary SearchOrder StatisticsBFS & DFSTopological SortShortest PathsMinimum Spanning TreesNetwork FlowStrongly Connected ComponentsDivide & ConquerGreedy AlgorithmsDynamic ProgrammingBacktrackingString MatchingReductions & IntractabilityTwo Pointers & Sliding WindowFast & Slow PointersBinary Search on AnswerTop-K PatternUnion-Find ApplicationsBit ManipulationBacktracking TemplatesProblem-Solving MethodDesign Patterns OverviewCreational PatternsStructural PatternsBehavioral Patterns IBehavioral Patterns IICompound Patterns & MVCAnti-PatternsSOLID PrinciplesCoupling & CohesionComponent PrinciplesClean Architecture BoundariesDependency Inversion & InjectionArchitectural StylesUse-Case-Driven DesignCode SmellsRefactoring CatalogComposing Methods & ConditionalsRefactoring & Testing SafetyRefactoring WorkflowTechnical DebtPragmatic MindsetTracer Bullets & PrototypingRequirements & CommunicationTooling & AutomationEstimatingTesting PhilosophyDebugging