After all these good review in here, this book was a disappointment.
It is difficult to get a proper understanding from this book, and it is not because the topic is hard or the book is too mathematical. Indeed, I think the material presented should be accessible to anyone with a master's (or possible bachelor's) in any STEM topic. The problem is that the explanations are lacking. Take the Bloch sphere for instance. The author tell you that the state of a qubit can be represented as a point on a sphere, but then goes on without telling *how* it is represented as a point on a sphere. A quick detour to Wikipedia reveals that it is not very difficult to explain this. The author just didn't take the trouble. The book is full of these gaps, and especially the later parts of the book rely on you understanding these details.
What's worse is that there are downright elementary errors in the book. Take the explanation of the oracle functions for instance, where the question is how many times do you have to query a function of N (qu)bits to determine its truth table (actually just whether the function is balanced or not, but read some literature for the details). The book gives the answer "N times" for a classical computer, and "once" for a quantum computer. The correct answer should be 2^N (or actually 2^(N-1)+1 just to check whether it's balanced) for the classical computer. Are there as elementary mistakes in the parts I am trying to learn for the first time?
The presentation of the mathematical topics in part three (Hilbert spaces, fields and groups, etc.) have some interesting and refreshing viewpoints, and the introductory chapters aren't too bad. This, combined with the fact that I've seen worse books, leads me to give this book two stars.
I have switched to another book, "Quantum Computing for Computer Scientists" from 2008, which looks much better. It's about the same size and covers about the same ground. It doesn't include code examples, but from what I've seen so far it would be easy to pick up just about any quantum programming language if only you understand how to apply them.