I would suggest you to first master C++ thoroughly. Since language is your weapon, a well sharped weapon is half job done 🙂
Then learn about basics of Data Structures like stacks queues, graphs, trees, and their implementation thoroughly. There are several youtube channels which have excellent tutorials on these topics. Finally solveon hackerrank.
Then study thewhich provides a robust implementation of all the Abstract Data Structures and some algorithms like sorting etc.
You can now start solvingin sorted order from easy to hard and then moving on to other domains. Hackerrank has the best UI as compared to other platforms also you can view various test cases. BUT you cannot view other people’s solutions.
Another good platform is. Open page. scroll down to the bottom of the page and start solving problems with most number of successful submissions. You can view other’s solutions on codechef so that you can get an idea of their thought process and style of code.
After practicing easy problems for 2 months. I would suggest to start learning various standard algorithms involving Dynamic Programming, Graphs, Trees, Greedy techniques, Number theory etc. Youtube has many good videos for these topics for ex. Excellent Dynamic Programming and other tutorials on Youtube by.
There are many other good websites like, , , etc.