
Member-only story
From Computer Science to Quantum Computing
More and more people seem to be transitioning from computer science (CS) backgrounds into quantum computing (QC). Armed only with a little programming knowledge, anyone can run experiments on real quantum computers that harness quantum mechanical effects such as entanglement, teleportation, and tunneling. In fact, with drag-and-drop circuit editors, you don’t even need a programming background for two of those.
The transition seems easy, at first. I picked up Quantum Assembly Language (QASM) quickly because of its resemblance to NASM (classical Assembly Language). Also, the most popular quantum computing libraries (Qiskit, Forest, Cirq, and others) are written for the world’s most-used computing language: Python. If you know Python, you’re already at least one step through the doorway.

However, CS practitioners quickly encounter roadblocks. While the “hello, world” experiment of quantum entanglement is not too hard to grasp at a high level, subsequent algorithms become more and more incomprehensible. The explanations of these algorithms begin to look more like math exams than English essays.
The problem appears to be evident from both sides. CS practitioners don’t understand the underlying math and theory, and physicists lament receiving questions to which the real answer is to study the underlying math and theory.

But, it’s hard. Pioneers of quantum mechanics (QM) admit to not understanding quantum mechanics. They know how to harness what we know, but no one can explain, for example, how entanglement really works. We can build quantum computers from our existing knowledge, but no professor can explain to you the “how” and the “why” of two photons, for example, being correlated over astronomical distances (what affects one instantly affects the other regardless of distance).
So, how can CS practitioners advance beyond the entry-level algorithms and try to make actual contributions to the field?