Quantum computers are set to kick-start a second computing revolution in an exciting and intriguing way. Learning to program a Quantum Processing Unit (QPU) is not only fun and exciting, but it's a way to get your foot in the door. Like learning any kind of programming, the best way to proceed is by getting your hands dirty and diving into code.
This practical book uses publicly available quantum computing engines, clever notation, and a programmer's mindset to get you started. You'll be able to build up the intuition, skills, and tools needed to start writing quantum programs and solve problems that you care about.
An excellent very readable and comprehensible basic introduction to quantum computing. It covers structure and function and detailed explanations of the basic algorithms - With detailed code examples. Finishes up with an intriguing intro/survey of the new field of quantum machine learning. To be read slowly and carefully. A great introductory resource. I admit I didn’t like the circle notation much to begin with. But even it grows on you after a while.
The authors' aim for this book is to give a high-level introduction to the programming of quantum computers without, as is usual at the moment, giving a full introduction to the mathematical foundations of quantum gates and qubits. I believe this is a laudable goal, since when/if quantum computers become widely-used, it won't be practical to expect every programmer to be fully versed in quantum mathematics. However, compared to classical computing, the mathematics underlying quantum computing is significantly more advanced (Boolean algebra vs. Linear algebra on Hermitian vector spaces). Quantum algorithms seem to be much closer based on the actual gate logic than is the case with classical algorithms (or are they? Perhaps it would be more appropriate to say that quantum gates are much, much more expressive than classical gates and thus closer to the actual algorithms). This book doesn't abstract the algorithms from the quantum gate logic, but simply omits the mathematics, which results in incomplete descriptions and for some algorithms (e.g. QFT) makes understanding them hard to impossible. It seems this is the price to be paid for presenting quantum programming in an easily accessible form. What the book does very well are the graphical depictions of the algorithms, the diagrams are clear and they introduce a circle notation which can be a great help in understanding how some of the algorithms work. Also, the book comes with website on which readers can play with the quantum algorithms from the book in a JavaScript interface. Personally, I think it's best to read this book accompanied by a more theoretical treatment of quantum computing, such as Mike & Ike, and use these to books to balance the abstract and the more practical perspective.