I’m a Coder, Why Can’t I Understand Quantum Computers?

So you’re a cutting-edge coder, sought by every company in Silicon Valley. You’ve read all the popular science stuff about quantum computing. But when you actually try to work out how to program qubits usefully, you get nowhere. Well don’t be surprised. The parts of quantum computer programming that can be understood by an advanced coder not trained in quantum theory, are currently useless.

Sure, you can play around with qubits and make a Superposition (“ooh it’s one and zero at the same time!”). And yes you can create a quantum XOR gate, and Adder (“look! It’s an adder but more complicated and…errr…more quantum…”) But none of this is anything more than cool. The useful parts of quantum computing are the algorithms that are much faster than anything on a normal computer. And these algorithms are…complicated.

The most famous is Shor’s algorithm. It will enable you to factorize a large number into its constituent primes exponentially faster than any traditional computer, thus breaking one of the most popular encryption algorithms. If I’ve lost you at constituent primes, then we might as well stop here. The question in the title has been answered. If you understand prime factorization, let’s move on to number theory. How’s your modular arithmetic? “My what arithmetic”, you say? Another group of programmers falls by the wayside.

Gosh look! An inverse Quantum Fourier Transform. How…lovely.

So suppose you know about period finding in modular equations. Let’s talk about the quantum element: you simply use a quantum Fourier transform. You remember those from high school right?

Ok, let’s stop this.

It may seem like a pointless exercise, but it is an exercise to make a point. Shor’s algorithm is the foundational algorithm of quantum computing. And yet even someone with a math degree will need to study some quantum mechanics (involving linear algebra, operators, Hilbert spaces, complex analysis, etc, etc) to understand Shor.

Is there another way into quantum computing? How about Grover’s algorithm, or the HHL algorithm? Both of these require knowledge of manipulating quantum equations.

But here’s the real problem: it is possible for a programmer to think they’re learning about quantum computing. They can be given an API that allows them to manipulate qubits on a hardware quantum computer, to create quantum logic gates. But quantum algorithms are not built up like boolean algorithms. There are far more twists and turns and mathematical slights-of-hand and, I’m afraid, superpositions.

A Boolean Circuit: Ah! For the Easy Life

The power of quantum computing is hidden under the bonnet. And the world beneath that bonnet has almost no resemblance to traditional computing, even advanced traditional computing.

A new breed of programmers is emerging, however. True quantum programmers are more like the quants of Wall Street. You need a great deal of “application knowledge” — where the application is the underlying math. For the traditional programmer, the core knowledge is the code and how to build with it. They transfer that to different application areas. For quants and quantum programmers, building with the code is a mathematically complex operation. And unlike quants, even the most advanced quantum programmers are constantly “learning to program a quantum computer”, in the sense that we don’t really know how to program a quantum computer. We know a few algorithms, but the whole process is not generalized in the way that, say, C++ can broadly generalise for traditional programming.

Get Rich Quick: Once you’ve learned Stochastic Calculus and Exotic Options Theory

So is there no hope for the traditional programmer to learn? Well, there is. Many traditional programmers became Wall Street quants by intense study of math and finance. Similarly, a traditional programmer can become a quantum programmer through an intense study of math and quantum physics. But they have the additional barrier that quantum computing is in its infancy, which makes everything less standardized and harder to understand or generalize. It also requires an understanding of hardware limitations and error correction. But on the bright side, companies like IBM are working constantly to simplify their front ends and to hide the quantum process behind a classical front end.

As a good start, why not read the IBM Qisqit textbook. Though bear in mind as you read it: the power is in the individual algorithms described (Shor’s, Grover’s, etc) and not in just knowing how to combine qubits in a Boolean type way. If you can learn how the algorithms tick, that’s when you can truly “understand” quantum computing.

--

--

--

Alexis Kirke is a screenwriter and quantum/AI programmer. He has PhDs from an arts faculty and from a science faculty. http://www.alexiskirke.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

API request signing in Django

Chapter 3. Functions

Before I Graduate: A Checklist I Could Mark Done Before Graduation

Hello Docker 😄 —Part I

Contus Fly — A Complete Chat API for Web, Android, iOS

KNIME for Supply Chain Management

Automate monitoring of IAM users activity (Key aging) who doesn’t have console access.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexis Kirke

Alexis Kirke

Alexis Kirke is a screenwriter and quantum/AI programmer. He has PhDs from an arts faculty and from a science faculty. http://www.alexiskirke.com

More from Medium

Mathematical Algorithms

Is math even useful anymore in programming?

Animated Geometric Pattern Using Python

walk-through guide to draw a geometric pattern using Python’s turtle package

Balancing chemical equations: A complete guide