Skip to content

Computational Thinking

The discipline of reframing a messy real-world problem into something a machine can solve — by breaking it down, spotting structure, abstracting away noise, and expressing the result as an algorithm.

This section covers the four classic pillars — decomposition, pattern recognition, abstraction, and algorithm design — and then closes the loop by mapping a problem onto concrete code and data structures. The through-line is a repeatable pipeline: take an ambiguous task, carve it into tractable parts, find what repeats, hide what doesn't matter, and encode the rest as steps a computer can execute.

Topics

# Topic What you'll learn
01 Decomposition Functional vs data decomposition, coupling and cohesion, Conway's law, cutting along natural seams instead of arbitrary lines
02 Pattern Recognition Spotting recurring structure, isomorphism between problems, when a "new" problem is an old one in disguise, and the trap of false patterns
03 Abstraction and Generalization Choosing the right level of detail, leaky abstractions, the rule of three before generalizing, premature-abstraction cost
04 Algorithmic Thinking Expressing a solution as deterministic steps, invariants, termination, correctness vs efficiency, and reasoning about edge cases
05 Modeling a Problem in Code Mapping domain concepts to types and data structures, choosing representations that make the right operations cheap, model–reality drift

How to use this section

Each topic has five depth levels — junior → middle → senior → professional — plus an interview Q&A bank and hands-on tasks. Start at your level and climb. Read it in order: decomposition and pattern recognition feed abstraction, which feeds algorithm design, which finally lands in real code.


Part of the Engineering Thinking roadmap. Once you can frame problems computationally, Problem-Solving gives you the process for actually working through them.