> For the complete documentation index, see [llms.txt](https://kinesis-school-of-programming.gitbook.io/nestjs-unleashed/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinesis-school-of-programming.gitbook.io/nestjs-unleashed/introduction/prerequisites.md).

# Prerequisites

This is an intermediate-level course, therefore some previous knowledge is required. Here you can access complementary courses from other authors.

## Programming Fundamentals

First of all, some basic knowledge about programming is absolutely essential to proceed with this course. It is highly recommended that you know at least **Programming fundamentals** and have decent knowledge of **Object-oriented programming** and a bit of **Functional programming**. If you don't, you should probably check on more basic content first before trying to follow with this course.

## TypeScript

The programming language used in this course is **TypeScript**, which is a superset of **JavaScript**. This means that, if you know JavaScript, you can use your knowledge to also learn TypeScript, like an expansion to the former language.&#x20;

> If you don't know TypeScript (or even JavaScript), I highly recommend **Maximilian Schwarzmüller**'s course [Understanding TypeScript](https://www.udemy.com/course/understanding-typescript/) (Udemy), a top-notch quality material to learn about it. Also, I'd personally recommend to watch his lectures until the chapter **Generics**.

## Other recommendations

It is not mandatory, but it would be interesting if you had at least a basic understanding of **Database fundamentals** and **REST concepts**. These topics will appear during the course, so if you are at least a bit familiar with them, you may have a smoother experience.

With that being said, we can begin this journey.
