blankSpace's blog

By blankSpace, 7 years ago, In English

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.

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

»
7 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 ;)

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

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.

»
7 years ago, # |
Rev. 3   Vote: I like it 0 Vote: I do not like it

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

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

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.

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

    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

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

      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?

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

        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.

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

          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! :)

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

    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.

  • »
    »
    7 weeks ago, # ^ |
      Vote: I like it -15 Vote: I do not like it

    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.

    • »
      »
      »
      7 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      He will definitely change his mind if he visits CF again (He last time visited CF 5 years ago).

      • »
        »
        »
        »
        7 weeks ago, # ^ |
          Vote: I like it -12 Vote: I do not like it

        OMG. Yes :). I did not notice that. :|

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

Do the course "Algorithms: Design and Analysis" (1 and 2):

https://www.coursera.org/course/algo

https://www.coursera.org/course/algo2

After these courses, I started understanding much better how to solve problems.

Good luck and have fun :)

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

    One should not do courses, they don't improve thinking skills, thinking skill is improve when one does a problem that is not too hard, as to make them feel stress, or too low as to make them feel bored doing it. The problem should be around the level that you that it is challenging but not stressful, then you go into that zone and then after doing that problem you improve your thinking, and next time that level increases.

    What I mean is incremental development.

    If you are able to A and B. then start doing C. Each time challenge yourself in such a way that you dont feel stress and the problem is under that zone in which you can do without guidance, finding pattern and modelling the problem in to one or many problem you have earlier solved.

    All we need is to find pattern.

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 .

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

First of all One should not do courses, they don't improve thinking skills, they just feed our brain with data structures and algorithms, one should find them themselves., thinking skill is improve when one does a problem that is not too hard, as to make them feel stress, or too low as to make them feel bored doing it. The problem should be around the level that you that it is challenging but not stressful, then you go into that zone and then after doing that problem you improve your thinking, and next time that level increases.

What I mean is incremental development.

If you are able to A and B. then start doing C. Each time challenge yourself in such a way that you dont feel stress and the problem is under that zone in which you can do without guidance, finding pattern and modelling the problem in to one or many problem you have earlier solved.

All we need is to find pattern.

»
4 weeks ago, # |
  Vote: I like it -19 Vote: I do not like it

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

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

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

    • »
      »
      »
      9 days ago, # ^ |
        Vote: I like it +2 Vote: I do not like it

      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

      • »
        »
        »
        »
        8 days ago, # ^ |
          Vote: I like it -22 Vote: I do not like it

        Instead of wasting your time telling others about your goals, maybe actually do it for once? This is the reason you're grey, retard. With that mindset you're going to be nowhere near specialist

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

          says the one who's wasting his time commenting about others and with a fake ID. And yeah i've been doing what i can do to improve, maybe it'll take more time than others so what?

          • »
            »
            »
            »
            »
            »
            8 days ago, # ^ |
              Vote: I like it -13 Vote: I do not like it

            "maybe it'll take more time than others" you've been grey for 8 months. I think you are just retarded, you'll never improve, just mark my words

    • »
      »
      »
      20 hours ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      i think you are right thanks man

»
8 days ago, # |
  Vote: I like it 0 Vote: I do not like it

If you can solve only Div2 A, B how did you reach expert?