The Topic List is designed to provide structured learning paths for Competitive Programming. Each topic is categorized by difficulty and importance to guide learners from basic to advanced levels.
If You are a Beginner
Check the Basics category at the top to start learning the fundamental concepts of Programming. It contains a step by step guide to learn a language and all the basic topics of Competitive Programming. So even if you don't want to become a Competitive Programmer, you can still learn programming following this guide. And, if you know nothing about programming, no worries! This guide will help you to start from scratch. Also check this guideline:
If You are not a Beginner
If you already know the basics of programming, you can do the following:
Select the difficulty level you want to practice. You can filter topics by difficulty level.
Then select the importance level of the topic. You can filter topics by importance level too. Start with 3 stars topics first.
We have also created some modules for specific difficulty level and importance level. You can select the module you want to learn.
Then select the topic you want to learn.
Click on the topic to see the resources and list of problems related to that topic.
Check the resources to learn the topic. The resources may include articles, tutorials, videos, etc and they are given in the recommended order to learn the topic.
Solve the problems to practice the topic. The problems are categorized by difficulty so that you can start with easy problems and gradually move to harder problems.
Check the attached template codes to understand the topic better.
Don't forget to participate in contests and solve random problems on different platforms to improve your problem-solving skills.
You should also try to do rating-wise practice from time to time. Do not always stick to topic-wise practice. While doing rating-wise practice, pick a rating that is slightly higher than your current rating to challenge yourself.
Do not get overwhelmed by the number of topics. Just start with the basics and keep going. If you are done with the basics, then you are already better than 80% of the people and ready to be an Expert in Codeforces. And, if you are done with most of the 3* topics of easy and medium difficulty, and solve enough problems in Codeforces, then that is enough for you to be a Grandmaster in Codeforces, and this should also be enough for ICPC contests. Of course if you want to perform the best in ICPC, you might need to learn more.
If you are still confused, feel free to join our Discord Server and ask for help.