Author: Dr. Sarah Kaiser and Dr. Chris Granade
Date: June 2021
Target Audience: Developers interested in quantum computing
Reviewer: Mike James
Quantum – this is the future…
…or not, depending on how you see the idea. The idea is quite simple, even if the implementation turns out to be almost impossible. Quantum mechanics is a weird theory, but it seems to work, and the idea of using what you’ve learned to calculate things is pretty reasonable. After all, QM is how the world works things as it creates reality. This book is an attempt to convey the ideas of quantum computing to the average programmer with minimal mathematics. I say minimal because without math it’s not really possible to get the idea and implementing the ideas requires math, so you can’t avoid it.
I started with the idea that this task, quantum computing with minimal mathematics, was not feasible and by the end of the book I am even more convinced that this is not the way to go. As already indicated, quantum computing is very mathematical. If you can’t handle math, you’ll have a hard time understanding what’s going on. More specifically, ideas that I have in my head that are summed up by math take up pages of the book that avoids that math. The math, far from being more complex, makes it simpler and provides shortcuts to thinking that actually make thinking about it possible.
I have to say that my BSc degree was heavily influenced by QM and I recently took an advanced course on quantum computing, so I expected this book to be a quick read and a refresher. Far from it. I had to read and re-read descriptions of things I thought I knew multiple times to make the connection between the long descriptions and the simple math in my head. I am sure this will be the experience of many readers lacking the math in their heads and trying to discern the general principles in the very wordy explanations. That’s not the book’s fault. If there could be a book that would do the job this would be it – well written with a dash of humour, interest and passion – but I don’t think it works.
The first section is called Getting Started and is a very slow and gentle introduction to the basics of what quantum computing is all about – qubits, states, randomness and so on. The examples are quantum encryption, key distribution, non-local games and teleportation. They all sound exciting, but the reality is pretty simple once you get the idea. All programs in this section are in Python.
Part 2 is about algorithms and is expressed in Q#. All in all, I think the entire book would be better using just Q#, but that’s a matter of opinion. An entire chapter is devoted to the Deutsch-Jozsa algorithm, which, if you understand QM, is one of the easiest quantum algorithms to understand. It is also the simplest such algorithm, which has an advantage over a classical algorithm. It took me a short time to understand the math when I first encountered it, but here it took me a few hours to understand the non-math explanation and in the end I still don’t think you get the idea come that it’s all based on parity. Classically, parity is difficult to measure, but in QM it is a natural measure.
Part 3 is called Applied Quantum Computing and I was looking forward to it because the only really deep quantum algorithms I learned back then were those of Grover and Shor. I was hoping to broaden my horizons. The first chapter is about quantum annealing, and that was interesting because it’s not a mainstream area of quantum computing, but one that has many practical applications. The only problem is that quantum glow is really too close to quantum analog computing for my liking. It’s basically a universal quantum simulator capable of solving many ground-state problems – invaluable but uninspiring. After that I came across two more algorithms – Grovers and Shors. Well, any book on quantum computing has to cover them, but there’s nothing else. Do we really use a lot of effort to build quantum computers just to implement two algorithms? My guess is that the answer is no – we expend tremendous effort just running Shor’s algorithm so we can crack codes. This book does little to convince me that there is much more to quantum computing, but I hope I’m wrong.
My final verdict is that this is about as good as a non-math oriented introduction to quantum computing gets. Be warned, there are equations and math showing through around every corner. You can’t avoid it, but you don’t need a lot of math to cope with it. However, I would conclude that it is much easier to learn math first and then learn the QM needed for quantum computing. In my opinion it makes the math easier.
Follow us to keep up with our coverage of books for programmers @bookwatchiprog on Twitter or subscribe to the I Programmer’s Books RSS feed for daily Book Watch additions and reviews.