This is a very comprehensive 94-part course on competitive programming. It gets you from knowing basic programming to being a yellow-red rated coder on Codeforces / CodeChef / TopCoder / etc.
The primary objectives of this course are to learn about 30 different algorithms and data structures. The algorithm tutorials include short intuitive video tutorials, as well as links to a more in-depth text tutorial.
We'll solve 1-2 problems for each topic, and many more for the popular and versatile topics such as dynamic programming and graphs. Each problem includes hint-by-hint solutions from a problem solving point of view, which sharpens your problem solving skills even if you aren't able to solve the problem on your own.
Expected time to completion: 60-90 sessions. 2-3 months if you make progress daily, 4-6 months if you come 2-3 days per week. Each problem will teach you something new, so make sure you understand it before moving on.
This course focuses more on solving problems using the algorithms. For a stronger foundation in algorithms and data structures, I recommend doing the following course: Learn Algorithms and Data Structures.
Pre-requisites: Basic knowledge of any programming language. If you don't have the pre-requisite, you should start here: C++ / Java / Python for Competitive Programming.