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

Автор stefdasca, история, 5 лет назад, По-английски

Hi, Codeforces!

I've observed that in the last several months, I haven't managed to achieve a significant progress in average rating on CF and i started to worry whether I touched my peak potential or not, so I came here to ask you some questions. I know it's a debated subject, yet I still think it's sensible to talk about this, so I came up with some questions I still haven't found a clear answer to.

1) When do you believe one has touched his/her peak(bonus points if you're talking about yourself)?

2) If you ever believed you're stagnating, how did you change your way of practice and why?

3) Do you think that everyone has its maximal potential? No matter what do you believe, I'd like to see you state the reasons why you believe/don't believe everyone has a maximal potential.

If you have tips to counter this problem, please share them here, they will help me and many other people now and in the future.

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

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

Auto comment: topic has been updated by stefdasca (previous revision, new revision, compare).

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

What I've observed during the years I was training like a crazy -- if you're really training and consistently solving hard problems, several months with no progress only mean there'll be a sudden unexpected boost soon. Cheer up!

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

    That's an interesting point of view, thanks for sharing!

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

    One of the strongest Go players in Europe (In-Seong Hwang) visited a tournament in my city last year as a lecturer. He said to someone who hadn't improved in some time that it's like bending your legs before jumping. The longer you don't improve for, the higher you jump when you eventually do.

    I think the reason for this is that you learn some new strategies or techniques but you can't apply them properly so they only make you weaker, but after a while you understand how to use it correctly and jump.

    I think all sports, including competitive programming, works similarly.

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

1) I think I've touched my peak whenever I stop practicing. I personally believe there is always room for improvement and if you push hard enough you can always improve.

2) I've been stagnating for a month, and then I started practicing harder problems and I could see improvement. I guess you should practice for your next goal, not where you are at right now.

3) I believe that there is no "maximal" potential for anyone. If you work hard enough and diligently train to achieve the next level, then a favorable outcome will follow. That being said, not everybody has the same limitations that others might have. For example someone might not be able to spend as much time practicing because they have other things to do which is understandable. Regardless, you can always get better.

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

    I can agree with 2) and until some extent with 1) but I wouldn't have written this blog if I didn't practice during this period, I just feel it's not returning the same amount of progress as in the past, and this is probably harder to achieve as the skill level is bigger.

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

      I think also taking a break sometimes is good to avoid burnout.

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

    I believe that there is no "maximal" potential for anyone.

    Unfortunately, everyone has limited time to realize their possibly "infinite" potential. Therefore, Only the effective potential (the amount of potential realized) matters (which is obviously finite due to time). In this way, your potential is technically limited.

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

I think that mentality is important.

To answer your first question, I don't believe a peak exists. My opinion is that the stages of stagnation where a competitor seems to be unable to improve are attributed to either some sort of mental blockade or poor practice. A great competitive programmer told me, "The first step to not being able to make any more progress is believing you've hit a peak."

If you're so certain that you won't improve, you won't. Also, if you performed poorly in recent contests, whether it's due to mentality or just getting unlucky, that hurts you a lot as well and just builds onto your idea that "I've peaked."

Since I've never believed I've stagnated, though I think I will in the future, I'm not going to answer your second question. I don't think I'd provide a constructive response.

As for your third question, I don't think everyone has maximum potential. There's no peak for which you just stop improving.

First of all, to address the genetics argument I know is going to be made. I'm not going to deny some people are naturally better at problem-solving; there are competitors who receive head starts. But it's important to also not mistake a head start and natural skill for some limit on potential.

A metaphor I like to use is to view Competitive Programming as a race: people naturally run faster and will receive a headstart (ex: solving d2b's easily while others struggle with a's when first starting) whether it's from genetics or past experience (for example, contest math). But someone who runs (or improves, in this case) slower won't hit some sort of wall, they'll just run slower when getting to the finish line.

Secondly, I don't believe there exists a maximum potential because everyone will still have things to learn. Competitors can plateau and improve slowly, but that's not a maximum potential. There isn't going to be a point where when you solve a problem, you don't receive a benefit. Of course, as time progresses, you may have to solve more problems to receive the same improvement as in the past, but your overall skill is still going up.

The only time you truly reach "a maximum potential" is when you have nothing else to learn, which is a point nobody has reached (even the best have more to learn).

So in conclusion, my overall argument is that the only thing stopping you from improving is your mentality. If you break past that, you'll improve, and will continue to do so as long as you practice and want improvement.

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

    Good point, but what if we're talking about some realistic peak ratings? You're right, probably given an arbitrary amount of time to practice, one can get a rather high rating, but real life is not an ideal scenario and one can't do CP for his whole life.

    Nevertheless, I appreciate your comment ̶a̶n̶d̶ ̶y̶o̶u̶ ̶s̶h̶o̶u̶l̶d̶'̶v̶e̶ ̶w̶r̶i̶t̶t̶e̶n̶ ̶i̶t̶ ̶f̶r̶o̶m̶ ̶y̶o̶u̶r̶ ̶m̶a̶i̶n̶ ̶a̶n̶d̶ ̶n̶o̶t̶ ̶y̶o̶u̶r̶ ̶a̶l̶t̶, it's actually a wholesome point of view which will likely get upvoted.

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

      What? I don't have alts, I have friends.

      Isn't that right, tmwilliamlin168?

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

      Right, it's important to talk about realistic peak ratings.

      My overall take on that is that realistically, people will stagnate before learning everything in the world.

      But I don't believe in the genetics argument (as I've addressed in my comment). If somebody can reach become red, so can you, even if it might take a bit longer. I think anyone can, realistically, make red, though some people will have a lot harder time doing so.

      I think it's best for you to believe you have the capability to make red, which I really think you do and eliminate the mentality factor. Then, just see how it works out.

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

    Using racing metaphors and analogies: do you think that everyone with a proper training can run at any speed no matter how high this speed is (as for "no limit for potential"), or at least that everyone with proper training can run faster than current fastest runner in the world (if we take that as a more reasonable definition of "no limit")?

    If yes, then what is the main problem of people who aren't able to do that (including professional athletes)? Are they doing wrong kind of training, or they need more time, or they aren't serious enough about it etc.?

    If no, then what is the reason to think that for mental activities it will work completely differently from physical sports?

    Talking about "nothing to learn" part, even if we greatly simplify CP to assume that it is only about how much stuff you know, without taking into account any other skills or aspects — do you think there is some maintenance work that needs to be done so you don't forget the old stuff? If no, then why do people forget things in general? If yes, then why isn't it going to be limiting factor? Like "you can only learn this much not because you'll run out of time but because your brain is going to explode" approach.

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

      The reason why there is a difference between mental and physical activities is that talent really exists in physical activities(for eg. sports). Physical factors like height, muscle growth, reflexes is very genetic and although some components can be improved but they have an upper limit. In mental activities, society by analogy also believes that there is a genetic limit to improving and that is wrong. The reason why we feel some people are ahead by leaps and bounds is because they had early training in math or programming, that created the clarity and effective mental representations to improve even further. This stacking of progress seems so extreme that we by analogy call it talent. When it comes to mental activities human beings have tremendous adaptation response but it is very difficult to trigger especially when most people just wanna get a job or have a high rating. Myelination(the process by which brain insulates neural pathways to improve cognitive function) is a complicated, tedious and slow process but it surely exists in everyone. Again instead of solving really hard problems and getting out of comfort zone, people prefer things which are enjoyable because our body likes homeostasis and doesn't wanna change too much. For example when I started speedcubing I sucked, my friends were better than me but I had the zeal to practice insanely and after few years, I finally broke the barrier of sub 10 seconds, which is quite hard considering that average solve takes 55 ~ 60 moves so it is 5.5 ~ 6 moves per second non stop. When it comes to programming I practice very easy problems and when it comes to hard ones, I give up. That's the true story.

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

        So you are claiming that given exact same situation, food and training, two persons' brains will have exact same capacity? Can you prove your claim? I have followed some people closely (friends and relatives). I have seen people who are worse than others when no one gives efforts, but they can easily (with very little effort) surpass others, even those who have given way more effort before him. I am pretty sure different people have different learning rates, even if they grow up with exact same activities. As time is finite, learning rate defines talent.

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

        So essentially you are claiming that all the other physical factors are genetic, but human brain either functions outside of the physical world, or is exactly the same (size, structure, whatever) for everyone / has exactly the same plasticity and general adaptation capability for everyone. That's an interesting perspective :)

        Myelination(the process by which brain insulates neural pathways to improve cognitive function) is a complicated, tedious and slow process but it surely exists in everyone.

        Capillary growth and muscle growth are also complicated, just like pretty much any other biological process, and we can also say that they exist in everyone, yet you claimed above that for them talent is something that matters.

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

    This isn't related to your comment but that is one cool nickname :)

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

Something that maybe effective to get you out of that plateau is to vary how you you practice. Personally for me, after practicing the same way for weeks on end makes it less effective as compared to changing it up in between. One day you might do practice problems, one day you may learn theory one day you may learn both. Just my two cents.

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

Below is only my opinion!

1) You don't achieve any peak while you are young. You will just see less and less progress for two reasons:

  • The difference of skills between 1e5st and 1e5+1st person in the world is much smaller than the difference between 100th and 101st
  • Every next topic is harder and thus just takes more time to learn.

That being said, your brain will eventually become less functional. We don't stay young forever.

I didn't have a feeling about reaching peak yet. I don't train so much anymore but I learn some new things while preparing lectures etc., so I'm still in shape.

2) Do you know something that you didn't know a month ago? If yes, you aren't stagnating.

3) As I said, you don't reach your peak. You just learn slower.

Bonus: talent is both inherited and gained in your youth. Some people learn quickly because they have good genes, but also upbringing is important af. Read books to your kid.

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

    That's a different side of this debate I didn't think about, and it's an insightful point of view.

    Thanks for sharing your opinion.

  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится +94 Проголосовать: не нравится
    That being said, your brain will eventually become less functional. We don't stay young forever.
    

    I hear that, I am 40 and trying to compete on codeforces now. It seems like my younger self would have more easily picked up on the patterns and assimilated the information. It is slow going, I still can't figure out how you guys see the transitions required in the DP problems, even after I read the tutorial I'm like, "How would I have ever thought of that."

    But its strange, and other people have noticed this as well, it seems older people are better at so-called "marathon" competitions, which aren't too common on Codeforces but things like Kaggle and TopCoder had them, just a single problem with weeks or months of competition, many times drawn from some real-world optimization problem.

    On TopCoder I reached orange in marathons, was ranked 2nd in U.S. at marathons at one point, and won a couple thousand dollars. On Kaggle I did only once and was 2nd place out of 500 after a month, with one month left to go I realized the competition was broken so I didn't submit anything the last month. Turns out that competition was really broken after all, by the end they had realized how it was broken and it ended up a fiasco.

    But its weird why do older people do so much better at the single question long competitions. I guess they are the type of questions that have no neat succinct perfect answer, and you can constantly improve by assimilating other ideas and code. Similar to the skills of a professional programmer which we do every work day, there is no "AC" at work, there is just faster, better, optimizing for an objective.

    Read books to your kid.
    

    That is very good advice. I don't know how things are in other countries, but education in America is horrible. If you leave your kids education solely up to the public school system in the U.S. they will be so far behind everyone else in the world. The schools in America will not cultivate intellectually inclined students, especially if your kid has a propensity to be interested in math and science. For example, I took a competitive math exam in high school, and passed it to go to the next level, the qualifier for I think it was called US High School Math Olympiad or something along those lines, I sat down to take that next level test, I had no idea what the symbols meant, I got one question about logarithms in base 1995 only because someone had actually told me what a logarithm was. But I had no idea what Σ meant, or what ∏ meant, I was dead in the water because I had no idea what any of these symbols in the questions even meant. Its amazing to think that not only can you pass out of secondary education without any instruction in most math disciplines, but even the most talented aren't even afforded the opportunity to learn if they are so inclined. I can't imagine a system of poorer cultivation of human talent than the US.

    I guess the US thinks it can just continually import talented people from other countries instead of properly educating the talented among them. I am one of a tiny minority of American born people at work, everyone else is on Visas from Russia, India, and China, countries who actually properly educate their talented students. And I'm only there because I taught myself outside of school in spite of the useless "education" I received. What my government doesn't understand, "How long do they think those countries are going to keep letting their talented people leave and come here?" They put in the time and energy to educate these people, eventually these countries are going realize it is better to keep the talented ones for themselves. And then, uh oh, nobody to run our information based society. Without the work of talented people educated in other countries the whole US would come to a screeching halt.

    I guess I'll end my rant there, this one ended up a bit off-topic. But yes, especially if you are in the US, you need to teach your kids math and science outside of school in addition to the low-level mindless stuff they get in school. I'd send them to school just to learn social skills, like making friends, etc. But start them out early on solid math and science at home as a supplement. It may be different in other countries, but in the US we don't value or celebrate intellect, just reality TV stars and sports heroes, an endless parade of the egoistic and unthinking are held out as role models to aspire to. Meanwhile, if you have a few brain cells its easy to make a comfortable living, no competition from within, but they'll need to actually learn skills the schools will not teach.

    OK, OK, I'm really done with the rant.

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

      I am from India, I had a friend whose parents left their jobs in America and came to India so that their kid could get a better education.

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

        Yeah, it seems the US is fixated on taking those that have no interest in math and science and forcing them to become at best rudimentary educated in those disciplines. No doubt a worthy enterprise, however, they are leaving the most talented and most interested to languish instead of cultivating their abilities. I'm sorry, but its just a fact, some people are inherently more interested in these subjects, and it is not generally from the unwilling the next great breakthroughs will come.

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

    how young is too young i started cp at 24 and i don't think i am ever gonna stop doing it, it just means i will just have to work harder than other young people??

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

I don't believe there is a cap on one's level. But one day you will think that waiting for the next boost isn't worth it and you better be doing something else. It doesn't mean you stop improving for natural reasons, it means you stop improving because it's not fun anymore.

About stagnation I will agree with totsamyzed. Maybe counterintuitively, but in my experience "rating" (in absence of better measurement for "level") is not continuous.

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

I've reached my ceiling, but who cares ?

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

Everyone seems to be suggesting that there is no such thing as a “maximum cap”. That seems very insulting to me. Some people just aren’t cut out for it. A paraplegic will never be in the world’s fastest sprinters. And a person with severe mental or learning disabilities will never be in the top algorithm/math/other olympiad competitions. Hell, even the average person can’t do either of these things, and that’s without any disabilities. Telling someone that “everyone can do it, just work harder” is ridiculous. Some people struggle for years without results. Would you tell a guy on a wheelchair, paralyzed from the waist down, that “everybody can be a world class runner”? Really?

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

    And do you think that a paraplegic will reach some level one day and stay exactly on that level? Nope, he just progresses slower. Maybe his progression/learning curve looks like $$$log(time)$$$ while other people have $$$sqrt(n)$$$ and that's it. Ofc. for everybody you can say that for sure they will never reach level X but I wouldn't call it max cap. I will never have $$$10^{18}$$$ dollars. Is it my max cap? Do I have max cap for amount of money? If I had, it would mean suddenly stopping when reaching that amount, right?

    I don't think that anybody said that anybody can reach LGM. You're obviously limited by your lifetime and combined with learning speed limitation it gives you some level that you won't achieve. It just shouldn't be called max cap because it isn't something where you stop.

    EDIT: Actually, what I claim is that there is no peak. This is what the author asked about. It makes some sense to say that some huge value is max cap.

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

      Using this model of "learning speed", we already need to make strong assumption that you don't need to put any effort into maintaining your skills / not forgetting things that you already know (or that the this effort is sustainable even with knowledge->INF).

      I'm most likely weaker now than I was back when I practiced, not only because other contestants got stronger, but also because I simply forgot a bunch of stuff that I've not touched in last 1-2 years. Do you think there will be no limitation on how much area-specific knowledge one can handle and be able to properly use, or just that limitation is so ridiculously high that there is no point in thinking about it (as "you'll need million of years to learn this much")?

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

        Good point. That limitation isn't extremely high but I still think we get older first. If somebody lived and stayed young for hundreds of years then I would worry about it.

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

      Maybe his progression approaches an asymptote. Maybe his progression looks like positive x part of graph of -1/x. Of course when we refer to max cap we are referring to something reasonable.

      And for no peak? What if someone quits practicing after getting a high rating and comes back after a year. But then they are already too old to get so good and have forgotten lot of stuff. Wouldn’t that person have a peak? I don’t really see where this notion of no peak comes from.

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

    Of course not everyone can have 3000 rating, but give every human on the planet 10 years of competitive programming experience, and a vast majority would be over 3000 rating.

    Older people will never be able to be as good as young people in this type of competition, but generally, if you train from young age and you train for several years, you can expect to be a highly ranked programmer.

    Its stupid to think of world's best programmers and call that talent, maybe it is a bit, but you'll never see someone be the world's best at some sport while not investing a significant amount of time into it.

    You're considering this from an "emotional" standpoint. From an emotional standpoint, if you're an old person, or someone who just has no background in programming or math and you're already an adult, its not exactly worthwhile to spend your years training for this, emotionally, because its very tough.

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

      "give every human on the planet 10 years of competitive programming experience, and a vast majority would be over 3000 rating.". Not true. Leave LGM and consider expert as that looks somewhat achievable. I have seen people (I dont want to name them) who have invested many hours into CP and solved tons of problems but still in expert and also people who just started CP and reached expert in just 1.5-2 months (without any prior programming experience). So saying that talent doesn't matter is not true.

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

        No... do you have any idea how massive 10 years is ?

        10 years into any skillcraft and you'll become one of the best in the world.

        I have never ever seen a competitive programmer with 10+ years of experience that is below red, ever.

        Anyone can do "something" for 10 years, and still suck at it, its very easy to do that, what I'm talking about is regular training for 10 years, that's godlike amount of skill.

        tourist had like 5-6 years of programming experience before his first IOI gold, a lot of people can get IOI gold after only 2-3 years of training.

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

          CF is almost 10 years old and there are loads of people who are here from 2010, 2011, 2012 and they're still not red.

          Also, do you even imagine doing CP 10 years later? That's a good part of your youth, and you'll probably want to do something else as well.

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

            Yes and the very people that you see on top have been doing this for 10+ years, that's my whole point.

            Yes its possible to be the best, but it takes a lot of your time.

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

              But my point is that 10 years of constant practice don't guarantee red, not the other way around.

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

            I think if you practice consistently for 10 years you should almost definitely be at least orange. I'd guess that your counter-examples haven't been practicing consistently (at least 10 hrs/week). Even 10 hours is nearly impossible to keep up with for 10 years. Can you show any counter-examples to this? Obviously there are very few examples of people who stayed 10 years and them staying 10 years correlates with talent but I'm a bit curious

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

              I don't know any context of how and whether this person practiced, but there is some representative chart on ruban's page having extreme amount of written contests and being registered for 9 years

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

                Ok, well that seems to be a pretty clear witness to the falseness of my claim. Even just doing contests, that's a lot of contests! (Interestingly, he seems to be programming using Delphi, which I've never even heard of)

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

      No, if you gave everyone ten years of experience I would expect the average to be 2200.

      Actually I thought about it again and I'm going to go with 2000.

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

      give every human on the planet 10 years of competitive programming experience, and a vast majority would be over 3000 rating

      No. Lots of people I know spent 10+ years and only reach red (e.g. myself). 3000+ is impossible.

      (Note that even in high school I was considered top of my batch in Vietnam. I spent next 6+ years focusing on CP (total 10+ years focusing on CP) and only reach 2600 once and stable rating around 2200-2400).

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

        You practiced programming every day for several hours for 10 years ? I doubt it. And if everyone was 3000 rating, 3000 rating wouldn't be impressive, i was just making a point.

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

          You practiced programming every day for several hours for 10 years ? I doubt it.

          LMAO. It makes me laugh to seen a green doubting a red. Anyway, why don't you try to even reach yellow by doing "10 years of programming every day"? Then you will recognize that results don't scale proportionately to the amount of time spent.

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

          Yes.

          More than "several hours" per day.

          Also reply your other comments: "I've learned a lot about CP in these 6 months"

          Your first 6 months is easy. When your rating is higher, it will become significantly harder.

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

            Ok, maybe 3000 rating is a bit of a stretch but I just can't fucking imagine someone with 10 years of CP experience not being anything other than red+

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

              but I just can't fucking imagine someone with 10 years of CP experience not being anything other than red+

              Why not? mind you there's only 24 people who is currently above 3000. And how do you know the difficulty of getting to 3000? Have you got there before? Do you know anyone who got there? Do you know how hard they trained to get there? Do you even know many people with 10 years CP experience? If not, you are just making wild assumptions with zero knowledge.

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

                No... The rating is a zero-sum game as far as I'm aware, so not many people could reach 3000 rating, but if you put one person individually a 10 years of CP knowledge, that's my point.

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

                  Rating isn't a zero sum game, it's more like -10/player sum game on average.

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

Considering that every top programmer you see right now is on the top because of their absolutely massive amount of time spent into it, from my observation, your skill directly correlates to time spent on given subject. The only time I noticed that I was improving (and this applies to many competitive video games with ranked systems that I play as well), is when I was spending a lot of time into it. in CS GO, I managed to get into Master Guardian 2 within two months of playing this game, but I played 4-5 games every day. I stopped for a few months, then I came back, I was visibly weaker and not at the same level, and upon playing 1-2 games per day I failed to reach my old rank, I failed to improve within those 1-2 games as much as I did while playing 4-5.

Its not to say that you should do programming 12 hours a day, but at your level, or any level really, if you want some results, you need to invest your time into it. I heard that tourist spends only 3-4 hours a day programming, but then again he started at a very early age and he's already learned a lot of things.

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

    My friends literally have 1600 hours in csgo and practice aim on special maps/bots/each other and plan out all these insane strategies and watch pro games and after 4 years they are still silvers lol

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

      How is that even possible ? I was GN1 from day 1.. Anyway, its entirely possible to be a casual while taking the game seriously, I have friends in League of Legends that are still silver after 4 years but they never actually tried to be better than silver.

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

    I heard that tourist spends only 3-4 hours a day programming, but then again he started at a very early age and he's already learned a lot of things.

    Lol. It's not going to be helpful to compare number of hours spent when talent comes into play. Of course, I'm not saying that you shouldn't put in any effort just because there are always people who will be much more talented than you. But, we have to acknowledge the fact that there is always a child prodigy who will get LGM at an age where mere mortals, such as myself, did not even know how to write a "Hello World" program.

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

      You seem to be more of a person "Oh you're not smart enough to be here".

      I never said that anyone could be tourist, if anyone could be tourist, I wouldn't be using tourist as an example, I'm just saying that when you have early age + amazing support from parents + most developed competitive programming country in the world its not exactly surprising or "child prodigy" stuff to be winning programming competitions... I've learned a lot about CP in these 6 months I've been doing this, now imagine stacking those 6 months 20 times by starting at age 6-9.

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

        You seem to be more of a person "Oh you're not smart enough to be here".

        Lmao. I didn't mean that in any way. XD. BUT you got to be realistic. You can't suppose that every one starts on equal ground (which is a point I think many grays/greens refuse to accept). Just because all babies start at 0 years old with 0 knowledge/skills at all, it does not make all babies equal.

        when you have early age + amazing support from parents + most developed competitive programming country in the world its not exactly surprising or "child prodigy" stuff to be winning programming competitions...

        REALLY? Do you think that you can teach a mentally disabled person to write a "Hello World" program? Even if you train him from birth + give him amazing parental support + let him be trained by ICPC champions + whatever else you can think off?

        I've learned a lot about CP in these 6 months I've been doing this, now imagine stacking those 6 months 20 times by starting at age 6-9.

        Unfortunately, this world consists of many more things than just plain math. You obviously don't understand humans. You just can't scale things that way. Else, everyone who learns math from a young age will be a Bernoulli, Gauss, etc. when they grow up. But that's not happening. It takes a lot more than "starting from young".

        Once again, I want to reiterate my point, number of hours/starting from young DOES NOT completely determine your skill. You have to factor in talent (which is not easily measured anyway). There was a 9 year old who could do university level math (see this). Lmao. At the age of nine, could you even solve simultaneous equations? Lol. Tell me that his parents were training him in math when he was in his mother's womb. That sounds utter ridiculous. But that's what you get when you try to ignore talent.

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

        I never said that anyone could be tourist

        give every human on the planet 10 years of competitive programming experience, and a vast majority would be over 3000 rating.

        pick one

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

1) I don't think there are realistically any contestants in the world who are at the level equal (or very close) to their peak potential. There is little or no science on how to do competitive programming training, and there are very few people in the world who are actually serious about it for long enough time. In sports (both stuff like athletics and stuff like chess) or in various skills in general (like playing musical instruments) you aren't going to reach your potential after only 3-5 years of structured training, so I don't think it is any different in competitive programming. Moreover, for competitive programming nobody really knows well how to practice it, and the way we are doing it nowadays is a bit like saying "In order to become a good runner you need to run a lot". It is not scientific at all.

2) Looking at my past experience, every time I actively practiced I was clearly improving, and every period of not practicing much was leading to not having much of an improvement. I think it is mainly because I've still been far away from reaching my potential, as I've only done competitive programming for a few years, without any solid structured approach, and with a bunch of breaks and distractions. Based on people I actually know close enough to have an idea about their training, among the folks who actively practiced for at least 4-5 years the ones with the lowest ratings were at high yellow / low red zone, and for most of them it was mainly because they were focusing at other skills (for example, training for specific roles in ICPC teams and not for individual contests). I don't know a single person who actually practiced for multiple years yet ended up still being in div2, though I know multiple examples of people claiming that it is the case while in fact I had clear evidence that they are wrong (either they were exaggerating amount of practice that they've done, or they were making things up, or they honestly believed that 2 hours per week is "practicing a lot"). This is not representative data set because it could be that I'm simply "lucky" with it, or that everyone who isn't "made for it" left it much earlier and didn't spend multiple years on this stuff (sort of survivorship / self-selection bias). It also gets a bit harder as you proceed since the rate of improvement slows down, while there is no good way to measure your skills — rating depends on luck and random other stuff, and I had both periods when my rating was clearly much higher than my actual skills and periods when the rating was much lower than my skills. Right now, for example, it is most likely significantly higher than my actual skill level.

3) Yes, similarly to pretty much any activity or sport, there are limits based on physiology in particular and laws of nature in general. And since different people are different, it is natural to expect that their limitations are also different. There is some asymptote for which there is no way you can get over it. "No human is limited" sounds cool, but when are we going to see people running 100m in 2.7 seconds? And if you just imagine somebody running with such speed, consider some physical models and do some math, you'll see that you are running into all kinds of issues like "the force that you'll need to create will make you break your own legs". The real question would be about where that limit actually is. As far as I know, we still have little clue about how mental things work, so predicting something in this area is about a lot of hand-waving. What percentage of population is capable of reaching the level sufficient to beat current #1? Is it 0.1%? 1%? 10%? 50%? 99%? I don't know. If you look at sports results from the past, most of them are laughable today — like a lot of world records from 1900 are "I'm doing this as a hobby" kind of performance today, because of multiple reasons: better technologies, better understanding of how the training should be done, better access to resources and facilities etc. Based on how young competitive programming is, and how small is the number of people doing it, I see no reason to think that we are even remotely close to the limit. The state of competitive programming is probably similar to activities like speedcubing — similar sport that is relatively young with relatively few people caring about it. You can check Wiki to see some graphs about world records progression there.

Answering the question about your problem, I think you are simply not patient enough, and you expect results to come out of nowhere. Keep practicing and you'll get there.

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

1) I thought I was at my peak this last year. My rating didn't change much and was at around high blue to very low purple, despite my "consistent?" practice. But somehow things changed this last 3 months. While I don't believe my rating now to be accurate to my performance, there is a noticeable difference between my skills compared to before the summer.

2) I started practicing more on Atcoder and Topcoder. I feel like they have more problems that emphasizes ideas (so not a lot of implementation), so I learn faster. I started recording what I have solved, mainly to get a bank of problems that I can show my friends when the school year comes.

3) As much as I would like to think that there is none, there is a limit. But everyone's skills are increasing still. For instance, 2-3 years ago knowing Segment Trees and some standard algorithms / concepts means that you are pretty competent. Now it seems like common knowledge. People are getting better at a scary rate (a Candidate Master 2 years prior might not be able to confidently compete with today's Experts), so in terms of peak skill, you have effectively no limit (limit is much higher than current).

Peak ratings, on the other hand, I can see a case for, because it is a function of how effective your training is compared to everyone else's. If you can only spend say 30 minutes per day training then you can't be expected to maintain / improve high rating indefinitely. In this sense stagnation in ratings is also a sign of progress, albeit not at a rate fast enough to increase. All the reason to keep training / trying to train more effectively :)

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

    That's something I was looking for, thank you so much for sharing your point of view

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

Yes I think there is a peak.I have started programming in February and put it off during school due to work and other activities. When I started again in June I thought, if I practice hard, I will get better. That has not happened, I am just doing random problems, my skill ability is stuck at A. I have no problem understandting difficult concepts like DFS as I have never failed to understand difficult math, physics concepts at school yet when I read a programming problem I just have 0 intuition. Its not like math, you have a concept, you learn it, then you have pages of problems to do and then when you are done, you have the concept mastered. Maybe I just dont have programming intuition but I feel like I am not at all improving, and I dont know how to even learn or train this skill. I have attempted to learn a concept (i.e. dfs) then look for problems but then the problems I see have too varying difficulty, are too hard or unrelated, and then I make no progress. Please help everyone I want to do this efficiently.

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

    Honestly, you're not doing it for long enough. Just start solving harder problems, like div2BC, they should be useful for learning the introductory concepts

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

Offtopic answer: I agree that one generally increase their skills when they practice. But even if it isn’t, it should not matter. Because your skill shouldn’t be your motivation: The very truth of you challenging yourself is important. It will make you a better self, even if you fail to improve. Anything that doesn’t kill you only makes you stronger.

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

    I assume you were making a reference to this?

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

    I have a different opinion. Challenging yourself isn't important. If you don't like CP and you don't need it to get a job etc. then just do something else.

    [having a goal] > [challenging yourself]

    Plus I always found the saying "what doesn't kill you makes you stronger" to be a little stupid. It doesn't make sense to me. I'm not even talking about examples like "cut your limb and see if you're stronger". I once attended a small football tournament for university students. It showed me that I suck at football. Does it mean I'm stronger?

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

      Does it mean I'm stronger?

      Now you learned that you won't attend it next time. :)

      If you don't like CP and you don't need it to get a job etc. then just do something else.

      Agreed. I don't intend to push this for the one who is not interested or trying to pursue another stuff that you consider better. I think the OP isn't in this case. Anyway, if you enjoy this stuff, then having a goal is not the best idea: You basically "outsource" your source of motivation, where the reward isn't decided by yourself and you don't have control over your degree of interest.

      I think people misunderstand that "challenging yourself" is just harassing oneself, but I didn't mean that way: One of the reasons I enjoy solving problems is that I like that feeling when I fail to solve some interesting problem for a moment and finally succeed (or understand the solution). That can be a good example of challenging oneself.

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

      At least in my opinion, "what doesn't kill you makes you stronger" doesn't necessarily mean stronger, but that you become a better human. Even though you think that a single football tournament (in which I assume that you lost) didn't make you stronger, the fact that you kept up with your self playing for 45 minutes (I had to look that up), made you practice your focus, determination, and team work. Even though it wasn't that important in the long term, those skills will accumulate in the long term, and this is why challenging yourself is important. And also, even though doing something challenging may seem forced to some, I think that when you actually solve a difficult problem / do something challenging, you are proud of yourself and that is worth the effort. If you don't think that it is worth the effort, of course you can stop doing CP / challenging your mind. Also, the fact that you know that you are not good at football made you avoid false expectations from yourself. Now you know that you are not good at football, so you probably won't pursue something with football, and that self-awareness will help you with:

      • acting proactively (you probably won't accept an invitation to a football game against a friend of yours with whom you have a bet)
      • not being offended when someone tells you that you are bad at football, because you accepted it
      • being more honest with yourself
      • being happier and accepting yourself

      So at least in my opinion, yes, that football match did make you stronger.

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

    Anything that doesn't kill you may still leave you with a permanent disability.

    Regarding challenging yourself: why exactly is it important? Is it still important if one doesn't enjoy the process itself or isn't comfortable with it? Is it necessarily bad to live a life in which you don't go for challenging yourself? And if you do challenge yourself, does it necessarily have to be something that makes you upset or something that is a process which you don't enjoy per se?

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

1) When do you believe one has touched his/her peak(bonus points if you're talking about yourself)?

When one believes they have touched their peak. As simple as that.

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

very good point stef. i want to ask an added question. It's that different people have different potential. Suppose a person has higher concentration from his childhood. That person will automatically have better implementation so naturally he will have a higher potential. Indians here will know about the JEE exam system. Its an exam based on Maths,physics and chemistry. Some guys prepare for it from class 7 to class 12(6 years) and still perform poorly than those who just prepared for 1 year. In every field there will be a maximum potential. Not everyone can have the dribbling skills of Messi or forehand of Federer.

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

    There was no Messi before Messi Himself or Federer before Federer Himself. You don't reach your maximum potential until you set them as your maximum potential.

    And if Everyone has the skills of Messi or Federer, the society won't run, right ?

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

I have been on stagnant mode since a long time. Earlier,I used to worry about my ratings and rankings as they were not improving despite increasing practice and effort. But then I realised everyone is different. Some are able to perform better in contests while some may not.

Higher ratings does mean someone is better but lower ratings doesn't mean someone isn't.

My ratings are still stagnant but who cares....CP is fun ;)

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

My opinion is that everyone improves while training. I think the issue in this discussion is that we relate rank to improvement, but i think that's not the point. You can improve, but everyone else also does it, so you need to improve relatively to people in your similar rank to get better than them and get to the next rank. I think this relative improvement is logarithmic in your effort, and at some moment you get bored or start doing other things so you can't keep that level of effort. So probably everyone has a moment when they stop improving relatively to people with similar rank. About talent, i think it is more about the logarithm base, they will be faster with the same amount of effort.

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

Anyone can reach IGM at least, only what we need is geniosity

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

Man, you're only 3 years since registered. What are you talking about at all?

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

    I didn't start CP with Codeforces, and I think only few CPers start CP with Codeforces.

    My CP career is 5+ years old, FYI.

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

    I know it is not about the topic but it seems that you're very very good at math and analysis do you solve problems on project Euler or read some books? Thanks

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

gg stefdasca
Don't blame yourself or something for your fails
You are very young, you have a lot of time to become better
While I only have 2 years until the end of my career

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

Okay, I have friends who have been trying for a year and are still gray or green. I have friends who became expert in 3-4 months and I have a friend who became orange in 1 year. I just recently got regular on cf and past 2 contests I have seen a decent increase and I hope to be expert soon. So given all the evidence, I think talent + smart work beats hard work but then again I don't wanna demotivate someone if you put in enough effort it might take time but you will surely reach your potential. But I do think it's impossible to get 3000+ without talent because you can't practice hard or try for something you are not good at, so it will be tough to follow through on CP for a long time if you are not good enough in it and so you'll never be the greatest.

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

I think I reached my peak two years ago. From this moment I am not making any progress.

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

Well it's all in your head

I just have two states which help me to conitnue

1:When I am at my peak rating ,I always think how far can I get from here. 2:When I am lower than my peak rating,can I again reach my peak rating.