Bibhuti's blog

By Bibhuti, history, 7 years ago, In English

I am a mediocre coder as of now. I want to improve fast but am confused about how to go for upsolving. Once upon a time I thought of solving 5 problems per day by sorting the problemset from most solved to least solved and go with the flow but now I feel like I am only doing naive questions which only make me feel good but no improvement at all. I've done nearly 420 questions but still feeling damn dissatisfied.

I really don't have any instructor or coach here to give some particular guidance to how to solve something or how not to solve something. So please someone, anyone help me out.

One more thing is that when I go for solving hard questions and just go for solving Div 2 C or so, it scares the hell out of me. I feel like I don't know anything & maybe I'm jumping straight away to something without any previous knowledge of it. I hope many coders would have gone the same phase just like me.

I just want to interact with anyone willing to help just for once and clear my doubts. Please help me.

I think my strength is I've dedication and hard work and I hope the weakness in me is I'm really not confident about what I am doing is right or not.

I would be highly generous if anyone really helps me out.

UPD 1:

I saw many guys giving down-votes to my blog. Can anyone explain why ? I would really like to know.

It's too bad that some people really don't understand serious problems of others. I agree that there are so many resources available over internet but the tough part is selecting the suitable resource among all of them, which is quite a tedious job without an instructor and I don't have one.

Thanks ania for your suggestion. I really got some ideas about how to proceed after your suggestion. It was fruitful

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

| Write comment?
»
7 years ago, # |
  Vote: I like it +37 Vote: I do not like it

I didn't use those myself but I have read here many times that a2oj ladders are a good way for training. They are designed as a set of 100 problems that coders from certain rating range solved before increasing their rating.

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

    Thank you very much. Can you please tell me about how you've improved so well here ?

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

      Currently I don't practise but it seems that doing contests is enough to keep my level stable. Few years ago I had good teachers and trainings at my school and then university. I think the key was to suit the problems to contestants' level, so they are hard enough but possible to solve.

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

Also, I just want to tell you to have confidence in solving any problem regardless of how hard you think it is. In fact, I struggle with this issue too, but I am still trying my best to ignore mental barriers and just 'think' about it. One good trick is to remember that some div2c problems are actually just as easy as one div2b problems — there is a big variation from contest to contest. So each time you try a div2c (I would suggest that you only train on div2c or d from now) just convince yourself it is just as easy as a div2b (because in fact, sometimes it is the same difficulty).

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

    I have a doubt. When I'm unable to solve a problem, I go for the editorials and if I still am unable to solve it then I go for looking the solutions of others. Is it OK during training or there is some other way ?

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

      Of course it is okay. If you don't read editorial, you will never learn new things.

      What is not okay is giving up too easily. It is good to develop a feeling of regret when you spoil a nice solution. Then, you will not be so easily convinced to read editorial next time. Spend a solid amount of time on a problem before giving up. If you can't understand editorial, try to read others' comments. This is all okay, as long as you don't give up easily.

      Good luck :)

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

        I've exactly felt many a times the same. After going through the editorials and seeing others solution I feel like I could have cracked it if I could have given it a little bit of time. It's really cool to see that it's quite natural to feel regret.

        Thanks for this extremely helpful advice :)

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

Very helpful post for coders like me thanks a lot

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

I think it's better first learn a topic for example DSU then try to solve some DSU problems. anyway i'm not wise at all so ask other people that this is good way to improve or no.

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

and be patient if you want to improve

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

    About being patience, I'll be honest here. One thing always comes to my mind. How much I have to be patient? How much time do we need before I reach a particular point and so? Sometime I become a little bit impatience because of this reason. Do you have any solution for this ?

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

I have a doubt, hope someone helps me out. How much time should I think about the problem before going for the editorials? Also, some situations:
1) What should I do if I don't even understand the editorials or other's solutions?(Asking for clarification as a blog post often leads to downvotes+no comments)
2) What if I have coded up my solution but I am getting WA on test 76(A big case) that differs only by a small amount but don't understand what's wrong with my solution?(Again, asking for help as a blog post leads to downvotes+no comments)

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

    I'd recommend trying for at least a day before looking for a solution. You should make sure you tried hard for some time but also that you had some mindless time when the question was just floating around in your head (e.g. when falling asleep or when on a bus). If the editorial is written as a set of hints, try reading the first one and giving yourself some more time again.

    If you don't understand the editorial then it's possible that the question is just too hard for your current level. In that case just return to this question in a month or a year. It is also possible that there is some required knowledge you don't have. You can try to read about the needed technique immediately but I'd recommend putting it on a list of things to learn and once you learn it, return to the question. If at this point you still think that you should understand this problem, make a blog post.

    If you are getting WA then it's either some overflow or you should be able to find a smaller case that is WA too. Write a testcase generator and either a brute force solution or answer checker. Run them in a loop until you find a failing testcase. Then you have something to work on. If you still have problems, make a blog post.

    When you write a blog post, make sure that it's not "plz help I'm stuck". Include the link to the statement, explain what's your problem and what you tried to do. And please, don't paste your code in the blog body. Give a link to the code. It's also useful if you explain what you actually do in the code. If people see that you made effort and did all you could, they are more likely to help.

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

      Thank you :) I will take care of the things you mentioned next time onwards.