# Who Should Take This Course

Evaluate whether this course fits your needs and skill level.

## We'll cover the following

## Intended audience

If your aim is to ace the interview for your dream job, this course is for you.

Your problem-solving skills will be taken to the next level with an assortment of challenges that will aid your thinking process. This will ensure that you reach the optimal solution by developing a clear understanding of the problem, as well as an understanding of which pattern suits the problem best.

If youâ€™re looking to broaden your understanding of fundamental algorithms, youâ€™ll benefit greatly from this course, because youâ€™ll be shown how to modify these algorithms to fit the purpose of various interesting problems.

## Prerequisites

Youâ€™ll need to have some familiarity with the following data structures:

- Arrays
- Linked lists
- Hash maps
- Stacks
- Queues
- Heaps
- Trees
- Graphs

In addition, youâ€™ll need to be familiar with Big-O notation for complexity analysis. Lastly, you need to know the basics of object-oriented programming, such as declaring class instances, defining methods in classes, calling them, and so on.