This past Christmas I decided to stay in London to have some ‘me time’ instead of attempting to travel somewhere with the crowds, the noise, and the hassle. After I finally got bored playing video games and watching Netflix, I decided to do a little research. In typical fashion, instead of learning about something accessible and useful to my everyday life, I decided to jump headlong into quantum computing. What I found out is starting to change my perception of ‘life, the universe and everything’ – and I’m not even joking.

I’m not going to lie, this article is going to be difficult to get your head around. There are concepts that I don’t fully comprehend and am struggling to handle. It is my aim therefore, to try explaining my interpretation in terms that can (hopefully) be understood by most software engineers. Warning: there are dragons ahead and possibly one or two references to *The Hitchhiker’s Guide to the Galaxy*. Enjoy!

Starting with the basics: the primary unit of computer information is a bit. In classical computing this is represented by a one or a zero; it is the state of a single silicon transistor with or without electricity running through it. A bunch of these transistors in sequence constitutes computer memory. So far, so good. A quantum computer, on the other hand, maintains a sequence of qubits (or quantum bits) which can represent a one, a zero, or any quantum superposition of those two qubit states. That quantum superposition is neither one nor zero, but a third state which represents the probability of one and zero.

In this case, the concept of probability could be explained by looking at the *faster than light drive* at the core of the Heart of Gold. The *infinite improbability drive* is based on certain ideas in quantum theory. From Wikipedia:

*“A subatomic particle is most likely to be in a particular place, such as near the nucleus of an atom, but there is also an infinitesimally small probability of it being found very far from its point of origin (for example close to a distant star). Thus, a body could travel from place to place without passing through the intervening space (or hyperspace, for that matter), if you had sufficient control of probability. According to the Guide, the drive “passes through every conceivable point in every conceivable universe almost simultaneously.”*

Here’s where it gets weird. Qubits work in a very similar way in that the superposition can be expressed as being in ‘every conceivable universe’ too. What does this mean? There is an interpretation of quantum mechanics called the Many-Worlds Interpretation (MWI) which states that everything that can happen, has happened in other parallel universes. Think ‘Rick and Morty’. For each quantum heartbeat the universe splits into all the possible states that can exist at that point in time.

How does this translate into anything useful with computing? Let’s take a practical example. The RSA public key cryptosystem is widely used to share encrypted information across the internet. With classic computing the effort to decrypt this is huge. To date, the largest factored RSA number was 768 bits long and it took 15,000 CPU years to decrypt (two years of real time, on many hundreds of computers). In order to make sure these keys cannot be decrypted easily, most RSA keys are now typically 4,096 bits long and are considered unbreakable with current technology.

The point is that it takes a huge amount of CPU power in parallel to go through the multitude of possible solutions until it chances upon the correct answer. With quantum computing that parallelisation happens in the multiverse. One of the possible universes out there already has the answer, we just need to allow our qubits to interrogate them to get the answer – and this happens extremely quickly.

In practical terms however, we’re not even close to this yet. Last year Google announced a 72-qubit quantum chip and in January this year IBM announced the first ever commercial 20-qubit universal quantum computer. This is good progress, but to get to a place where we’re beginning to see a speed comparison with classic computing, we’d need around 512 qubits.

Here’s where it gets interesting. If we reach over 1,000 qubits then the computing power will be greater than a CPU made of all the silicon in the known universe. This would change the dynamic of what we believe is conceivably possible. Imagine if we applied machine learning algorithms to a quantum computer; could it be that the quantum computer would achieve consciousness? If so, what would it tell us?

It’s quite possible that it could turn into Marvin, the paranoid android. There’s a simple equation that I just can’t get out of my head and it is the most unnerving implication of quantum computing. If there are indeed infinite universes where everything that can happen, has happened then this means that everything we do or think or feel is utterly meaningless. If you divide anything by infinity then it loses all meaning. I think that finally I’m beginning to understand exactly what Marvin was going through…

Nevertheless, I don’t want to end on a depressing note. Instead, I would urge you to start the journey into the next giant leap in computing. Last year Microsoft released the Quantum Development Kit, which allows you to make calculations against a simulation of a quantum CPU. This is by far the easiest way to start learning about quantum computing and to try some simple things for yourself. Moving on from this, you might apply to get some time on one of the public quantum computers that IBM have made available.

Give it a go and see what you can find out. Who knows, maybe you’ll be the next Peter Shor.