
Programming Paradigms
When the paradigm shifts, so does your thinking
Evan Moon
6 chaptersHow object-oriented, functional, and declarative programming approach the same problems differently, and the mathematical foundations behind abstraction and type systems.
01
Object-Oriented Programming Is Actually Fun: A Quick Tour of OOP
Classes, inheritance, polymorphism — let's sort out the core concepts of OOP
02
Functional Thinking – Breaking Free from Old Mental Models
From imperative to declarative: how to shift the way you think about programming
03
What Is Abstraction, Really?
More important than implementation: the essence of abstraction that developers should think about
04
Misconceptions About Declarative Programming
It's not syntax — it's a shift in thinking that produces truly declarative code
05
Why Do Type Systems Behave Like Proofs?
From seeing type checks as compiler hurdles to reading type systems as logic
06
Beyond Functors, All the Way to Monads
Understanding Applicative Functors and Monads through TypeScript