I started C++ and Code Forces on April 23 2020, and so far to learn I've been reading C++ documentation, doing virtual contests and upsolving them, and learning new techniques from reading the CP handbook and CP-algorithms articles. In my practice I used to just focus on solving div2 D-E problems, but my main problem in contests was that I was taking so long on div2 A-C and implementing them that I didn't even reach div2 D-E. Therefore, recently I switched to doing virtual contests in order to improve my speed and implementation skills while still learning new things from upsolving problems I couldn't solve in the virtual contest time. It seems that this method of practice is working as I finally got blue, but is this a good way to practice in general?
Summary: What is a better way to improve? Should I do virtual contests and upsolve them, or should I only focus on solving problems above my level and hope my speed improves somehow?
Both! Solve hard problems ans participate in vitual contests