# Get started with the Quantum Development Kit (QDK) for quantum computing

The Quantum Development Kit (QDK) contains all the tools you'll need to build your own quantum programs and experiments with Q#, a programming language designed specifically for quantum application development.

To jump right in, start with the QDK setup guide. You'll be guided through setting up the Quantum Development Kit on Windows, Linux, or MacOS machines so that you can write your own quantum programs.

If you're new to quantum computing, review the Overview section to learn what quantum computers can do and the fundamentals of quantum computing.

## Get started programming with Q#

The Quantum Development Kit provides many ways to learn how to develop a quantum program with Q#. To get up and running with the power of quantum, you can try out our tutorials:

- Quantum random number generator - Start with a "Q# Hello World" style application, providing a brief introduction to quantum concepts while letting you build and run a quantum application in minutes.
- Explore entanglement with Q# - This tutorial guides you on writing a Q# program that demonstrates some of the foundational concepts of quantum programming. If you are not ready to start coding, you can still follow along without installing the QDK and get an overview of the Q# programming language and the first concepts of quantum computing.
- Grover’s search algorithm - Explore this example of a Q# program to get an idea of the power of Q# for expressing the quantum algorithm in a way that abstracts the low-level quantum operations. This tutorial guides you through developing the program as a Q# application, using Visual Studio or Visual Studio Code.

## Learning further

- Microsoft Learn offers free online training for quantum computing. The Quantum computing foundations Learning Path introduces the fundamental concepts of quantum computing and quantum algorithms, and gets you started building quantum programs using Q#.
- If you want to dive deeper into Q# programming, check out the Quantum Katas - a collection of self-paced programming exercises that introduce you to quantum computing via programming exercises in Q#. Many of these katas are also available as Q# Notebooks.
- Our samples repository showcases multiple examples on how to write quantum programs using Q#. Most of these samples are written using our open-source quantum libraries, including our standard and chemistry libraries (more info on these below).

## Key concepts for quantum computing

If you are a newcomer to quantum development, we know that this can all seem a bit daunting. These key concepts are designed to help you step into the quantum world and understand how quantum computing differs from classical computing.

- Understanding quantum computing
- Quantum computers and quantum simulators
- What are the Q# programming language and the QDK?
- Linear algebra for quantum computing

## Quantum Development Kit Documentation

The current documentation includes the following additional topics.

### Q# developer guides

- Q# User Guide details the core concepts used to create quantum programs in Q#.
- Quantum simulators and host applications describes how quantum algorithms are run, what quantum machines are available, and how to write a non-Q# driver for the quantum program.

### Q# libraries

- Q# standard libraries describes the operations and functions that support both the classical language control requirement and the Q# quantum algorithms. Topics include control flow, data structures, error correction, testing, and debugging.
- Q# chemistry library describes the operations and functions that support quantum chemistry simulation---a critical application of quantum computing. Topics include simulating Hamiltonian dynamics and quantum phase estimation, among others.
- Q# numerics library describes the operations and functions that support expressing complicated arithmetic functions in terms of the native operations of target machines.
- Q# library reference contains reference information about library entities by namespace.

### General quantum computing

- Quantum computing concepts includes topics such as the relevance of linear algebra to quantum computing, the nature and use of a qubit, how to read a quantum circuit, and more.
- Quantum computing glossary is a glossary of some crucial terms specific to quantum computing and program development. If you are new to the field, this could be a handy reference as you read through our documentation.
- Further reading contains specially selected references for in-depth coverage of quantum computing topics.

### Additional info

## Be a part of the Q# Open-Source Community

The Quantum Development Kit is an open-source development kit that empowers developers to make quantum computing more accessible to all so that we can solve some of the world's most pressing challenges. Academic institutions who require open-source software will be able to deploy Q# for their quantum learning and development. Open-sourcing the development kit also empowers developers and domain experts an opportunity to contribute improvements and ideas via their code.

Your feedback, participation and contributions to the Quantum Development Kit is important. To learn more about the Quantum Development Kit sources, provide feedback, and find out how you can participate in the decisions and contribute to this growing quantum development platform, see Contributing to the Quantum Development Kit.

If you'd like more general information about Microsoft's quantum computing initiative, see Microsoft Quantum.