This list is designed to teach you algorithms and data structures from the ground-up. It starts with why you need algorithms, and then proceeds to teach you foundational ones such as sorting algorithms, graph algorithms, data structures like heaps, dynamic programming, and so on. After the first half, you'll also encounter more advanced algorithms such as segment trees and convex hull algorithms.

Most of the tutorials are a combination of **video**, text and code! The tutorials have been curated meticulously and are some of the best tutorials on each topic available online.

These tutorials are designed to give the __most amount of intuition in the shortest amount of time possible__. A one hour lecture on a blackboard is a pretty last-century way of learning algorithms.

Last updated on: 5th December, 2017