Why Is This So Hard?
After years of teaching functional programming to devs, I know one thing for certain: learning FP is harder than it needs to be.
Blog posts and video tutorials focus on single ideas in isolation. A clever use of Option
, a quick intro to map
, or a validation trick. Some are helpful, but they are more snapshots into the writer’s journey than a path to learning functional programming.
Academic papers reward complexity and insider language. They are written by academics for other academics, using jargon to signal belonging. Even when the ideas are useful, the writing keeps outsiders at a distance.
Library docs assume you already understand the concepts. Teaching is out of scope. You get function names, type signatures, and how to compose them. The documentation is technically correct and thorough, but it is reference material, not a way in.
I started this project thinking, “What if there were a library where teaching was in scope?” I spent a couple of months proving out the ideas, making sure I would not hit a dead end in Elixir. Once I was confident, I outlined the book and pitched it to the publisher behind my favorite titles on Elixir and Erlang. Finally, I built the book and the library together, making the library production ready and the book a clear, connected path through the ideas behind functional programming.
You can find Advanced Functional Programming with Elixir here: https://pragprog.com/titles/jkelixir/advanced-functional-programming-with-elixir