Блог пользователя mirob

Автор mirob, 10 лет назад, По-английски

I always wanted to write article about what I have learned in psychology, and how it relates to programming. It was hard to come up with single article, so I decided that I will write multiple unrelated blogs.

The first post is about Rating Anxiety, there have been no scientific studies about this phenomena to my knowledge, but from self-reports of competition programmers, I conclude it exists, and I think a lot coders develop it to certain degree and certain peronalities are more prone for the developement.

Rating anxiety(RA) is when you feel bad about losing rating(TopCoder or CodeForces) and as a consequence of that you either skip competition or are nervous and under pressure because of that. In practice this pressure leads to poor performance(thrugh means I will describe in other post), and individual might gain better results if he gets rid of rating anxiety. If your in-contest and ot-contest performance differs somehow, it might be sign of RA. If you feel intese joy on rating increase, means you are prone to it.

You might have it when you think rating is important. Or you feel shame for low rating. Pathological effects are if you are basing your self-worth on high rating. Or you need self-assurance based external validation of how good you are. To prevent that, you should build following belief system: Your opinions are of equal values despite rating, your intelligence is not confirmed by rating. High rating is pseudo-achievement. There are 7 bilion people unaware of your rating, or do not care about it. You do not have higher value, or should be treated differently if you have high rating. Hight rating will not grant you any success.

What I am not saying is that RA is the only trigger for stress. Neither I am not sayin that rating is bad, or that you should not feel good when your ratig is high. Only i am saying that it is possible to get rid of RA.

It is basically easy to get rid of RA, it just suffices admiting that it limits you.

I think it is good idea to try following way, which might possibly help. Good way(with benefits, but takes a lot of time) is to participate in multitude of programming competition portals (TopCoder, Codeforces, HackerRank, CodeChef) and by having so many ratings and contests done you stop to have it.

Other way is not looking on your rating on web page and not thinking on your rating ever. I thinkg following this deceptive logic based statemnt might give you motivation. It is widely accepted phenomena, that losing certain amount of money feels five times worse than gaining the same amount. So given that your rating oscilates around certain value, amount of increases is equal to amount of decreases, so there will be 5 times more nagative emotion than positive.

Unfortunatelly there are no results or statistic to conclusion, I can only say that I had rating anxiety in past and now I do not think I have it.

I cannot resist to not put here my famous quote at the end: "Ultimate developement of narcissist is when he realizes that he must get rid of narcissistic features to become perfect".

  • Проголосовать: нравится
  • +115
  • Проголосовать: не нравится

»
10 лет назад, # |
  Проголосовать: нравится +48 Проголосовать: не нравится

Please add some pictures of pretty girls or at least some cute animals!

Any articles attract more attention when they have pictures!

»
10 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Great Article :)
I have a high Rating Anxiety :)
I participate on various contests but somehow my Rating Anxiety increase when I participate at Topcoder & codeforces more than codechef for example.
but I will try to follow your way
waiting for part 2

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    There are more ways, I wanted it to be short one is figuring why you are participating in competition. And another is knowing other people experience the same, might help. Thanks for feedback

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Related — Math anxiety model (mb a bit outdated, but concrete)

»
10 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

In my opinion, one of solutions is to watch your thoughts. If there is one of anxiety, then ask yourself "Why is this important to me? Why do I think about it? What does this mean for me?". Maybe writing answear until you feel that true answear came. And then make choise of what you want.

I think "to participate in multitude of programming competition portals" can hide anxiety deeper.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I fully agree with first part, it might be called cognitive therapy and self observation.

    Hiding something deeper sounds too Freudian to me :)

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is it "**sikp competition**"? I think it's "**skip competition**".

»
10 лет назад, # |
  Проголосовать: нравится +29 Проголосовать: не нравится

I think, for me this is not the case, I don't think that my performance on previous contests significantly affects actual contest, but my performance in earlier part of actual contest affect performance in its latter part. I think, when I'm really high in standings I get excited and my work is not that effective. When I'm really low I get disappointed and lose some of my motivation. I think I'm most effective on CF when my position is something between 40 and 100 :P.

And relating to this part: "so there will be 5 times more nagative emotion than positive.". I think that when I lose rating I'm not really worried or sad, but when my rating significantly increases I noticed that I'm really excited and usually waste on Codeforces at least 1 hour after the contest studying standings, submissions' time, other people's code etc. xd

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I experience similar behaviour in me nn both points:) Studying standings, obviously does not impove your skills. Unless you discover that higher rating competitors starts with C problem :-)

    Thanks for pointing out that, high excitement can lead to uneffective performance. This clearly shows that learning to control emotional resposne to increase performance is plausible :-)

    • »
      »
      »
      10 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

      Another example. When I was in high school I participated in many competitions which consisted of 2 contest days. Whenever I got a good score on a first day, I always messed second day... I took 9th place on first day of my IMO and second day I took 215th place : /. Other examples can be my 3 finals of Polish MO — during them I solved 1 problem more (out of 3 per a day) than the second day. This also depended on specific problems, second days of PMO finals were harder than first days, but I know that I was thinking much less efficient on 2nd days.

      Writing 2 days of the same competition is something between two separate contests (like 2 CF rounds) and one continuous (like 1 CF round :P).

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится +18 Проголосовать: не нравится

        another good example — when one makes predictions like this before the contest, one cannot help but feel excited throughout the round! ;)

»
10 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

Meh. I do programming contests because I enjoy it, and if I always went up, it'd get boring really fast. Also, it's perfectly natural for people to want to succeed, and also to be upset when we don't; if I didn't have a feeling of anxiety (at least a bit) before a contest, it'd mean I don't really enjoy competing this way anymore.

There's a thin line between getting rid of anxiety and getting rid of excitement...

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Well, [desensitization](http://en.wikipedia.org/wiki/Desensitization_(psychology)) to negative feelings can lead to desensitization to positive feelings.

    Anxiety is negative feeling and it is not necessery for anything to be enjoyable.

    I was not talking about fear of failure(more precisely I was talking about fear of rating going down) being unnatural. Unfortunately this fear is natural, so we must eliminate it by good mindset or various techniques. Because it might lead to skipping competitions or lower performance. Btw there is nothing that is natural for everybody.

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      You don't need to provide a wiki article to "derive a noun with a negation of the verb sensitive", I can figure that out :D. And I'm not really interested in futile attempts at formal description of that which we know best intuitively — human mind.

      Rating going down is a failure in some way, because the rating system roughly reflects one's coding skills. There's no clear line between them — just as there isn't one between "positive" and "negative" feelings. Negative feelings can be positive and positive ones negative in some way, in some situations.

      Everyone has their own mind which works uniquely, of course there's nothing absolutely necessary. Notice when I'm talking generally and when I'm talking in first person: "if I didn't have a feeling of anxiety". I'm just explaining my point of view, and I doubt you can argue that :D

      this fear is natural, so we must eliminate it

      The possibility of failure, and being aware of that possibility, is what drives us forward. Or makes the weak-willed ones give up. (Watch out here: my philosophy, not a general opinion.) Imagine what happened if you literally never worried about your rating going down. When I did, I realized that first of all, the rating would lose its purpose quickly, and that an important part of what makes programming contests exciting would be lost.

      Btw there is nothing that is natural for everybody.

      Yes, but exceptions from some "natural" stuff are usually called insane and locked away in certain institutions... anyway, natural doesn't mean observed in everyone, but in a vast majority of the population. Which wanting to achieve something obviously is.

»
10 лет назад, # |
  Проголосовать: нравится +38 Проголосовать: не нравится

For example, I really enjoy Data Structures, Graphs and some other types of problems,but I can't stand complicated Math problems that require several theorems to be known so one could solve them. The only thing that can motivate me to practice on problems I don't like is that I want to see myself on the top of the scoreboard. The bigger part of joy I get from the problem it's when I come up with the right idea, and when I got AC.

Actually, I think most of people won't share my point of view :) Thank you for touching an interesting part of something I do almost every day. Waiting for your future articles.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    I defy you to point out at least problem on CF which demands hard math theorem.

    Some people get joy just from solving problems and some also like to compete with others and take good positions in contests. In the first case, why participate in any contests? Of course competing won't have any point without loving solving problems, don't misunderstood my previous question. I belong to second group which love solving algorithmical problems but also gain fun from competing and satisfaction from taking high places. There are some fields of algorithmics I like more than others (combinatorics, dp, graphs) and some I find less exciting (strings, geometry), but my goal on this holiday is to increase my skills in strings and geometry. I don't consider this as an unpleasant duty caused by wild desire of winning (ok, that is also a reason, but not the major one :P), but as an occasion to improve myself.

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится +14 Проголосовать: не нравится

      Well, I would have better example if I said "Suffix Automaton" rather than "Math theorem" :)

      I didn't say that they require really difficult-omg math, however it depends on your math skills level(mine is pretty low). It often happens to me that I have no clue how to solve a problem, then contests ends, then I read in the editorial something like "since today is Sunday and N == 3 (mod 4) there is always an unique solution". Of course, I understand that all the mathematical science is about such things, but I believe that the world is full of beautiful problems which one can solve without learning almost anything before.

      And as I said before, I'm confident most people have another point of view about it.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Just curious — and what i have to do if I am not enjoying any type of problems at all (and, actually, never ever did)?

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      But you enjoy being at the top, right?

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится +23 Проголосовать: не нравится

        For me it seems that i had never been "on top" or even close to it, so i don't know that feeling at all.

        I don't care about how good/bad is my performance — if you mean that.

        For a long time i am doing it (and will continue on) only because i promised a person who matters a lot to me. I don't enjoy participating in competitions and don't enjoy solving problems. Don't even like it at all.

        I want to know, is there any way to force myself to like this activity?)

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится +67 Проголосовать: не нравится

          Oh my goodness.

          Anyway, it's not really good to write such things when you search for teammates. :)

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится +17 Проголосовать: не нравится

          It sounds so weird that I don't believe it :-|

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится -16 Проголосовать: не нравится

          I can do these things, but it's more like acting out a role and then forcibly losing the ability to distinguish between act and reality. It's not a very pleasant thing, I suggest you don't try :D

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Is there anything you would enjoy instead? If there is any cause for that, it maybe can be resolved depending on that cause.

          If I assume you have "lost motivation", probably changing programming language might help, or doing only the hard problems.

          Anyway thank you for competing with us :)

          • »
            »
            »
            »
            »
            »
            10 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Is there any strong connection between being motivated and enjoying? For me it does not seems so.

            People are usually highly motivated when visiting dentist — it is all about health, beauty and other such things... But do they really enjoy it?

            Thanks for advices) Somehow it does not work for me. I can't properly learn even one language (still don't know most of STL and new feautures from 0x and C++11 and have large problems with pointers and other stuff), and working with some other is a torture for me.

            And working with hard problems also is not interesting or enjoying — most of problems for me are just "you have to learn it by heart". Like Rubanenko said about math problems with several theorems — but for me it is about almost every problem. Is it lack of imagination and creativity or something else — i don't know.

            • »
              »
              »
              »
              »
              »
              »
              10 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              Joy is feeling and motivation is basically buzzword, so any anwser to this question is probably play with words. But for some people the motivation is the same as enjoying it.

              If you do not see meaning in doing something, it is healthy to not enjoying doing it. According to one old theory the healthy people are motivated by meaning and "neurotic" ones by pleasure.

              If you think you might have lost creativity and imagination, It is good to investigate if you suffer from chronic stress, because those are likely consequences of that.

            • »
              »
              »
              »
              »
              »
              »
              10 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              How do you feel when you solve a problem (a hard one or a problem that you've been trying for a long time) or when you learn a new technique? What about the miraculous solutions, don't they amaze you?

              I too, don't enjoy programming at all now. I'm somewhat bored. But I guess I will continue. Maybe because it seems magical/artistic to me. I feel great when I solve a hard problem or learn a new thing. That's all for me.

»
10 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Very interesting, thank you for posting this. I do not know much about psychology (or anything at all, really), although I have a few good friends with degrees in the field, and I always find it fascinating when they try to explain to me some of the most recent/excitement developments in psychology. I also notice that, either consciously or not, I'm always trying to relate the things they explain to me to things I like, e.g. competitive programming, and I like thinking of ways on how to apply it in my day-to-day life.

Your conclusions seem to resonate with some of the beliefs I've built around the things I've learned and experienced. There's a lot of interesting things to discuss here, but to me I think most of it can be boiled down to the issues of self-esteem—which you mention—and motivation.

When I talk to other people who participate in programming competitions, especially those who are just starting, I like to emphasize on the issue of "internal motivations" vs. "external motivations". A good, simple explanation of this can be seen in this nice talk: The puzzle of motivation. His discussion of the "Candle Problem" (which I can only assume is a well-known experiment in psychology) is very interesting and has a very valuable lesson that can be applied in situations with high levels of stress, like programming competitions.

The exercise I try before any competition is, I ask myself: why am I doing this? And I try to focus on this question intensely until I feel that I can confidently answer that is not "for the ratings/scoreboard/bragging rights/prizes" (external motivations), but instead for the deep joy of learning and understanding new things (internal motivation). This is very much tied in subtle ways to the self-image and self-esteem (or lack thereof).

Anyway, I love chatting about topics like this, but I think I'll stop for now. Again, thank you for posting your ideas and comments, and I hope you continue doing it. Cheers.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится -24 Проголосовать: не нравится

    There's no such thing as "not knowing anything about psychology". Psychology is about studying human mind; you have one, so feel free to do it. A degree doesn't make an expert.

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится

      There's no such thing as "not knowing anything about linguistics". Linguistics is about studying human languages; you speak one, so feel free to do it. A degree doesn't make an expert.

      There's no such thing as "not knowing anything about cardiac surgery". Cardiac surgery is about repairing human heart; you have one, so feel free to do it. A degree doesn't make an expert.

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Linguistics: yes, feel free to do it (it's quite fun, actually). The only difficulty is that we need to come in contact with a language to study it, but that's easily overcome in the days of Internet :D

        Cardiac surgery: If you try it on someone else, it's likely to result in murder. If you try it on yourself, suicide. Isn't that obvious? Aside from that, yes, feel free to do it...

        Your point?

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится

          The point is that your argumentation is faulty. Having something doesn't automatically allow you to get adequate knowledge about it. For example, trying to study etymology by only "coming in contact with a language" and nothing else, you can easily end up being a paraetymologist.

          • »
            »
            »
            »
            »
            »
            10 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            But having something does allow me to get knowledge about it! That's why the term "amateur X" exists.

            Adequate is a subjective (and biased by everyone's own knowledge and achievements in the field) term, I wouldn't really use it. The link you provide is a good example of that: it talks about "what is generally considered false", but that doesn't prevent you from trying to find out more about it and compare that view with your own. Without ever studying the subject.

            • »
              »
              »
              »
              »
              »
              »
              10 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              "Adequate" here means "conforming to known facts". The caveat is that you will know very few of them if you refuse to study the subject.

              Originally, I just wanted to express how I didn't like your invitation to ignore all the psychology research experience (and to make all the mistakes in the field, that already have been recognized years ago). Sorry for off topic.

              • »
                »
                »
                »
                »
                »
                »
                »
                10 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

                There's a difference between studying and studying — you can "study" in a school, and you can "study" by yourself however you want.

                You seem to mistake what I said: "a degree doesn't make an expert" means "you can be an expert while not having a degree", not "you can't be one if you do". It might be an effect of prying in a lot of math recently :D, but I'd say that I said that I formulated an implication and you assumed an equivalence. I never said you should ignore anything — in fact, I said the opposite in my last post:

                compare that view with your own

                How would you imagine comparing one's view with one that, as you say, would be ignored? That wouldn't make sense, right?

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  10 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  You're regarding to literally meaning and mathematical logic, so you should be sure about what you're talking about, but in my opinion "a degree doesn't make an expert" doesn't mean neither "you can be an expert while not having a degree" nor "you can't be one if you do".

                  "a degree doesn't make an expert" <=> "You have degree and that fact alone is not making you an expert" and very likely <=> "There exist people with degree which are not experts"

                  "you can be an expert while not having a degree" very likely <=> "There exist experts without degree".

                  I will say that from point of mathematical logic's view, those are two completely independent statements :).

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  10 лет назад, # ^ |
                  Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

                  To make things short :D

                  • (1) "a degree doesn't make an expert"

                  • (2) "you can be an expert while not having a degree"

                  • (3) "you can't be one if you do"

                  Yes, statement (1), if taken out of context, doesn't imply neither !(2) nor !(3). But you can't take it out of context, right? From the context (of my OP, even), it's apparent that it could be more precise as "(you can only be an expert if you have a degree) doesn't hold". That's equivalent to (2), but not to (3). Where I wasn't precise was:

                  You seem to mistake what I said: (1) means (2), not (3).

                  should've been bracketed as

                  You seem to mistake what I said: ((1) means (2)), not ((1) means (3)).

                  Here, "means" as "together with all the other stuff I said".

                  This has gotten seriously off-topic. But let's keep going and see what happens [insert image macro here] :D

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  10 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  I think your statement "degree doesn't make an expert", does in context "you have your mind, so study it" mean that you can ignore all the psychology research experience. There might be no logical derivation, but that is how humans put things together :-)

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  10 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  Yeah, this was too agressive. I just find experimenting with one's own mind so much more interesting than just learning something much more general. Still, one should never disregard anything.