How do I learn Q#? What languages should I know prior to learning Q#? How do I get started with quantum computing?
Probably the first big reference I would highlight is qsharp.community. Its a community org where we work on projects and collecting learning materials for Q#. Contributions are always welcome, so just make a PR on a repo or hop on the gitter and say hi!
I'll also add that 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 a bit 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 and I can help find one for ya!
To get started with quantum computing in general, you need to start by learning some of the theory behind it - unlike classical programming, you don't have any intuition about what is going on from your previous experiences, so jumping right into programming might be a bit too steep. There are a lot of resources out there to help you with this, you might want to check out other questions tagged with resource-request or the Awesome Quantum Computing list.
For Q#, here are the resources you might want to start with:
- Official documentation, including a brief review of quantum computing concepts.
- Quantum Katas - self-paced programming exercises and tutorials designed to accompany a course on quantum computing theory. Each kata consists of a set of exercises of increasing complexity for you to solve and a behind-the-scenes testing harness which checks whether your code is correct, providing you immediate feedback, so I believe they are a great way to learn (disclaimer: I am the primary maintainer of the Quantum Katas project).
The existing katas cover a nice set of introductory topics, and we are working on more tutorials bridging the gap between "not knowing anything about quantum computing" and "knowing enough to solve first exercises" - check back in two-three weeks :-)
- Awesome Q# list lists a variety of other resources, including blogs, videos, standalone tutorials and even a book!
Finally, I don't think it's as important what programming language you know before learning Q# as just knowing some programming language. C# and Python come to mind first, since they both allow to run Q# from them (you'll need a classical program to invoke quantum code), but you don't need them to start solving the katas.
I'm not familiar with q#, but I have used qiskit extensively. Qiskit is a python package supported by IBM, so obviously you need to know python. There are many tutorials and instructive Jupyter notebooks on the qiskit syntax and even some basic quantum mechanics. A qiskit based textbook was just released. I haven't read it yet, but maybe you'll find it useful. Lastly, linear algebra is the language of qubits. You will want to have a solid understanding of linear algebra.