> For the complete documentation index, see [llms.txt](https://lewisla.gitbook.io/learning-quantum/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lewisla.gitbook.io/learning-quantum/getting-started/need-to-know.md).

# Need to Know

## Where you should start

Quantum computers are very weird, and they can seem like total incomprehensible nonsense if you're a beginner. Here I'll list concepts you need to understand before you get started learning.

For those of you at the University of Windsor, I'll also be including the names of courses that cover this material. I highly recommended that you take or be taking them before you begin your first project.

## Math

Quantum stuff is all handled with linear algebra, so it stands to reason that you'll need to know a little bit about that before you can get started.

### Need to know

* Matrix math (adding, multiplying)
* Vectors
* Linear combinations
* Linear dependence / independence&#x20;
* Span and basis
* Normalization&#x20;

### Good to know

* Projection
* Orthogonalization

All of these concepts are covered in the [MATH-1250: Linear Algebra I](<http://web4.uwindsor.ca/units/registrar/calendars/undergraduate/cur.nsf/982f0e5f06b5c9a285256d6e006cff78/8029395b4e6be8a985257364004dc5b1%21OpenDocument >) class

## Physics

A deep understanding of physics actually won't be totally necessary. What you will need is *some* understanding of key concepts.

### Need to know

* Position & momentum
* Vectors
* Newton's second law

If you've had a chance to take [PHYS-1400: Introductory Physics I & PHYS-1410: Introductory Physics II](https://web4.uwindsor.ca/units/registrar/calendars/undergraduate/cur.nsf/982f0e5f06b5c9a285256d6e006cff78/fac10bc71a59714285257364004e518b!OpenDocument), that would be stellar. If not, you'll want to take a moment to brush up on high school physics.

## Computer Science

If you're a computer science student this stuff will be relatively trivial for you. At the University of Windsor you should have a solid enough grasp of these concepts by the time you get to second year.

### Need to know

* How to write algorithms and asses their quality
* Computer / formal logic
* Understanding of circuits and logic gates

Here's a list of courses I would recommend. You can [read more about these courses in the undergraduate calendar](https://web4.uwindsor.ca/units/registrar/calendars/undergraduate/cur.nsf/982f0e5f06b5c9a285256d6e006cff78/fb6695172a9a1ba385257364004a8752!OpenDocument).

* COMP-1000: Key Concepts in Computer Science
* COMP-1400 & COMP-1410: Introduction to Algorithms and Programming I & II
* COMP-2560: Systems Programming
* COMP-2650 & COMP-2660: Computer Architecture I & II

## Python

All the programming in this tutorial will be done in [python](https://www.python.org/), using the Qiskit library. Not only is python super easy to learn but is very handy to know in general. There are a million great tutorials online for python, so if you've never used it I highly recommend you go through one of those first.

## Conclusion

The rest of this website will assume you have good understanding of all these concepts. If not, you ought to take some time to go through and touch on each of these topics. If you need some support, or are looking for more learning resources, feel free to leave a comment.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://lewisla.gitbook.io/learning-quantum/getting-started/need-to-know.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
