Ready to build quantum computing applications using Q# and the Microsoft Quantum Development Kit? This is the book for you. Q# is a domain-specific language for expressing quantum algorithms that combines familiar “classical” language constructs with quantum-specific ones. Ideal for any developer familiar with (or willing to learn) the basics of quantum computing and looking to get started with quantum programming, this pocket guide quickly helps you find syntax and usage information for unfamiliar aspects of Q#.
You’ll explore the quantum software development lifecycle from implementing the program to running it on quantum simulators to testing and debugging it. You’ll learn to use the tools provided by Microsoft’s Quantum Development Kit for each step of the process.
- Q# language details, including data types, statements, and operators
- Guidelines for organizing Q# code and invoking it from different environments
- Information on simulators and tools in the Microsoft Quantum Development Kit
- Advice on testing and debugging tools and techniques for quantum programs
Why I Wrote This Book
I joined Microsoft Quantum in early 2017, just in time to witness the inception of the programming language that was later named Q#, and to participate in the development of the first release of the QDK. Over time I’ve gravitated toward education and outreach work, helping people learn quantum computing and quantum programming using our tools—and making it interesting.
This book is the summary of my experience with Q#, both using it myself and helping others figure out its more useful—or more obscure!—language features. It is by no means an exhaustive treatise, but I hope that this book will lead you to appreciate Q# and use it more effectively, and inspire you to dive deeper in its ecosystem.
Who This Book Is For
If you want to build quantum computing applications using Q# and the QDK, this book is for you! The book combines a thorough coverage of the basics with detailed code examples and deep dives into quantum-specific language features, so you’ll find something new and interesting whether you’re completely new to Q# or you have experience with it already.
However, this book is not an introduction to quantum computing! Throughout the book I assume that you’re already familiar with the basic concepts of quantum computing, such as qubits, quantum gates, and measurements.
If you’re looking to get started with both quantum computing and quantum programming at the same time, I recommend you combine this book with any resource that covers the basic concepts of quantum computing, such as the Quantum Katas, a collection of tutorials and programming exercises on quantum computing. This way you’ll be able to learn new topics and immediately put them to good use solving problems and implementing the solutions. After all, the best way to learn is by doing!