I understand there are a lot of programming languages (e.g Q#, Qiskit, etc.)

Which one is suitable for someone that just started learning programming and don't know anything about quantum mechanics?


The languages themselves are all essentially the same for a new user. They all implement the same basic set of quantum operations, which are the ones that have been used by researchers for the last few decades.

If you’ve just started programming, the most relevant factor for you might be the language that the quantum SDK that is written in. They are mostly in Python, but QISKit also has Swift and Java variants. Q# is integrated into Visual Studio.

Beyond this, there are differences in things like

  • tutorial materials
  • the simulators or real quantum devices your programs will run on
  • high-level applications that require no quantum knowledge.

I am very biased in what I recommend (and so I hope that others biased in different directions will also answer your question) but I’d say that taking a look at the QISKit blog might be a good start. Here’s a couple of my own articles


It depends on languages you will have more affinity with.

Qiskit, pyQuil, etc are in Python, which is a programming language easy to understand generally with a lot of helpful libraries. They provide documentations/tutorials to make any beginners start quantum computing. Writing codes can be done in a few lines.

Q# is in C#. I have not tried it but if you started learning programming focusing on C or C++ (and like it), I guess you should be comfortable with this one.

For learning, I would recommend to read the book Quantum Computation and Quantum Information from Nielsen and Chuang or Quantum Computing for Computer Scientists from Yanofsky and Mannucci; if you can have access to them and in parallel look at some code in the platform of your choice. But it is always a good idea to combine different sources and explanations to understand better.

  • 1
    $\begingroup$ I honestly don't think Mike & Ike is a good book for beginners. It introduces too much too fast, Other books like Quantum Computing for Computer Scientists or Quantum Computer Science: An Introduction are much better IMO. Mike & Ike is good when you have working knowledge of quantum computing and want to further flesh it out. $\endgroup$ – ahelwer Sep 10 '18 at 18:05
  • $\begingroup$ @ahelwer This is a relevant comment. Quantum Computing for computer scientists has indeed a lot of numerical examples. It will suit a beginner better. $\endgroup$ – cnada Sep 10 '18 at 18:57

I agree with James Wootton's answer. The choice of the language becomes important once you work on a larger project in which you want to rely on libraries, resource estimates and other advanced features. When you're starting to learn the basics of quantum computing and quantum programming, your programs will be very small and really not that different across different languages.

I assume you'll be going through some book/course on the theory of quantum computing. In this case, there are two things you'll definitely want from the programming language:

  • a nice set of introductory tutorials/programming exercises to help you internalize the theory you've learned.
  • a quantum state simulator that will allow you to see the state of the qubits as your program executes.

My recommendation (biased in different direction, as James suggested :-) ) is to take a look at Q#:

  • Quantum Katas are self-paced programming tutorials designed to accompany a course on quantum computing theory. Each tutorial consists of a set of exercises for you to solve and a behind-the-scenes testing harness which checks whether your code is correct, providing you immediate feedback. The existing tutorials cover a nice set of introductory topics, and we are working on creating more tutorials.
  • The full state simulator included in the Quantum Development Kit allows to dump system state as a list of amplitudes, so you can use it whenever you want to check that the state of the system matches your understanding/expectation or to figure out what went wrong.

This site is temporarily in read only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .