How to learn about quantum computing?

Get guidance for learning about quantum computing and writing your first programs. This guide isn't exhaustive, but rather a good place to start.

Getting Started overview

Get started with the Microsoft Quantum Development Kit provides a high-level overview of quantum computing with Q#, including tutorials for writing your first Q# program, getting started guides and introduction to the Q# quantum libraries for developing quantum programs.

Learning the basics: what do you need to know?

You don’t need to know quantum physics to learn about Q# and quantum computing or start writing quantum applications.

These concepts will give you a good introduction to the fundamental knowledge you need to start coding quantum programs.

  • Basic quantum mechanics: We just said that you don’t need to know quantum physics to start coding (and it’s true!). But some basic concepts of quantum mechanics and its mathematical notation will be helpful to understand quantum programming.

  • Linear algebra (vectors and matrices): In quantum computing, quantum states are represented by vectors, with quantum operations being linear transformations applied to these vectors. Here is a Jupyter notebook tutorial on Linear Algebra. You can also read more about linear algebra in our concept guide about vectors and matrices.

  • Complex arithmetic: The coefficients of quantum state vectors are complex numbers. You can understand some basic quantum computing concepts without them, but you won't get far before you need to incorporate them into your quantum toolkit. Here is a Jupyter notebook tutorial on complex arithmetic that explains some of the mathematical background required to work with quantum computing.

Now that you have the basics, you're ready to start learning how to write quantum programs. There are many ways to proceed:

Do the Quantum Katas

The Quantum Katas are our open source series of self-paced tutorials aimed at teaching you elements of quantum computing and Q# programming at the same time. Each kata references additional learning materials you can use to learn the quantum computing concepts needed to successfully complete the katas.

Dive into the theory

Maybe you want to take a deeper look into the theory of quantum mechanics and quantum computing. Here you have a list of useful material:

  • Start with our guide to quantum computing concepts, a compilation of basic concepts for quantum computing.
  • Learn Quantum Computing with Python and Q# (Sarah C. Kaiser and Christopher E. Granade) provides an excellent introduction for people who have little to no experience with quantum mechanics, but some programming background.
  • Quantum Computation and Quantum Information (Michael A. Nielsen, Isaac L. Chuang) is the most cited text in the field of quantum computation and is regarded as the standard text on the subject. The book assumes minimal prior experience with quantum mechanics and computer science. It is an excellent choice for readers who want a rigorous introduction to the topic as well as readers who are looking for references for advanced concepts.
  • MIT OpenCourseWare has an excellent online course imparted by Allan Adams for learning the basics of quantum mechanics. Perfect for developers who want a better understanding of the underlying physics.

Join the quantum community

You don’t have to learn this alone, there is a large community of amateurs and experts alike who are willing to help you. Don’t be afraid to ask!

  • If you have any questions about Q# or quantum computing don’t hesitate and take a look at the Quantum Computing StackExchange site. If you don’t find your specific question, you can always ask a new one.
  • Check out Q# blog and Microsoft Quantum Blog to stay up-to-date with the latest news and resources about Q#.
  • Check Q# Community and Awesome Q# to look for more resources and material.

If you’re looking to teach a course on quantum computing, the Microsoft Quantum Network can help provide curriculum assistance.