I've only read the first three chapters of this book, but I've already learnt how to implement a programming language in another programming language! It's also helped my learn some Ruby as a helpful side-effect. On the quality of writing, the book is clear, concise (yet with just the right amount of detail) and straightforward to read. It shows a genuine passion for the subject and turns what could be a dry subject into mentally stimulating read.
An enjoyable look at some deep computation theory, with worked examples in the Ruby programming language. This book gets quite technical but the examples really help. I found some of the content familiar from my computer science degree but it was nice to have everything pulled together into a coherent whole.
The author explains a key concepts of computation in ways that I never thought possible. The exposition is clear and well presented. These are concepts I struggled with while at university... I wish this book was released while I was CS student!
I think the hugely impressive strength of this book is the total simplification of what can otherwise become confusingly exclusive geeky jargon. It has already been recommended to IT Departments and considered an asset in educational circles, where methodical clarity is a must have.
This is a fantastic book. The author manages to explain complex topics in such a way that is easy to understand. If you are like me, a self taught programmer wanting to learn all the big ideas in computer science then don't hesitate to buy this book! For example, if you ever struggled with the idea of non-determinism, as I did, this is explained in the chapter on finite state machines in such a way that it really just clicks straight away! So, the author really knows his stuff and is able to explain in a clear and concise way. The code is in Ruby and there is a quick primer in the first chapter with enough Ruby to get you through the book. 5 stars!