It seems crucial to practice on problems of the right difficulty level. Too easy, and you waste your valuable practice time and energy solving problems you already mastered and gaining nothing new in skills or knowledge. Too hard, and you just get stuck and demotivated, banging your head against a solid wall without making any progress or improvement.
Seems like the best are problems that are difficult enough to challenge your current skill level, but not so difficult that you'll just hopelessly crash against them. How do you identify such problems?
One method I tried was relying on the new "difficulty rating". Unfortunately it seems to be very inaccurate, with many problems having unreasonably high or low difficulty score.