[Episode 0]: Introduction to Quantum Computing
Tags: quantumcomputing, programming, computing, typescript
Published: 2023-01-19 14:29:46

According to [dictionary.com](https://www.dictionary.com/browse/quantum-computer), quantum computing refers to a computer that makes use of the quantum states of electrons or other particles to store and process information as quantum bits.

The above sounds intimidating so let me break it down for you. To understand quantum computing, we must first understand what computing is. In short, computing refers to the process or act of calculation. Anything that can perform calculations is a computer. In today's world, computers have gone past simple calculations like addition, subtraction, multiplication and division and are now capable of solving complex problems because of their ability to perform a quadrillion calculations per second.

![Modern Day Computer](https://cdn.hashnode.com/res/hashnode/image/upload/v1674133228829/06caff26-8965-4980-8b64-60bc8e82fa93.jpeg)

Now, what is quantum mechanics? Quantum mechanics refers to the study of interactions between really really small particles. We're talking millions of times smaller than atoms. Now why is this exciting, turns out that matter on a subatomic scale doesn't behave intuitively. These particles behave really strangely and studying their behavior can enable us improve our lives in various fields. Computing included.

In summary, Quantum computing refers to the application of quantum mechanics to create superpowerful computers.

### Facts about Quantum Computing

Firstly, Quantum Computing leverages qubits. I know you're confused about what qubits are so let me break them down. In classical computing, a bit is either 0 or 1. This is not the case in quantum computing. In quantum computing, bits are a linear combination of 0 and 1. This type of bit is called a qubit. A qubit is a two-level quantum system where the two basis qubit states are usually written as ∣0⟩ and ∣1⟩. A qubit can be in state ∣0⟩, ∣1⟩, or (unlike a classical bit) in a linear combination of both states. This is called superposition.

Qubits have some basic properties which we must know before proceeding. These are:

1. **Superposition** (ability to be in a state of 0 and 1 at the same time)
    
2. **Entanglement** (spooky action at a distance) — *Einstein's words…not mine…*
    
3. **Tunneling** (finite probability of a particle moving through barriers it classically cannot, e.g Walking through walls)
    

Quantum computers can harness these properties of qubits(Well the first two. We really haven't figured out the third). If you want to read more on these, I recommend reading [this brilliant article by Jasmine Tong](https://jas-mine.medium.com/qubits-explained-4e75bc7b1b6d) and watching [this video by Microsoft.](https://www.youtube.com/watch?v=F_Riqjdh2oM)

### Creating the Programming Language

Now that we've gone through the insane weirdness of quantum computing and qubits, Lets get on to the fun stuff: programming.

![](https://media3.giphy.com/media/p6qWfRJ4RxltUEmrl9/giphy.gif?cid=ecf05e47boe15emxw55upkwip35wdunrjtw3s4arwuyfwkiq&rid=giphy.gif align="center")

Why on earth would you love to create a programming language for this hell of a field? Well, there are a couple of reasons:

1. **Learning:** "The best way to learn something is by doing it" - Some Wise Man. Working with it is the best way to learn more about quantum computing. Now there are a couple of ways we could do this. We could: Write Some Circuits, Implement them from scratch or Implement some algorithms. All these are excellent ways, but creating our programming language will not only help us to practice our programming skills but also do all these as well.
    
2. **Project Name:** Jokes aside, A quantum computing-focused programming language sounds like one hell of a programming project. There are few in the world(programming languages, not libraries).
    

So, what tech stack are we going to be using for it? I'm glad you asked. We're going to be using the following:

* **TypeScript**
    
* **Git and GitHub** for version control
    
* **Vscode** as our primary editor, etc.
    

This series will get a new episode every Friday at 8:00 am GMT. So with no further ado, let's get coding.

Remember to subscribe to get email notifications for every new episode. Thanks