It took me about one year to complete about 100 virtual rounds.
I learned a lot of techniques that I had seldom read in books or even never heard of before, like segment tree with lazy propagation, bit-mask dp and so on.
In the early stage, I could only solve about two div2 problems. As time goes on, I found that I could solve more and even all div2 problems, either on my own or by reading tutorials.
I also got familiar with a lot of IDs as I kept participating in more virtual contests. At first, I competed with them together in div2 but they improved quite fast and went to div1, and as it turns out, they are legends now. But I guessed that before legends become legends, they had similar experiences like us, too, facing challenges, keeping practicing, handling various problems, and making progress day by day.
This makes me believe more deeply, that hard working may not be sufficient to achieve one's target, but is at least surely necessary.
Best wishes to everyone's dream, and please never lose hope.
(Finally, I strongly recommend this book Competitive Programmer's Handbook — a new book on competitive programming, written by a great master, and hope that everyone can find something valuable there.)
I feel really really grateful to see so many people's approval and encouragement.
Although I am still a beginner and only have little understanding of many topics, anyone is welcome to talk about problems, techniques, or tricks with me, and I am always ready to share all the materials that I have collected.
Hope that one day, everyone will be his/her own legend.
I have read a lot of your blogs and they are amazing. I have also taken help from them a few times. Thanks for that.
I am glad that this could help you.
I started as a beginner (still now), and I think I could understand how tough it is for a beginner to start the first step, since there are quite many techniques, topics, and even special tricks to learn.
If people can get some inspiration from my experiences, or avoid mistakes that I have made, I think this is good enough for me.