I am not a 5* coder right now, so ignore if my advice doesn’t qualify
1. Should I continue CP?
You should continue what you want to achieve till the point that you are either convinced about one of the following:
- it’s not useful anymore
- it’s not worth it anymore.
Whether you improve or not is not important for continuing something, though it might define it’s worth for you.
2. What should be the training strategy?
- The basic way to improve at anything (not just CP i.e. Competitive Programming) is to recognize your weaknesses and work on those.
- You can’t improve only by solving problems that you can already solve. (easy/medium for example). That’s the biggest mistake lot of people make.
- Follow the editorial of every problem you cannot solve. If you cannot understand the editorial because it’s very complex involving multiple concepts you don’t know, then pick at least one of those concepts and learn that. That way you are in a state of never ending learning. Of course, just understanding the flow of solution is not enough. You should be able to draw a roadmap of why the current solution makes sense, and how would one get idea to use the current solution if starting from scratch? Focus on process, not product.
- Example: One possible weakness is you can formulate solutions but not implement them, in this case spend more rigorous time implementing editorials. Another is you can’t think of solutions to problems of a certain level. In this case, spending time with problems of a slightly higher level will help.
3. How long would it take?
It takes different time for different people. Everyone has their own pace. Give your best, set ambitious goals for yourself and see where you reach. As long as you are not stuck in just trying to solve more and more problems with your existing knowledge, you should be able to find some improvement in most cases.
4. Or should i prepare for my placement to get job?
It’s your choice what is more important to you. Preparation for job and getting better at competitive programming may have some intersections but they are not the same.
5. Or should I start new things like ML, Web development?
It’s your choice what is more important to you.ML is different, competitive programming is different, web development is different. I can assure you that there are very few jobs which will ask you to be good at everything. Pick something that you are passionate about and devote yourself to it. Putting your hands everywhere may not be the best idea. (I am someone who myself made this mistake in the past by maximizing list of things on my resume, at the cost of not being very good at either of those)
6. Any suggestion from you guys?
Categorize your improvement in CP over improvement in different topics and problem categories and language nuances. Improve in each of those smaller things individually and you should theoretically improve overall as well. But remember that CP is not everything in life. If you don’t find it exciting or useful, don’t force yourself.