All software design is composition: the act of breaking complex problems down into smaller problems and composing those solutions. Most developers have a limited understanding of compositional techniques. It's time for that to change.
- Functional programming
- Object composition
- How to work with composite data structures
- Higher order functions
- Functors (e.g., array.map)
- Monads (e.g., promises)
This book began life as a popular blog post series that attracted hundreds of thousands of readers and influenced the way software is built at many high growth tech startups and fortune 500 companies.