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

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

Hello,

This is my first post at CF. So please be polite to me :)

I wanted to seek some advice with respect to practicing. I know that there are many Quora questions posted related to practice, lot of questions in TopCoder/Codeforces forums but please hear me out.

I've been doing competitive programming (seriously) since past 1 year. But the thing is that I don't see much improvement in myself. There are many people whom I know, who started much later than me (like 5-6 months after me) and much better than me now. I understand practice is the only way to improve but I really think it has got something to do with my approach/methodology. It would be really kind of you if you can tell me what's the correct way to practice. Some info : In TC, I can solve Div2 500 in about ~250 during practice. In CF, I'm able to do only Div2 A, B. Some of the questions — if I'm not able to understand how to start, I generally read editorial within some 30 mins. Is this too early? Considering my level, what would be the ideal thing to do?

Thanks a lot for having the patience to read this. You're awesome.

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

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

Of course its just my idea but i think its better for you to solve 50-100 easiest questions in CF and then you can solve Div 2 C problems then you should solve harder problem and go on ... i think it works ;)

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

Practice makes perfect :D Try not to read the editorial at all.It is better to solve 2-4 hard questions than 10-11 easy questions.

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

do your best at contests and read all problems
I recommend you to read "introduction to algorithms" also upsolving is most important

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

Although practice helps, but remember that human beings are limited by their intelligence. Also note that some people are more intelligent than others, therefore blaming the inherited genes is more expedient than blaming oneself.

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

    To aradhya:

    You are right but this guy didn't ask for your pessimistic views. He himself knows his level and in this post he wants some positive suggestion to improve his problem solving skills. But for you, I want you to see this

    To blankSpace:

    Don't stress yourself by thinking that you have wasted 1 year. Think of today as a new start. I also asked this same question to a red coder in CF. Her reply was "There is no silver bullet, no shortcut to getting into Div.1 in a week. Keep practicing. You just have to have enough patience and persistence to follow the advices on Quora for a long time, possibly months." Thing is that you once again visit those Quora advice pages and start implementing them as a new beginning.

    As for the approach I will give you some short tips: 1. At first get speed, confidence and be comfortable in solving CF Div.2 A problems. 2. Then gradually start practicing B and C problems. 3. There is no point in taking part in contests without upsolving them later if you want to grow. Upsolving means "solving problems after the contest". 4. You will improve a lot by seeing code of other 4-8 top performers. If you solved a problem, then see how others have solved. It will teach you to write simple and fast codes. 5. Study basic data structures and algorithms. Many people recommend CLRS book. 6. View tutorials after you solve the problems. If you feel that it is very tough problem and you are not able to solve the problem after 1-2 hours effort then go check the tutorials.

    At last, here is something from Quora: Don't worry about the time it will take you to reach to the top, enjoy the journey without thinking about when the destination will be reached! Coding is a beautiful journey, my friend! There is no end to it. Just enjoy it during your practice hours. Time it will take is inversely proportional to the extent you enjoy doing it

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

      Hi, thanks a lot for the advice. I'll definitely try this method. I figured out that I have not done difficult questions during practice. I've only done A,B in CF etc. So I have to try more difficult problems in order to get them during contest. Will do that too. What to do if I don't get a problem? If I look at editorial and solve it, I have a feeling that I'm memorizing it. How to do it correctly and make sure that I'm not memorizing?

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

        As you see I am a green coder only so I know what I learned from some good tips from my friends and through my limited experience. You asked me what to do if you get stuck at some problem/if you don't understand a problem. First of all if your current level is B then this means that somewhere in past you were able to solve just A only. So what you did then was that you started practicing B problems too and after a good number of Bs you are now solving B with ease. So the same you will have to do now also for C. Look I am also not so comfortable around C as sometimes I am solving C sometimes I fail to. For this all people have told me to just practice at least 50-100 C problems and check my progress after sometime. So you also do the same. This will come from experience only and then after 1-2 months time C problems will seem doable for you like B is now. Don't think too much about D as they are mostly algorithmic questions based on number theory, graph, DP, greedy and many other things. So you can solve Ds only after getting good understanding of various algorithms. For that start studying "Introduction to Algorithms" book.

        But I will say that for now focus on practicing C and learning basic algorithms. And after 2 months again start practicing D too. Since Ds are tough questions, you will get stuck at so many places and you will be frustrated of not being able to solve them. So best thing is that you should concentrate on learning algorithms for now.

        I request other fellow expert coders to correct me if I am going with wrong approach. You can suggest me some other things which I am not doing. You people know that I am a beginner too. So I am open to your valuable suggestions.

        At last tell me why did you use the title of this blog as "my first post". This is seriously misleading and meaningless. People can't guess about the topic to be discussed in this post. It doesn't have anything to do with its context. So maybe you should change the title of this to something meaningful and relevant.

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

          Thank you. (I've changed the topic name.)

          Even I would like for some experts for suggestions apart from this, so that it will be beneficial for both of us and other aspiring coders out there! :)

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

    I really don't like people that think that way, then there is no reason at all to try to be better, there is no goal.

    For example i started really late, in comparison with people that started when they had like 11 years old, in my country math and geometry classes are baddddddddd , so right now i have like 2% the knowledge in this area as someone in other countries, i am not a mathematical thinker, however i force myself through practice to learn more and be better at it, and i can tell you something, you can be a god that can learn all the tricks and techniques in less than 4 months and beat everyone up, but if you don't practice, someone that does will come and beat you up, thats the real deal, practice > talent , always have been and always will be.

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

    HI. you are limited. i am sorry for you. but may be others are not limited about their intelligence. They just say I will do that and i am not limited. so change your bad! mind.

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

first of all i disagree with the proposition "practice is the only way to improve" ,

imagine this situation , two guys are doing competitive programming , the first one used to solve easy problems and he think he is doing well , the second one used to challenge his mind and solve hard problems ... it's obvious that the second guy will be better than the first one , for me personality i know a guy who have been doing competitive programming for ten years and still green !.

so my advice is "Work smart not hard " , Eng.mostafa.saad.fci defined work smart as "ZPD — discipline — self-monitor ", he made a very nice series called "how to practice" , it's in Arabic but there's an English documents attached with each video , i really recommend you read them all . you can find it here .

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

man i am in the same situation trainning for 2 years with no gain i just hope to not quit

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

    You solved in 2 years what people solve in a couple of months so that's expected.

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

      Yours is some >3k problems. Absolute legend tfg. You're a motivation. By end of this year i'll try to do 800-900 total problems which are above my level(idk if it's possible or not) Still regretting doing lot of 800 rated questions