Hi, Codeforces
UPD: Please don't judge me based on my 1200 rating. This information may not be helpful for you, but for new solvers, it might be useful.
Competitive programming is not only about knowing algorithms. Many beginners think that if they memorize enough algorithms, they will suddenly start solving problems. Unfortunately, it doesn't work like that.
The real skill in competitive programming is problem-solving thinking.
In this blog, I want to share a simple mindset that helped me improve a lot.
- Stop Reading Solutions Too Early
This is probably the biggest mistake beginners make.
You see a problem, try for 5 minutes, get stuck, then open the editorial. That kills your progress.
When you struggle with a problem, your brain is actually building new connections. Even if you fail, that thinking process is extremely valuable.
A good rule is:
Easy problem → try 20–30 minutes
Medium problem → try 1 hour
Hard problem → try 2 hours
Only after that, read the solution.
- Break the Problem Into Smaller Questions
When a problem looks impossible, ask smaller questions:
What is the simplest version of this problem?
What happens if n = 1?
What happens if all values are equal?
Can I brute force it?
Often the brute force solution gives you a big hint toward the optimal solution.
- Write Down Your Ideas
Many people try to solve everything in their head. That's a mistake.
Use paper or comments in your code and write things like:
Observation 1: The array is sorted Observation 2: We only care about maximum difference Observation 3: Maybe two pointers?
Once you start writing observations, patterns start appearing.
- Learn Patterns, Not Just Solutions
After solving many problems, you will notice patterns:
Common patterns include:
Two pointers
Prefix sums
Binary search on answer
Greedy decisions
Dynamic programming
Instead of remembering a specific problem, try to remember the pattern behind it. That way you can recognize it again later.
- After Solving, Reflect
Most people solve a problem and immediately go to the next one. Huge mistake.
Ask yourself:
Why did this solution work?
Was there a simpler solution?
What was the key observation?
This reflection step is where real improvement happens.
- Consistency Beats Talent
You don't need to be a genius to become strong at competitive programming. What you really need is:
Consistency
Curiosity
Patience
Even solving 1–2 problems every day will improve your skills dramatically over time.
Final Advice
Competitive programming can feel frustrating sometimes. But remember:
Every strong programmer you see on Codeforces once struggled with easy problems too. The difference is that they kept solving problems.
So keep practicing, keep thinking, and enjoy the process.
Good luck, and happy coding!







