Fabulous Adventures in Data Structures and Algorithms
Get the eBook free when you register your print book at Manning.
“Rigorous, curious, quietly funny, and extraordinarily generous with hard-won insight.”
—Scott Hanselman, Microsoft
This book invites you to step off the beaten path and explore interesting, unfamiliar, and even exotic algorithms that will challenge your perspective and elevate your code. Legendary language designer Eric Lippert guides you with a refreshing, conversational approach, providing beautifully practical examples that highlight the recurring patterns behind stubborn coding problems.
You’ll begin with a fresh look at foundational, thread-safe, and persistent immutable data structures. Lippert demystifies stacks, queues, and finger-tree deques, illustrating how to manage memory efficiently through persistence. For developers working in highly concurrent, cloud native environments, these patterns will help you eliminate hard-to-spot race conditions and state-mutation bugs.
Your fabulous adventure then turns to structural search, compiler design, and the integration of functional programming within mainstream object-oriented languages. You’ll dive into Directed Acyclic Word Graphs (DAWGs), greedy pretty printers, and the complexities of tree unification. This section bridges theory and real-world tools, teaching you how to design highly modular compilers or robust static analysis engines and to write declarative, composable, and expressive APIs.
In the final leg of your journey, you’ll model randomness, statistical reasoning, and continuous probability—core concepts for AI and predictive analytics. Lippert introduces advanced Bayesian and monadic techniques, teaching you how to construct joint distributions and sample them using the powerful Metropolis algorithm. This statistical toolkit aligns perfectly with modern data-driven systems that need to make consistent, sound decisions under real-world uncertainty.
In the age of AI coding, implementation is becoming cheaper. AI can write code, but it cannot relieve developers of responsibility for understanding what the code means, why a given solution was chosen, how it will scale, and whether the problem has been framed correctly. This book develops exactly that judgment. It teaches the part that is becoming more valuable: recognizing, selecting, questioning, and evaluating the ideas behind implementations. It is an apprenticeship in computational taste, taught through unusual and memorable examples.
What’s inside
• Build highly efficient, thread-safe concurrent systems using immutable parts
• Compress massive data representation sizes using memoized quadtrees and DAWGs
• Solve complex compiler optimizations using unification and backtracking search
• Automate precise, mathematically sound decisions under real-world uncertainty
About the reader
For working programmers familiar with C#, Java, or Python.
About the author
Eric Lippert has designed programming languages, compilers, and developer tools for Microsoft, Coverity, and Facebook. He was a key member of the C# language design team and writes at ericlippert.com.
From the Publisher
“Filled with real-life examples and unique experiences drawn from the author’s career journey. A true gem.”
Anton Gubarenko, Independent iOS Consultant, Mentor, and Startup Advisor
“Goes well beyond the typical text on data structures and algorithms.”
Ronald Mak, Author of Software Design for Python Programmers
“Succeeds in making advanced topics accessible without oversimplifying them.”
Stepan Plotytsia, Grid Dynamics Holdings, Inc.
why this book?
Fabulous Adventures in Data Structures and Algorithms helps you understand not just how data structures and algorithms work, but why they work and when to use them.
Eric Lippert’s clear explanations, practical code, and thought-provoking puzzles strengthen problem-solving skills and algorithmic reasoning.
You will become better equipped to write correct, efficient software and make informed engineering decisions.
about Manning
Manning helps developers and tech professionals stay ahead in a fast-moving industry with expert-led books, videos, and projects. Learning never stops, but it’s hard to keep up, so we focus on content that’s practical, clear, and trusted. As an independent publisher, we adapt quickly, from pioneering early-access books to offering DRM-free eBooks. Our series, like “In Action” and “In a Month of Lunches”, reflect a commitment to making complex topics accessible.
Customer Reviews
4.5 out of 5 stars 39
4.5 out of 5 stars 18
4.7 out of 5 stars 283
—
4.2 out of 5 stars 15
4.6 out of 5 stars 32
User experience level
Intermediate Intermediate Intermediate Intermediate Intermediate Beginner
About the reader
For intermediate programmers. For readers who know the basics of Python. No advanced math or programming skills required. For serious and curious software engineers. Examples in Python, R, and pseudocode. For new programmers.
Special features
Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant. Includes liveBook with out built-in AI assistant.
Page count
768 280 320 275 304 272

