Learn Programming — from Zero to Olympiads

Learn programming from scratch and prepare for olympiads: lessons with theory and code examples, auto-checked practice problems, and a clear path from your first "Hello, World" to advanced algorithms.

How to use this site

1

Sign in with Google

One click — and your progress, solutions, and attempt history are saved automatically.

2

Choose your path

A beginner? Start with a language course. Already write code? Start the competitive programming path at level one.

3

Solve auto-checked problems

Lessons come with practice problems. Submit a solution — the judge checks it against tests in seconds.

4

Compete and grow

Join contests, track your leaderboard position, and move up to the next level.

A step-by-step competitive programming curriculum: from algorithmic foundations to expert topics. Every level contains lessons with theory, code examples, and auto-checked practice problems. If you are a complete beginner, start with one of the programming language courses first.

  1. 1

    Level 1. Algorithmic Foundations

    Algorithm complexity, implementation problems, and basic math — the foundation for everything that follows.

    3 lessons

  2. 2

    Level 2. Sorting and Searching

    Classic techniques that appear in almost every contest problem: sorting, two pointers, prefix sums, and binary search.

    4 lessons

  3. 3

    Level 3. Data Structures and Greedy Algorithms

    Stack, queue, sets and maps, recursion, greedy algorithms, and DSU — the toolkit for mid-level problems.

    5 lessons

  4. 4

    Level 4. Graphs and Dynamic Programming

    Graph traversals, shortest paths, spanning trees, and your first dynamic programming problems.

    4 lessons

  5. 5

    Level 5. Advanced Topics

    Advanced DP, segment trees, string algorithms, and number theory — the level of regional olympiad prize winners.

    4 lessons

  6. 6

    Level 6. Expert Topics

    Flows, suffix structures, and computational geometry — international-level topics.

    3 lessons

Programming language courses

Master a language from scratch up to the level where the olympiad path begins.

Доска