Dhananjay
6 min readJun 20, 2023

How did I become an EXPERT on Codeforces in just six months (Oct 2022 — Apr 2023), after being stuck as a NEWBIE for a year and a half (Apr 2021 — Sep 2022) ?

Expert on codeforces, rating graph

The mistakes I made and how I corrected them:

A. Stuck in my comfort zone

Simply solving thousands of easy problems won’t take you far. To improve, you must solve hard problems. For instance, if your rating is 1200, aim to solve 75% of questions in the 1200–1300 range and the remaining 25% in the 1300–1400 range. Wondering where to find such questions? C2 ladders are a great resource. I followed this approach for six months and witnessed great results.

While solving easier problems and topics might provide a sense of accomplishment, if you truly want to boost your rating and enhance your problem-solving skills, don’t shy away from difficult topics. Once you feel comfortable solving questions from a particular topic, it’s time to move on to another topic.

Focus on deliberate practice, which involves intentional and focused effort to improve specific skills. Identify your weaknesses and work on them systematically to overcome them. Embrace discomfort as a catalyst for growth and embrace new opportunities for learning and improvement.

B. Procrastinating up solving problems after the contest

It can be extremely frustrating when you dedicate two hours to solving a problem during a contest, only to come up short. To make the most of your invested time, it’s crucial to revisit and solve that question afterward. Here are the steps I follow for up solving:

1. Make a genuine attempt to solve the problem (allocate sufficient time).
2. Review the topic tags for hints and read any available hints.
3. Seek assistance from a friend or consult the tutorial.
4. Add the question to your to-do list and wait a couple of days.
5. If you still can’t solve the problem, watch a video solution.

Furthermore, it’s important to know which questions to up solve. Personally, I focus on up solving up to Div 2 D problems, and I complete the Div 3 and Div 4 questions as well.

C. Not having a peer circle with similar goals

During the phase when I was still a newbie, it coincided with the lockdown period. Due to this, I had limited interaction with my friends who were into Competitive Programming. However, everything changed when my college finally resumed offline classes by the end of the 6th semester. I had the opportunity to meet many friends who shared the same passion for CP. Together, we created a WhatsApp group where we started sharing information about upcoming contests and discussing interesting problems.

This group became a valuable resource for me as it fostered a healthy sense of competition. Whenever I got stuck, I would seek hints and guidance from my friends. I can still vividly recall our discussions on contest problems during dull lectures or late-night snack sessions at the canteen, XD. These interactions played a significant role in my learning and growth.

I would like to give a special mention to two of my batchmates, Nitin and Saurav, both of whom are experts in CP. They consistently supported me, patiently clearing even the silliest of doubts, and serving as a constant source of inspiration.

D. Lack of motivation and not giving contests seriously

Although I had a desire to excel in Competitive Programming, I lacked motivation and put in insufficient effort. I didn’t set specific targets or deadlines to achieve my goals, leaving me without a clear direction. The absence of a strong reason to pursue CP added to my career concerns.

When I got placed, I was still a newbie on codeforces. Once the placement process ended, I had more time to dedicate to CP. I began my CP journey with the goal of becoming an expert on Codeforces. I promised myself a reward upon reaching this milestone. The pursuit of CP expertise also motivated me because it would improve my DSA and problem-solving skills. I had always wanted to work for a product-based company or an HFT firm, which further fueled my determination.

E. Being inconsistent and taking ratings for granted

During the initial few days, I was highly inconsistent. I didn’t participate in contests regularly, nor did I keep track of any contests. I would often give up after only half an hour, and many times I would quit before even reading all the questions. Additionally, my health was not good during the lockdown, which further contributed to my inconsistency.

To make progress, I committed to participating in contests regularly and seriously. I rarely missed a contest, even during my semester exams or other commitments. This consistent effort and dedication helped me improve quickly.

Once I began taking my ratings seriously, it became a lot easier to improve. Even during contests when I was performing poorly, I wouldn’t give up until the final minute. This attitude proved to be very beneficial. To maximize the results of participating in a contest, it’s crucial to maintain full focus for the entire two hours.

Bonus tips and resources:

A. Resources:

  1. Codeforces + Edu + Contests
  2. USACO guide
  3. CSES
  4. C2 ladders
  5. CP algorithms
  6. Competitive programmers Books by Steven Halim, Anti Laaksonen
  7. Atcoder + DP contest
  8. Codechef
  9. TLE eliminators
  10. Youtube Channels

B. Other helpful threads I posted:

  1. First Job Offer
  2. How to learn DSA and languages to start with
  3. GFG journey
  4. CP community amazing people
  5. Resources for CP
  6. Achievements over past 2 years
  7. AMA, AMA
  8. Leetcode T shirt, Peak rating
  9. Linked In post

C. Extras:

I have extensively utilized most of the mentioned resources during my CP journey. CSES is a must-solve if you want to become an expert. It has a diverse range of high-quality questions and around 200 problems. The USACO guide and cpalgorithms are great resources for learning DSA for CP in detail. They also provide practice problems after each lesson. You should definitely check them out. The Atcoder DP contest is essential for mastering DP, with only 26 questions. Codeforces educational rounds, codechef starters, and atcoder beginner contests are also helpful for improvement. Recently, TLE eliminators have gained popularity, and you can explore them too by enrolling yourself in a batch of your rating range. Lastly, leetcode contests are fun, although they may not provide the same thrill as codeforces.

D. Thanks

Thank you for taking the time to read this. It took me almost an entire day to write it. You can show your support by liking and sharing it to help reach more people. Your engagement and encouragement will motivate me to write more. Stay tuned for more amazing blogs on my life experiences.

You can also follow me @DhawleDhananjay for more insightful content on DSA, CP, and updates about my life.

Arigatou :)

Dhananjay

Computer Science Engineer, loves playing chess and watching anime, interested in tech and DSA, cats and parrots are my fav <3