In the past few years, Quantum Computing has gained a lot of hype. However, being a programmer and not having a physics background, you might find it difficult to get resources to get started with this new and amazing field. This is where Programming Quantum Computers: Essential Algorithms and Code Samples by Eric R. Johnston, Mercedes Gimeno-Segovia, and Nic Harrigan can help you. It is one of the best books out there for learning about Quantum Computers for those who have a background in programming. In this blog, I will discuss why I feel that this book is the best book for programmers to get started with Quantum Computing.
The physics underlying quantum computing is full of dense mathematics. But then so is the physics behind the transistor, and yet learning C++ need not involve a single physics equation. In this book we take a similarly programmer-centric approach, circumventing any significant mathematical background.
Authors, Programming Quantum Computers: Essential Algorithms and Code Samples
Many of the top tech companies like Google, IBM, Microsoft, and Honeywell have been in a race to develop Quantum Computers. If you are in a field that is related to computing or programming, you definitely must have heard about Quantum Computing by now. Due to quantum leaps being made in the field of Quantum Computing(pun intended) in recent years, you might want to dive into it with both feet! And this is exactly what this amazing book can help you achieve.
Pros
QCEngine
Throughout the book, the tool used for implementing Quantum Computing algorithms is QCEngine. The tool is developed by the authors to give beginners exposure to Quantum Computing. It is a web-based tool available at-
Since it is a web-based tool, it allows you to jump into the realm of Quantum Computing right away. You don’t have to worry about and go through the trouble of installing the required libraries.
Another big plus point is that QCEngine uses javascript. Javascript is one of the most used programming languages and hence most programmers have experience with it. However, if you do not know javascript, you can easily learn it. There is an abundance of sources from where you can learn javascript. The syntax for using QCEngine is also really simple and minimalist. It does not implement all the various operations that other, more advanced libraries implement. But it is great for learning the basics.
The QCEngine comes with a Code Editor, an Output Console, a Quantum Circuit Visualiser, and a Circle Notation Visualiser. These tools help you to interactively debug your algorithms as well as see results.
Code for each and every example in the book is available both in QCEngine and also on Github. After using QCEngine, if you plan to start using other libraries, such as Qiskit or Cirq, you can also see how the code for the same example can be written in these libraries.
Written for Programmers, Not Physicists
The content of the book is designed by keeping programmers at the center, not physicists. The authors have done their best to abstract away the physics of Quantum Mechanics, Quantum Information, or Quantum Computing. And in my opinion, they have succeeded greatly at it. Throughout the book, there have been 2 instances where the authors have brought up the physics of Quantum Mechanics. And when they did so, they explained it creatively, clearly, and concisely and no got into depth no more than was absolutely required. These 2 instances are when they sought out to explaining Quantum Superposition and Quantum Entanglement. Since these two are the central ideas of Quantum Computing, I find it necessary to understand these ideas to study and make use of Quantum Computing.
Cons
QCEngine is just a play tool
As much as I have fallen in love with QCEngine because of its ease of use, ease to learn, and beginner friendliness, but there is no hiding the fact that it is just a play tool. While it is a great tool for getting started with Quantum Computing and develop basic concepts, it cannot be used to perform complex tasks that libraries such as Qiskit can perform. Additionally, QCEngine has no use outside of the book. You cannot install it on your machine, or use it elsewhere to implement algorithms for Quantum Computing. However, to its defense, it was never developed to be used for Quantum Computing. It was developed only as a learning tool. And it does achieve what it was designed to achieve.
While it is certainly true that QCEngine is not of much use outside of the book. But knowing how to use QCEngine will also help you learn how to use other libraries like Qiskit and Cirq.
You will need to have a deeper dive
The authors have abstracted away most of the details, however, if you do decide to get into the field of Quantum Computing, sooner or later you will have to take a deeper dive into the physics of Quantum Computing. The book does not explain all there is to Quantum Computing and you will have to learn these concepts from other resources. For example, there is very little explanation regarding the rotation along the X and Y axes. This is because of the fact the authors of the book have not used a 3-dimensional sphere(also known as Bloch Sphere) to represent a qubit, and have used a 2-dimensional circle for the same.