← All posts

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

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.