zerokelvin_'s blog

By zerokelvin_, history, 10 months ago, In English

Basic beginner friendly Resources for Competitive Programming Beginners

Introduction

For competitive programming, C++ is still the most effective language. That is why almost all beginners start with C++. Many beginners follow full C++ courses that are not designed for competitive programming .And, many beginners follow full C++ courses meant for app or software development, not for competitive programming. While those courses are not useless, they contain many topics that are rarely needed in CP, especially at the beginning.

This blog lists what to focus on and what to avoid when learning C++ for competitive programming.


Topics That Are Rarely Useful at the Beginning

Full Object-Oriented Programming

Learning complete OOP (classes, inheritance, polymorphism, design patterns) at the start is unnecessary for CP. Most Codeforces problems do not require OOP-heavy designs.

You can learn basic struct later, but full OOP can wait.

Memorizing All Functions and References

Trying to memorize all STL functions or C++ references is a bad idea. You will naturally remember them by solving problems.

Practice > memorization.

Recommended Resources for Beginners

USACO Guide

**https://usaco.guide/**

  • One of the best structured CP resources
  • Supports multiple languages including C++
  • Very beginner-friendly

Bucky’s C++ Programming (YouTube)

Good for learning basic C++ syntax: - Variables - Loops - Functions - Arrays and strings

Watch only the basics. No need to finish everything.

C++ STL (Most Important)

STL is essential for competitive programming.

Focus on: - vector - pair - struct - set - map - sort

Without STL, CP becomes unnecessarily hard.

Practice Problems

After learning basics and STL: - Solve 800–1200 rated Codeforces problems - Aim for at least 100 problems

This matters more than watching tutorials.

What to Learn After Basics

Once you are comfortable with C++ and STL, start learning: - GCD - Prefix sums - Greedy ideas - Lexicographically smallest/largest logic - Shortest path basics

Use: **https://cp-algorithms.com/**

Also recommended: - Errichto’s algorithm videos - LGM and GM's contest streams (for thinking process)

Some Practical Tips

  • Use Google, Wikipedia, and GeeksforGeeks to learn new concepts with exmaple
  • If stuck, read the editorial after ~1 hour
  • Avoid relying on AI solutions at the beginning; it can weaken independent thinking.

C++ is just a language but the most larger part is the thinking process, optimal code. Problem-solving skill matters more than syntax.

If this helps even one beginner avoid common mistakes, the blog served its purpose

Wish you high rated.

Full text and comments »

  • Vote: I like it
  • -24
  • Vote: I do not like it