I boast a two-decade-long career in the software industry. Over the years, I have diligently honed my programming skills across a multitude of languages, including JavaScript, C++, Java, Ruby, and Clojure. Throughout my career, I have taken on various management roles, from Team Leader to VP of Engineering. No matter the role, the thing I have enjoyed the most is to make complex topics easy to understand.
This is a one-of-a-kind guide that introduces the data-oriented paradigm. This groundbreaking approach represents data with generic immutable data structures.…
This book profoundly changed how I approach functional programming. I found its deep dive into core concepts like recursion, abstraction, and modularity incredibly insightful. The exercises pushed me to think critically and refine my problem-solving process.
Despite being an older book, its content remains relevant and valuable to me. I consider it the best pragmatic introduction to functional programming.
As others have gone into, this is a great programming book for many reasons, and is a must-read for anyone who is interested in software design. Rather than waste time reaffirming the excellent positive reviews of this book, I wanted to cover something that I have not seen in the reviews: namely that there are multiple publishers for this book (as it is an "open source" book). At the time of writing, there is this McGraw-Hill publication, and, for 40% less, an MIT press edition. While I have not seen the McGraw-Hill version in person to see what quality benefits…
This book profoundly influenced my thinking process, combining the worlds of mathematics, art, and music. I was captivated by how the book explores the deep connections between Gödel’s incompleteness theorems, Escher’s art, and Bach’s art of counterpoint.
The book’s puzzles and thought experiments pushed me to think more abstractly and critically. Despite being dense, I found it incredibly rewarding and eye-opening. I recommend this book to anyone interested in logic, creativity, and the nature of human thought. It’s a masterpiece!
Douglas Hofstadter's book is concerned directly with the nature of maps" or links between formal systems. However, according to Hofstadter, the formal system that underlies all mental activity transcends the system that supports it. If life can grow out of the formal chemical substrate of the cell, if consciousness can emerge out of a formal system of firing neurons, then so too will computers attain human intelligence. Goedel, Escher, Bach is a wonderful exploration of fascinating ideas at the heart of cognitive science: meaning, reduction, recursion, and much more.
Naming and Necessity had a profound impact on my understanding of the importance of using proper names in programming (for functions, variables, etc.). I was fascinated by Kripke’s exploration of the usage of names in our day-to-day language. His arguments challenged my thinking and introduced me to new ways of considering reference and meaning.
The clarity and rigor of his analysis pushed me to refine my reasoning skills. Despite being a challenging read, I found it incredibly rewarding.
'Naming and Necessity' has had a great and increasing influence. It redirected philosophical attention to neglected questions of natural and metaphysical necessity and to the connections between these and theories of naming, and of identity. This seminal work, to which today's thriving essentialist metaphysics largely owes its impetus, is here reissued in a newly corrected form with a new preface by the author. If there is such a thing as essential reading in metaphysics, or in philosophy of language, this is it.
This book fundamentally changed how I think about business processes and problem-solving. I was drawn into the story of a plant manager struggling to save his factory and found Goldratt’s Theory of Constraints incredibly insightful for me as a programmer inside a development team.
The narrative format made complex concepts easy to understand and apply. I learned to identify and address bottlenecks in any system, which has been invaluable in both professional and personal contexts. Despite being a business book, I found it engaging and applicable to my day-to-day challenges as a programmer.
*A Graphic Novel version of this title is now available: "The Goal: A Business Graphic Novel"
30th Anniversary Edition. Written in a fast-paced thriller style, The Goal, a gripping novel, is transforming management thinking throughout the world. It is a book to recommend to your friends in industry - even to your bosses - but not to your competitors. Alex Rogo is a harried plant manager working ever more desperately to try improve performance. His factory is rapidly heading for disaster. So is his marriage. He has ninety days to save his plant - or it will be closed by…
I found Normand’s focus on functional programming techniques incredibly practical and enlightening. Despite its technical content, I found the book accessible and engaging.
I believe this book is essential for anyone looking to tame complexity in their code. It’s a book I revisit when I need to explain the power of functional programming to my colleagues.
Distributed across servers, difficult to test, and resistant to modification-modern software is complex. Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they're easier to test and debug.
Available in PDF (ePub, kindle, and liveBook formats coming soon). about the technologyEven experienced developers struggle with software systems that sprawl across distributed servers and APIs, are filled with…
This is a one-of-a-kind guide that introduces the data-oriented paradigm. This groundbreaking approach represents data with generic immutable data structures. It simplifies state management, eases concurrency, and does away with the common problems you’ll find in object-oriented code.
The book presents powerful new ideas through conversations, code snippets, and diagrams that help you quickly grok what’s great about DOP. Best of all, the paradigm is language-agnostic—you’ll learn to write DOP code that can be implemented in JavaScript, Ruby, Python, Clojure, and also in traditional OO languages like Java or C#.