Blog

What 30 Days of Competitive Programming Taught Me

February 14, 20265 min read

My Progress

After 1 month of doing Codeforces and LeetCode contests, I’m back to report my progress and learnings.

In my first month, I completed 10 contests total:

  • 4 Codeforces contests (Div 3 & Div 4)
  • 6 LeetCode contests

My Ratings are now:

  • Codeforces: 0 → 1092 (Newbie)
  • LeetCode: 1486 (Top 18%) → 1758 (Top 9.55%)
Dark dashboard showing rising line chart from 2025 to 2026; contest rating 1,758; attended 10.
LeetCode Rating
Codeforces Rating

The Difference Between LeetCode and Codeforces

LeetCode helps you get a job.

Codeforces helps you become a better problem solver.

LeetCode is largely about pattern recognition and implementation — identifying familiar templates and applying them bug-free.

Codeforces is about problem solving and scientific thinking — deriving solutions from observations and test cases.

A common thing I hear LeetCoders say is:

  • “I can’t solve this because I’ve never seen it before.”

Codeforces forces you out of that pattern-matching mindset and trains you to reason through unfamiliar problems.


What “Deriving From Observations” Actually Means

  1. Read the problem.

  2. Make small observations:

    • Order doesn’t matter.
    • The exact value doesn’t matter.
    • Only extremes matter (only the max/min affects the answer).
    • The outcome depends on a tiny subset of the data.
    • Parity matters — even indices behave one way, odd indices another.
    • We always want to do X every turn because it’s optimal. Then quickly prove to yourself that doing Y guarantees a worse outcome.
    • Sometimes the key insight is mathematical.
  3. Test your observations:

    • Run small test cases to validate them.
    • If they fail, search for better observations.
  4. Implement the code.

LeetCode often clearly states the observation or directly tells you what to do.

  • Example: Find the longest increasing subsequence in an array.
  • You’re guided to realize that you only care about increasing order and relative comparisons.

Other Thoughts

  • Focus on yourself, not the cheaters 🙂
  • Work deliberately on your weaknesses.
  • Push yourself to solve problems that are slightly harder than what you’re used to.

Next Steps

Codeforces sounds scary, but it’s actually easy to get started.

There are more questions per contest, and the difficulty ramps up more gradually. If you’ve done interview prep before, you’ll usually be able to solve a few problems in Div 3 and Div 4 contests. That’s enough to get the ball rolling and start building confidence.

Codeforces also doesn’t require complex math to begin with. It focuses on discrete math and logical reasoning, not calculus.

My rule of thumb:

  • When trying to improve your skills → do Codeforces
  • When prepping for interviews → do LeetCode

Favorite Questions of the Month

Codeforces:

  • Hourglass
  • OutOfMemoryError
  • The Robotic Rush
  • Monster Game
  • Product Queries

LeetCode:

  • Find Maximum Value in a Constrained Sequence
  • Minimum Operations to Reach Target Array
  • Find Nth Smallest Integer With K One Bits

Shoutouts

If you’re on the fence about contests, I’d highly recommend trying them for a month. The growth compounds fast once you break out of the pattern-matching mindset.


Appendix

Codeforces Problem Breakdown (14 Questions)

LeetCode Problem Breakdown (15 Questions)


My Focus Areas This Month

  • Sorted Lists
  • Binary Indexed Trees (BIT)
  • Segment Trees
  • Sparse Tables
  • Bit Manipulation
  • Combinatorics