For quantum software, all you need is matrix multiplication, complex numbers and basic probability for the base model
By "base model" I mean: how a programmer views a quantum computer program, and how outputs are calculated given input.
If you know the above, you can understand the base model in one hour with any decent quantum getting started tutorial, many of which are freely available online.
I also tried to highlight that in my tutorial for example: https://cirosantilli.com/#programmer-s-model-of-quantum-computers
And you can confirm it by playing for an hour with a software simulator like Qiskit (which has many tutorials, see the official page) or even a toy graphical browser based one like Quirk (highly recommended).
Of course, then you will need to learn "as much maths and Physics as needed by your specific application".
But this will vary widely by application, and it is not even well defined since we don't know what the killer applications would be for sure yet, so I don't think it is fair to call that "quantum computing". Some of the simpler existing algorithms (arguably not killer apps) don't require basically anything extra.
A good place to look into is: https://quantumalgorithmzoo.org/ which summarizes known quantum algorithms.
It is also worth mentioning that any non theoretical ("proving things about an algorithm") advances will require simulating your algorithm, and at that point money would be needed for a powerful classic computer or a real research quantum computer. But I think it is fair to say that if you have reached that point where you can push the state of the art forward and need the simulation (a possible goal worth pursuing), then you can get a job with someone that is willing to spend that money.
For quantum hardware, you will need some theoretical Physics, and a lot of experimental Physics
I don't work in the field, so I'm not entirely sure about how much theory is needed.
Obviously, the basics of quantum mechanics are a must, but everything beyond that is much less clear, and likely to be highly dependent on the type of QC you are trying to make, e.g. one would expect that a superconducting and a photonic QC will require widely different understandings.
And then obviously, to understand things more precisely and be able to do any experiments yourself to advance the field, you would need a laboratory to do the experiments related to the type of computer you are trying to implement. This might be impossible outside of a PhD setting as you won't have the money to do the experiments otherwise.
It is however feasible to achieve a basic understanding of the physical principles of how a quantum computer hardware of a given type works with free resources, here are some I've found good:
I'm also maintaining a resource list at: https://cirosantilli.com/quantum-computing#quantum-computer-type
More precise and practical understanding of the implementations will increasingly enter a mixture of journal publications + intellectual property and trade secret territory however.
It is also interesting to go through the list of existing quantum hardware companies and try to read as much as possible about their tech, e.g.:
- on their website
- papers by the scientific founders, usually from before starting the company
- patents by people of the company
Quantum compilation means mapping some high level circuit description like a Qiskit into actual physical hardware.
I'm not sure what is necessary in that area besides understand the hardware.
Some people are excited about ZX calculus as a way to efficiently transform circuits. This might be useful to help map them efficiently to hardware.
Quantum error correction might need a bit more maths
Quantum error correction kind of lies in the middle of hardware and software, so maybe it is worth having a look at it separately. I consider it to be part of quantum compilation, and perhaps the most interesting part.
My wife who is a number theory PhD interested in quantum computing was telling me that there is some "relatively deep maths" needed for some of the proposed approaches, but I don't know the details.
But I doubt it comes come anywhere near "research level pure mathematics", and I'm pretty confident that it would be possible to understand the required mathematics without working full time on it.
There is perhaps one exception: cryptography. One of the major "applications" of quantum computers is to break pre-quantum cryptography. So people now have to come up with cryptography based on different mathematical problems that are not easily solvable by a quantum computer. For this you obviously need more advanced understanding of mathematics. See notably NIST's post-quantum cryptography competition: https://csrc.nist.gov/projects/post-quantum-cryptography
What should I study at university to maximize my changes of getting into quantum computing?
I would bet on focusing as much as possible on experimental physics areas that are used in the most promising quantum computer approaches:
- condensed matter (for superconducting)
- anything related to controlling states of individual atoms (which usually comes down to optics + semiconductors)
I recommend this over mathematics/computer science, because if you don't get into a lab in university then PhD, you will likely never again have that unique chance in your entire life.
So unless you are sure that you want to be an algorithm designer (nothing wrong with that), why not also try to keep the hardware side option open? Quantum computing is much more blocked on "we don't have enough qubits" rather than "we don't have enough ideas what to do with the qubits we have" as of 2020.
You can always learn algorithms much more easily later on, because the costs involved are much smaller generally: reading articles/books is basically free compared to the costs of running a lab.
It should be noted though that even the algorithm development might need some funding to run experiment simulations with larger qubit counts to validate their ideas.
Quantum computer benchmarks
One important area of research and development is the development of benchmarks that allow us to compare different quantum computers to decide which one is more powerful than the other.
Ideally, we would like to be able to have a single number that predicts which computer is more powerful than the other for a wide range of algorithms.
However, much like in CPU benchmarking, this is a very complex problem, since different algorithms might perform differently in different architectures, making it very hard to sum up the architecture's capabilities to a single number as we would like.
The only thing that is directly comparable across computers is how two machines perform for a single algorithm, but we want a single number that is representative of many algorithms.
For example, the number of qubits would be a simple naive choice of such performance predictor number. But it is very imprecise, since other factors are also very important:
- qubit error rate
- coherence time, which determines the maximum circuit depth
- qubit connectivity. Can you only connect to 4 neighbouring qubits in a 2D plane? Or to every other qubit equally as well?
Quantum volume is another less naive attempt at such metric.