Hey, Based on the basics, I assume that you are familiar with flowcharts, loops, and conditions, arrays, pointers, and functions in C and CPP . Therefore, your next step should be to start OOP and data structures. In the data structure, you need to learn and practice linked lists, stacks and queues, binary trees, and hash maps. Once you are done too, then go to the algorithm section. In the algorithm part, you need to learn backtracking, Dijkstra algorithm, Hoffman algorithm, greed, divide and conquer, brute force, recursive algorithm, and finally dynamic programming. If you want to learn about the resources to learn, please let me know in the comments or request answers. Happy coding! !