I have a simple question (or not). I am starting with competitive programming, I wanna know what's the best way to do it (I know that it's different for each one, but I want to know what you think is better). Is worth to learn about algorithms and read books and after solve problems or is better to solve as many problems as possible and learn about algorithm when I face it?