Author: Mark C. ChuCarroll Publisher: Pragmatic Bookshelf Pages: 250 ISBN: 9781937785338 Audience: Geeks Rating: 4.8 Reviewer: Mike James
Math  it's essential and it isn't the same thing as arithmetic or even algebra. Can it be explained without leaning too heavily on either?
Some of the best and most subtle ideas come from mathematics. It isn't about being able to do arithmetic, which is what you might think if you have encountered the subject at school and it isn't really about being able to algebra. Math is something that most people never encounter even thought they really believe that they have  been there, done that and failed. Well this probably isn't true as real math isn't just badly taught it mostly isn't taught at all.
This book, with the subtitle A Geek's Guide to the Beauty of Numbers, Logic, and Computation, is an attempt to explain math without getting bogged down in the fine detail which puts so many nonmathematicians off  to be 100% honest it puts many a mathematician off as well. Notice that this doesn't mean that the content is easy. You can't avoid the simple fact that some of these ideas are among the most difficult you can encounter and hence this book is still a challenge.
It is composed of twentyseven essays on six general topic areas which first appeared on the author's math blog, Good Math, Bad Math. There are times when they read a little too informally and this is sometimes jarring on the printed page.
The first part of the book is about numbers and it covers the natural numbers, integers, reals and irrational and transcendental numbers. The very first chapter makes use of the Peano Induction principle, i.e. proof by induction over the integers, and this might seem like a high barrier to jump for some readers. It is a shame it starts with something so technical, but all I can say is keep reading  even if you follow none of the proofs you will still understand most of the ideas that surround them. The presentation is good but I am fairly sure that if you have never met any of the ideas before you are going to have to read very carefully and possibly reread.
Part II is titled Funny Numbers and it deals with some of the well known numbers in math  starting from zero and covering e; the golden ratio; and i. I was sad that pi is missing and matters such as normality are not discussed, but the book is finite. I'm also not sure that the account does justice to Euler's equation, the one that links e, pi, i and 1. If you have got the idea of complex numbers representing a particular type of 2D rotation then Euler's equation is fairly obvious, but I don't think the chapter manages to convey this.
Part III is about writing numbers and it's a bit off topic. You don't really need to know about Roman and Egyptian numerals  this is just more of what is often passed off as math in the wider world. But all is forgiven when we hit the essay on continued fractions. This is a really interesting way of writing a value down and I for one didn't know about Gosper's algorithm for adding continued fractions  and yes it is the same Bill Gosper of the Gosper gun and many other discoveries in Conway's Life.
Part IV starts a long run of essays on logic and related topics. It explains not only first order predicate logic and proof using it but introduces Prolog and Temporal logic.
From here we move into Part V on set theory. The material in this part could be better ordered as it doesn't really represent a neat progress through the ideas. After looking at naive set theory  the sort that most people encounter at school if they encounter sets at all  we move on to ZFC set theory and eventually the problem of the axiom of choice. The topic ends with a look at transfinite numbers and group theory. I am not at all sure why group theory is included in a section on set theory, but it doesn't seem to have anywhere else to live.
This in fact highlights a small omission from the book  modern algebra doesn't get much of a look in. The story of groups, rings, fields and so on is a difficult one  and perhaps it is difficult to explain in an entertaining way  but unless you understand some of it you can't really see the overall structure of math or move on to category theory.
The final part of the book is titled "Mechanical Math" and it is mostly about the role of the computer. It covers the fairly standard theories of computer science  finite state machines, Turing machines, lambda calculus, recursion, types and the halting problem. Most programmers will feel at home here and it rounds the book off in a satisfying way.
This is not a perfect book but it is very well worth reading if you have any desire to find out what math is really about. It is far from a complete survey of important topics in math  what happened to the primes, the zeta function, Riemann conjecture and so on but it does cover enough to give you a good idea of what it is all about. It never goes deep into any topic and for an introductory book this is probably a good thing.
Whatever slightly negative comments are present in this review, this is a highly recommended book. Buy a copy and devote some time to understanding it. If you are not a mathematician it won't be easy, but good things are worth working at.
Related Articles
The Meaning of Life
Axiom Of Choice  The Programmer's Guide
The Programmer's Guide To The Transfinite
Finite State Machines
What is a Turing Machine?
Lambda Calculus For Programmers
Recursion
Kolmogorov Complexity
Code in the Cloud (review of book by same author)
Developing Quality Technical Information
Authors: Michelle Carey, Moira McFadden Lanyi, Deidre Longo, Eric Radinski, Shannon Rouiller, Elizabeth Wilde Publisher: IBM Press Pages: 624 Audience: Those who produce technical documentation ISBN13: 9780133118971 Print: 0133118975 Kindle: B00L7ZKJ26 Rating: 3.5 Reviewer: Kay Ewbank
[ ... ]

TestDriving JavaScript Applications
Author: Dr. Venkat Subramaniam Publisher: Pragmatic Bookshelf Pages: 320 ISBN: 9781680501742 Print: 1680501747 Kindle: B01MQGX4CA Audience: JavaScript programmers Rating: 4 Reviewer: Kay Ewbank
This is a book that looks at how to use automated testing to improve the quality of your code.
 More Reviews 
