Epiq's blog

By Epiq, 8 years ago, In English

Hey Codeforces Community!

When it comes to defining the most important factors of success in programming competitions, we often agree that experience prevails. However, the purpose of this post is to draw our attention to a not any less important factor — our psychological state during the contest.

How can one deal with stress? Should it be dealt with separately, or maybe enough experience can just put it off?

How often does it happen that we know how to solve a particular problem, but due to either distractions or a panic attack we just cannot get back on track, cannot get back into 'the flow'? I have seen people getting stuck in such a state, and therefore not being able to finish the task. The frustration that comes after such experience is daunting.

Let us address the most experienced participants of this community:

  • what do you do before/during contests to ensure staying in the right state of mind?
  • what strategies for dealing with stress would you recommend?
  • how often does it happen to you that during the contest you are getting stuck in some weird (=inefficient) thinking patterns, which prevent you from performing at your max?
  • do you perform any kinds of 'rituals' before the contest to 'tune in', 'get into the flow'? Some world-famous sportsmen are also well-known for such 'rituals', e.g. here is what Rafael Nadal does.

In any case, thank you all for your feedback! ;)

This community has truly become a talent hotbed, where world-class performers can grow.

Edit: it is totally fine to say that experience is the only factor of success in your opinion — the point here is to collect opinions from experienced participants, even if they are very similar!

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

»
8 years ago, # |
Rev. 2   Vote: I like it +9 Vote: I do not like it

I get panic attacks so often! I was unable to solve problem D yesterday and I was so sad that the contest concluded around 2 a.m. and I couldn't sleep till 4 a.m.! I think I get a panic attack whenever I am stuck on an easy problem. I don't even read the next problem correctly. I was solving problem C incorrectly , as I am not really good at even little math problems though. I can solve them but I take time. I think I am suffering panic attacks lately just because I am working hard and I want more out of the contests, but transition never comes so fast! :) So I would love to hear if someone has experienced the same!

  • »
    »
    8 years ago, # ^ |
      Vote: I like it +7 Vote: I do not like it

    I believe it is happening to most of the participants, especially at the point where previous experience does not help anymore, e.g. when trying to solve a problem, which does not look like anything you'd solved before.

    As far as I understand, it is especially stressful, when the initial judgement about the complexity of a problem does not go along with the results, i.e. when believing that the task is easy, but for some 'awkward' reasons still not being able to implement/debug/submit the solution quickly. Your experience from yesterday will probably sound familiar to most of the readers :)

    It could be that the root of this problem in this particular case could be the imprecise initial judgement — that the task is easy. Could it be that more experienced participants just don't judge the complexity of the problems? Maybe then there is no extra stress during the contest, as it allows you to solely focus on the solution?

    However, let's not go too deep into philosophy, I would rather stay pragmatic here :) I am eager to hear what the most experienced competitors do about it!

»
8 years ago, # |
  Vote: I like it +109 Vote: I do not like it

Most important thing ever for the optimal psychological state: go to the toilet before the contest starts :)

  • »
    »
    8 years ago, # ^ |
      Vote: I like it +89 Vote: I do not like it

    Korotkevich appears immune to the intensity of the situation and, in fact, seems more preoccupied with bodily functions. After 45 minutes of coding, he—and there’s no other way to say this—picks his nose, looks at his handiwork, and then picks his nose some more. Right after that, he delivers the equivalent of a giant middle finger to the rest of the contestants by sauntering to the bathroom. The dude is good enough to take time out for a pee.

    by Bloomberg

  • »
    »
    8 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Or as soon as the contest starts :D

»
8 years ago, # |
  Vote: I like it +25 Vote: I do not like it

How can one deal with stress?

Get used to it. When you're under stress all the time, it's not such a big deal during a contest. And doing a lot of contests, possibly even at the same time, is a good way to get used to stress :D

As for me, I need to be under stress to work fast. It's even better when I'm angry.

  • »
    »
    8 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    If you're under stress all the time, how do you enjoy life? Most of us do competitive coding for fun. If we have to be under constant stress to have fun, then isn't that kinda beating the purpose?

    Do your best, fcku the rest

    • »
      »
      »
      8 years ago, # ^ |
        Vote: I like it +20 Vote: I do not like it

      If you're under stress all the time, how do you enjoy life?

      Have you ever considered the possibility that they're not mutually exclusive?

      If we have to be under constant stress to have fun, then isn't that kinda beating the purpose?

      The purpose of fun isn't "not being under stress", so no.

      • »
        »
        »
        »
        8 years ago, # ^ |
          Vote: I like it +3 Vote: I do not like it

        My definition of stress differs from yours. For me, stress is not sleepless days & nights of contesting or practicing. That is fun. Stress is anxiety, sense of unaccomplishment, feeling underconfident and all those negative things. For me, stress and fun are mutually exclusive :)

        • »
          »
          »
          »
          »
          8 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Fun is "sleepless days&nights of contesting or practicing" for you? Really?

          • »
            »
            »
            »
            »
            »
            8 years ago, # ^ |
            Rev. 2   Vote: I like it 0 Vote: I do not like it

            Unlike most people, I don't get any kind of adrenaline rush from getting AC on problems. I get the rush simply whenever I get the opportunity to have adequate time to solve awesome problems. I like the thinking and solving stage of the process more than the solved it! stage. That's why its fun for me if I can devote all my time thinking and solving. It gives me a sense of accomplishment, more than the Accepted does.

»
8 years ago, # |
  Vote: I like it +47 Vote: I do not like it

I cannot think hard when I want to sleep, eat or drink.

Psychological state is somehow related to the results but not directly.

Several times it was that we (I and my teammates) were solving only one problem because many teams solved it. I was angry with myself because I can't solve an "easy" problem. That was terrible. There were plenty of problems that could be solved by us but we spent more than an hour to solve this particular problem.

»
8 years ago, # |
  Vote: I like it +31 Vote: I do not like it

It's an interesting question, and one I haven't given much thought to. I do sometimes get into a state where I can't think properly about a problem or panic because everyone else is solving a problem I can't get anywhere with. Sometimes the only way to break out of it is to give up, move to another problem, and come back to the problem later.

As for mental preparation, I try to relax before the contest e.g. by reading a book. I usually avoid doing much coding in the few hours before the contest, so that I'm not still thinking about whatever I was trying to debug. About 5-10 minutes before the contest I'll start setting up my workspace, opening the contest window, documentation, creating a directory to work in, making sure I have blank paper to work on etc.

»
8 years ago, # |
Rev. 2   Vote: I like it +19 Vote: I do not like it

About before-the-contest things. Sometimes I'm busy so I only create a directory and find some paper. And sometimes (sorted by the importance):

  • Toilet.
  • If only I have time for that, I code or type anything for a few minutes before a contest. It's a simple warm-up for my fingers.
  • I take a walk or at least open a window — to get some fresh air.
  • 10 push-ups.
  • I listen to fast energetic music.

When I get really stuck I go to spout some cold water on my face. And 15 minutes ago I wrote about thinking about the rating/leaderboard in the other comment.

»
8 years ago, # |
  Vote: I like it +17 Vote: I do not like it

The most important thing for me is to get the maximum possible amount of sleep before the contest.

»
8 years ago, # |
  Vote: I like it +24 Vote: I do not like it

I have a problem that I give up on solving problems too quickly and start "hacking" too soon. I will use the chrome plugin "StayFocusd" to block the access to my codeforces room so that I don't get tempted to hack.

»
8 years ago, # |
  Vote: I like it +25 Vote: I do not like it

For me, one of more important things on contests where I expect to be in TopX and whether I will place high is of some significance (rather onsite ones, not CF or TC) is not to have thoughts like "OK, this guy/team is really strong, that one I should be able to beat, however those guys are strong and fast on easy problems, so if problemset consists of that and that type of problems with probability 63,4% I will place in TOP5" — that really distracts me, takes away pure fun from problem solving etc., however it is hard to fight if I'm really excited about the contest (I'm kinda afraid that this is how my thoughts before ICPC finals will look like). Having something to escape from such thoughts (like listening to music) may be a good idea.

Another important thing is not to have distracting physical needs like the need to go to toilet or being hungry. In article Zlobober quoted there is written "Right after that, he (tourist) delivers the equivalent of a giant middle finger to the rest of the contestants by sauntering to the bathroom. The dude is good enough to take time out for a pee.", however I would strongly disagree with such point of view. I simply can't gather any of my thoughts in such situation. It happens from time to time that I have such a need, but I am in the end of debugging one problem and think "OK, I will go to toilet as soon as I debug this" and this is always a bad idea :P. Regarding to being hungry — eating one Snickers always helps me with that.

Another thing is not to have distracting things in your place. For example, I need a lot of light to think properly, my performance and productivity rapidly go down if room I am in is not properly illuminated. Another example is my keyboard — recently it got worse and few letters were not typing properly, to type 'a', 'k' I sometimes needed few tries which was really not comfortable — I bought a new one, changed it yesterday and I feel like I can type two times faster and I am sure that will help me.