bashkort's blog

By bashkort, 3 hours ago, In English

This post assumes you're highly ambitious.

But don't take any advice too seriously -- we're all different. This is simply what worked for me and might work for you. Choose your own path.

Useful Links

How do I start?

Advice: join a great community (school, club, ...), try solving problems, and find someone who can answer your silly questions.

I wouldn't have started CP if not for my school. Of course I love solving problems, but there's a thing I love more -- competing (and winning :D). Initially, CP was just an interesting way to try to win my classmates. Only as I've explored the subject deeper I started to love it for its own sake.

Do you really love competitive programming?

Be honest with yourself here. No need to do it if you don't love it. Though make sure not to give up while you're a novice, try to get some understanding of what competitive programming (CP) really is.

Rule of thumb: you love something truly if you enjoy even the parts that others find strange. Debugging, for example.

My level is X. What should I practice?

See what I did when I was at your level:

Do you need math?

Informatics is a part of maths, mostly similar to combinatorics. You need basic maths, and the more -- the better.

I did some math until 7th grade (qualified for national junior math olympiad), though didn't practice too seriously. Later on I was worrying I've quit too early, but now I am sure I quit on time -- if I would have continued doing math in 8th grade, I might not have qualified for the IOI the following year.

On Talent vs Determination

Too much is said on the topic, I don't want to dive deep here. I genuinely believe that we severely underestimate ourselves, and anyone (with enough time and effort) can achieve anything.

Even if you feel you don't perform well at CP, remember that the real IQ test is the ability to get what you want from life. Probably being better than others on codeforces is not your end goal.

When to read editorials?

Find this fine line yourself. I used to be at the far end of the spectrum here -- didn't read editorials at all, as every editorial felt like a lost battle to a problem.

One of the cons of the approach is that I have hundreds of problems that I've tried to solve, but that were left for better times that never came :D. They are marked with yellow in my OI Checklist.

Now I try to read the editorials for the problems I know I won't be coming back to.

How not to worry?

You have to worry. Worrying is simply caring about the result. If you are 100% sure in yourself, you'll start to slack off -- skipping upsolving, editorials, etc. Be 99% sure in yourself.

If you don't worry, you work as usual. And ordinary effort never leads to extraordinary results.

Motivation vs Discipline

They are inseparable. Motivation comes from "motive". What's your motive for practicing CP? If it's genuine, discipline will follow.

In my case, I wanted to get to IOI so bad that I quit all social media, games, and youtube. Didn't come back :)

Further watch: 3b1b's commencement speech.

How not to burn out?

I don't believe in burnout. You might burn out solving Millennium Prize problems without making progress for decades. You can't burn out doing CP for just 3-4 years and tracking your progress easily.

And even if you got tired, it may be because 1) you've found something more interesting, or 2) you didn't really like CP in the first place, or 3) you're not seeing the progress. If that's really the case, maybe you should really try something new.

What if I have no progress?

Maybe you're not passionate enough. Though if you are, just wait -- often progress comes in leaps. The rating might stay steady for a year, and then jump 100 points in one contest. See the rating graphs of bashkort, never_giveup, allvik66, green_gold_dog, ...

Rule of thumb: track progress in months, not days.

How much to practice?

Rule: In any field, you can't do great things if you're not thinking about it in the shower. credits

I practiced when I wanted to. In other words, always :) Walking back home -- thinking about a problem. Showering -- thinking about a problem. Half-asleep -- thinking about a problem.

How to set goals?

Rule of thumb: if you are not embarrassed to say your goal out loud to your friends, the goal is not ambitious enough.

Another rule of thumb: if you don't fail at least 50% of your goals, they are not ambitious enough.

Last rule of thumb: set goals such that if successful, will make the rest of your career look like a footnote.

How to find a great community?

Get to a great (boarding) school. Or leverage the biggest advantage over prior generations -- the internet. Find friends, join serves, etc.

Be weird

Even if you are in a great community, be weird. Most of what people around you believe and do is wrong. credits

Read blogs

A large part of my practice was reading codeforces blogs and finding novel tricks. If I was starting again, I'd just read the whole Codeforces Catalog. Here's the funniest trick I've found :)

Know yourself. Self-analysis

Know your areas of genius and weak spots. Get better at the former and try to eliminate the latter. I keep a diary to help me analyze that.

What's after competitive programming?

This is just the first step. Make sure CP is not the last cool thing you do.

"The ability to play chess is the sign of a gentleman. The ability to play chess well is the sign of a wasted life" -- Paul Morphy.

AMA

If you have any interesting questions that weren't answered, write them in the comments. I might answer them if I have time :)


If advice here helped you, I'd love to hear about it (you may PM me :D). A lot of the ideas mentioned were found by reading various essays -- mostly at paulgraham.com/articles.html. In particular, if you want to do great things, make sure to read paulgraham.com/greatwork.html

Other advice on CP you may find useful: Um_nik's, Radewoosh's, ...

  • Vote: I like it
  • +21
  • Vote: I do not like it

»
54 minutes ago, # |
  Vote: I like it 0 Vote: I do not like it

How do I hit GM before the end of the year?

  • »
    »
    38 minutes ago, # ^ |
    Rev. 3   Vote: I like it 0 Vote: I do not like it

    How do I hit CM before the end of this year? Also seeing your performance in the last contest you gave your rating already seems like beyond master.

    • »
      »
      »
      29 minutes ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I did really good on one contest doesn't mean I can consistently solve D2F

      • »
        »
        »
        »
        17 minutes ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I see. How did you practice to reach expert? Did you just go solving rating wise or what was your strategy? I am like stuck at this point for so long:(

»
22 minutes ago, # |
  Vote: I like it 0 Vote: I do not like it

but AI