Code That Fits in Your Head tackles a problem dear to my heart. Mark Seemann realized good software engineering practices are out there, but it’s hard to connect the dots between scattered sources.
Mark gathers that scattered knowledge with Code That Fits in Your Head. The book distills leading literature into an actionable personal practice of software.
The book centers around a worked example. This example never feels tedious or like a diversion from the reading. The example weaves software practices into a story. It shows the reader healthy personal practice through in-context application.
Mark, as usual, treats his readers like there are smart, yet he also breaks down his ideas clearly such that readers of many levels will understand.
It’s impressive how Mark borrows ideas from many schools of software development and makes them approachable. He somehow skips much of the difficulty learning different software paradigms (like functional) and presents each idea as a logical progression from values and practices most developers are familiar with. There’s no fanfare or promise to solve all your problems, it’s a practical conclusion.
The book suggests many practices, but skillfully shuns dogma. Mark does a great job pointing back to practical goals (like understandable code that fits in your head) and clearly highlighting the essence in his suggestions (what matters, what doesn’t). He also cites sources so readers can explore further.
If I have any gripe with this book, I wish there was a clearer roadmap for next steps. Mark mentions topics he avoids, like architecture and legacy code, because they’ve been covered well elsewhere. However, choosing a book from his many references could be a daunting task. It’d be nice if there were a “Next Steps” reading list to fill in the knowledge areas he thinks are already well covered. Perhaps even a brief learning framework like the Construx Career Ladder.
Code That Fits in Your Head is a masterpiece. It sets out a cohesive and comprehensive approach to personal developer practices. This is hands-down the first resource I’ll jump to for training junior devs.