20
$\begingroup$

I am a first-year undergraduate electrical engineering student. I want to study quantum computing and quantum AI in the future and also possibly work on building quantum computers.

I have finished Strang's Introduction to Linear Algebra twice and Axler's Linear Algebra Done Right. I have finished MIT OCW 6.041 Probability Course. I know Calculus 1, 2, and 3 and Differential Equations.

I have 2 questions:

  1. Is my background sufficient for studying quantum computing?
  2. Where should I start/which materials do you suggest?
$\endgroup$
6
  • 8
    $\begingroup$ I would just like to say that as a highschool student who has learned the basics of quantum computing - yes, your background is sufficient. If you are willing to learn, you can learn. $\endgroup$
    – auden
    Jun 30, 2019 at 15:18
  • 2
    $\begingroup$ Take a startup approach and just start. Then when you find certain knowledge gaps fill those in as you go. This is the best way of making sure you learn exactly what you need to accomplish x $\endgroup$
    – Outsider
    Jul 1, 2019 at 3:58
  • $\begingroup$ If you're planning on going through university in an EE/ECE stream, you'll need to study some physics if you're interested in the hardware side. Your question isn't clear whether you are interested in hardware or algorithms/software only. You'd do well with some physics just the same, but doubly so if you really want to understand and/or develop hardware. $\endgroup$
    – J...
    Jul 1, 2019 at 15:55
  • $\begingroup$ You can read Q is for Quantum with almost no background, and it is a real introduction to quantum computing. I also recommend checking out Quantum Computing since Democritus at some point. $\endgroup$
    – littleO
    Jul 1, 2019 at 19:27
  • $\begingroup$ I know this opinion is not popular here, but I will say: trying to learn quantum information without learning quantum mechanics is waste of time. It is possible to learn both at once, as in Vasirani course which I liked very much then everything was free and instructor-led on EDX; currently the coutse is available as self-paced: edx.org/course/quantum-mechanics-and-quantum-computation $\endgroup$
    – kludg
    Jul 9, 2022 at 16:07

11 Answers 11

16
$\begingroup$

I am working on a textbook that is currently in Early Access called Learn Quantum Computing with Python and Q#. It is intended for folks who want to learn how to program for a quantum computer, and learn the basics of how a quantum computer works along the way. Only knowledge prerequisites are programming in some language (Python helps but not really required) and the basics of Linear Algebra (multiple matrices and vectors sort of stuff). My co-author @chris-granade and I would love feedback on what is currently out on the forums associated with the book, and there are discount codes floating around for conferences and podcasts and such, hmu on dm and I can find one for ya!

$\endgroup$
3
  • $\begingroup$ I will be interested on seeing the book too. I am too learning about quantum computing as well. Please let me know! $\endgroup$ Jun 30, 2019 at 23:10
  • $\begingroup$ @DrSarahKaiser , when do you expect your book to be finished? You got me hooked, and I was very disappointed not to be able to read the entire thing :/ $\endgroup$ Jul 1, 2019 at 20:42
  • $\begingroup$ Our target is early next year, but new chapters will be released as we finish them along the way. Working on some stuff on quantum key distribution and working more with single qubits at the moment 😁 I am so glad you liked them and I am excited for you to read more soon! $\endgroup$ Jul 1, 2019 at 21:37
4
$\begingroup$

I am also an undergraduate hoping to start a career in quantum computing someday. I'm a physics student who became interested in the subject about a year ago, and these are some things that helped me build a foundation.

In terms of background, linear algebra is the only course that is essential for understanding the basics of the subject. The reason is that computation can be simplified as a series of matrices (called gates) acting on a particular vector (called the state). A course in quantum mechanics will be necessary for more advanced studies and many applications of quantum computing, but you are perfectly qualified to start learning the basics without such a course.

In terms of resources, my advice is to start with something lighter than a textbook for your first introduction. I highly recommend the Microsoft Q# Support Docs, especially the "Quantum Computing Concepts" articles found here. If you're looking to start programming, Q# will be very difficult to learn without background in C# and a functional programming language, so it may not be the right language to start out on. It's nothing against the language, but it was hard for me since I had never used C# and had trouble reading the language-specific docs before my functional programming course. I personally have a lot of training in Python, so languages like Google's Cirq or IBM's Qiskit were more natural choices for me.

Once you've gone through a few of those articles on the basics, that's when I would pick up a textbook. Someone has already mentioned "Mike and Ike" (Quantum Computation and Quantum Information by Michael Nielsen and Isaac Chuang) which is one of the most highly regarded books on the subject. Another I'd like to mention is Quantum Computer Science: An Introduction by N. David Mermin, which is pretty accessible for someone without a background in quantum mechanics, at least for a few chapters. No book is going to be right for everyone, so just try a few and see what makes sense for you.

My last piece of advice is to find a friend to work through material with or a professor to help walk you through particularly difficult topics. Something to remember throughout your academic career is that math, and related fields, is better with a guide.

Good luck!

$\endgroup$
3
$\begingroup$

I would definitely say go for it. I have a lot less experience and math knowledge than you do, but I have been able to learn the basics. There is certainly some stuff that goes over my head, but I think you would be well prepared. The one area where you may need more study is logic and classical computer science. Having knowledge, even somewhat basic knowledge, here definitely helps. I started out with Chris Bernhardt's Quantum Computing for Everyone. This may be too simple for you, but it gave me a good entry point.

In the end, I think it's your interest and enthusiasm that matters most, so, if you're fascinated by the subject, pursue it!

$\endgroup$
2
$\begingroup$

Understanding the basic theory of quantum computing should be within reach. If you understand linear algebra, then math will not be your stumbling block. Quantum mechanics shouldn't be either — while you do need to exploit some of its machinery, you do not need a deep understanding to get started. Most introductory QC resources will build up the essential ideas of superposition, measurement, unitary operators, and the concept of entanglement.

Engineering quantum computers is another story. If you want to do that then you will need to know much more about quantum mechanics proper. But the basic theory of quantum computing should still come first.

If you're getting started, you should check out the on brilliant.org (brilliant.org/courses/quantum-computing, the first chapter is free). Full disclosure, I co-wrote this course out of frustration with the state of available QC learning options. It takes you from learning what a qubit is up to present-day realizations of quantum computing (hybrid classical/quantum approaches like VQE).

Along the way, you investigate quantum gates, build basic quantum information processing circuits (e.g. teleportation and superdense coding), see clear examples of quantum speedups, and understand the major classes of quantum algorithms. You learn the math, but it also has simulated quantum computer embedded in the course, so you can internalize what's going on. You'll also learn how to program quantum algorithms in Microsoft's Q# language and use it to build out a basic application in quantum chemistry.

$\endgroup$
2
$\begingroup$

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

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)
  • optics
  • 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.

Bibliography

$\endgroup$
1
$\begingroup$

The more you know about math, programming, quantum physics, etc. the better, but this field is new for everyone involved. We are all constantly learning so I guess you should do OK. Having said that, I would recommend you to develop your programming skills (Python is widely used in this realm) and start reading the stuff provided online by companies that are developing quantum computers such as IBM, Rigetti and D-Wave. That will get you started. Good luck.

$\endgroup$
1
$\begingroup$

I think it would be best if you start reading Mike and Ike. Buy the hard copy. Go through the exercises. This would be sufficient to read the papers. The further reading section would provide starting points from where it would be suitable to enter the literature.

For the programming aspects best place to start is Qutip

$\endgroup$
1
$\begingroup$

Your background is more than sufficient.

To me it looks like your main weak point is you don't have existing knowledge of how classical logic circuits are constructed, so you'll have to learn that as part of learning quantum circuit construction. A minor obstacle; very doable.

You listed several calculus courses. Those would be important for learning quantum physics (solving continuous wave equations), but it's essentially unnecessary for quantum computing. The linear algebra courses are crucial, though.

$\endgroup$
0
$\begingroup$

I would also recommend looking up Jack Hidary's new book "Quantum Computing: An Applied Approach" which provides a very hands-on approach for learning the basics (and more).

$\endgroup$
0
$\begingroup$
  1. I am sure that is sufficient, I have a similar background and as an undergrad as well I have found plenty of material that I understand and has only further spurred my interest.
  2. Two resources I wish I knew of earlier were Q-munity and Q-ctrl. The former is a Khan Academy-like software by high schoolers and undergrads that has a lot of easy to digest information about Quantum Computing. Q-ctrl is a similar tool, part of it is free, and may be too trivial for you based on your research, but the paid, visualization related program is also great. 2.5 Added awesome resource, Craig Gidney's Quirk, a great Quantum Computing circuit designer that offers significantly more intermediate measurement and visualization tools.
$\endgroup$
-1
$\begingroup$

Yes. We need to have an aptitude for the subject to learn. Seems, you have a keen desire to learn quantum physics based computing.

The future of the computing technology is quantum, the digital computing will be a past and will be known as dumb technology of 0's and 1's very soon.

Your interest for quantum computing is more than enough to go deep into the subject.

Go through the latest journals and research work on quantum computings. Nonetheless, the Springer publication books are also good for a self study. We could get a lot of other references too in these books.

Free previews of the few books are available online:

$\endgroup$
4
  • 12
    $\begingroup$ The future of the computing technology is quantum, the digital computing will be a past and will be known as dumb technology of 0's and 1's very soon. is highly subjective and even the contrary of what several (most of the?) people in quantum computing think. The point of view I am hearing the most today is "quantum hardware will be used as an accelerator, just like how we use GPUs today". Anyway, classical computing is far from being superseded by quantum computing. Books are good, but quite expensive. I agree that once you will be able to understand them, reading papers is the best. $\endgroup$ Jul 1, 2019 at 8:35
  • $\begingroup$ Right. The hardware simulation will be digital for few decades, but the core computing technology will be more and more quantum-ready and quantum-enabled by 2020. $\endgroup$
    – user30612
    Jul 1, 2019 at 8:45
  • $\begingroup$ @Nelimee The state of a piece of data on a normal computer is known with certainty logic of either 'yes' or 'no" states, but quantum computation uses further states of probabilities of the spin state electrons either +1/2 or -1/2, for example. Only very simple quantum computers have been built, although larger designs have been invented. Quantum computation uses a special type of physics, quantum physics, which itself is based on exclusion principles, probability theories, uncertainty principles and eccentric algorithms. The future of quantum computing, however is beautiful and interesting. $\endgroup$
    – user30612
    Jul 1, 2019 at 9:53
  • 5
    $\begingroup$ You do not need to explain that to me, I am currently working full time on quantum algorithms & implementation. I am just saying that, from my point of view, quantum hardware will only replace classical hardware for very specific tasks (such as integer factoring for example), but not for generic tasks. $\endgroup$ Jul 1, 2019 at 11:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.