I understand but can't solve
Introduction
While practicing competitive programming (CP), I noticed a frustrating pattern: I could understand solutions when I saw them, but I struggled to solve similar problems on my own.
This blog is an attempt to break down why that happens.
The illusion of understanding
When reading a solution:
- The logic feels clear
- Each step seems obvious
- It feels like “I could have done this”
But without the solution:
- The approach doesn’t come naturally
- The starting point itself is unclear
This creates a false sense of confidence.
Passive vs active learning
Understanding a solution is passive learning.
Solving a problem independently is active learning.
Passive learning:
- Feels fast
- Feels satisfying
- Does not build strong recall
Active learning:
- Feels slow and boring
- Feels difficult
- Builds actual problem-solving ability
The missing link: pattern recognition
In CP:
- Problems are rarely completely new
- They are variations of known patterns
The real skill is:
- Identifying which pattern applies
- Mapping the problem to that pattern
This skill takes time and repeated exposure.
Why progress feels slow
Unlike other subjects:
- There is no immediate visible improvement
- Mistakes repeat. A LOT ;-;
- Problems feel equally hard for a long time
This is because:
- The brain is still building pattern connections
- Recognition takes time to improve, it’s not instant
What actually helped
- Spending more time thinking before looking at solutions
- Revisiting the same problem after understanding it
- Practicing similar problems instead of random ones
These made somewhat of a difference over time.
Conclusion
Understanding solutions is necessary, but not sufficient.
The real goal is to:
- Think independently
- Recognize patterns
- Build intuition through practice
The gap between understanding and solving is normal… closing it is part of the process.