People will redirect you to a lot of stuff but If you listen to me,

Learn basics from MyCodeSchool https://www.youtube.com/user/mycodeschool ,for now you may skip sorting algorithms. (Rating change None ).

After that go here William Fiset (https://www.youtube.com/user/purpongie), this guy has a playlist on Data Structures and Graph Theory, first, watch all videos like Netflix and Telegram (Oops, but ya there you get some without premium sub) and try to grasp little bit don’t stress too much, Not comfortable yet? do that again 1 more time.
Now is your time to understand (you can skip Networkflow and Binary indexed tree for now), take A3/A4 papers, and write pseudo code from the videos and try to feel it what’s going on.
No other content can give you the feel of DFS & BFS and how to implement and structure GRAPHS better than him like you should be able to feel it. (Personal suggestion).
(Rating Improvement none but if you practice some problems from SPOG with graph tags you may be able to at least implement brute force algorithm of a graph problem)

You should always google if you find some difficulties you may find some blogs (eg. Codeforces Blogs ) which have a great explanation on it.

Now is your time to stop tracking your performance in the contests and STFUP and do sincerely and Google wherever stuck.
Solve each and every problem, don’t copypaste code from previous code (Like implement Graph/ tree from starting each time ).
You will find a doc of questions attached to each video in the description, try to complete all of them.
Love Babbar (https://www.youtube.com/watch?v=5WZQmIEn2wY&list=PL4PCksYQGLJM2mKe1n8LnFgcm3FRLhxZ9)
You may skip DP for now from above. why? because we have got this amazing guy…shhhh
(Rating Improvement: Hmm…may be… you will gain good confidence through, which counts).
Now after you have completed all questions, you can give a quick look at everything and try to remember the trick that was used here.
Now here can do these things in any order comfortable to you,
 For DP don’t listen to anyone and go here (https://www.youtube.com/watch?v=nqowUJzGiM&list=PL_z_8CaSLPWekqhdCPmFohncHwz8TY2Go). Did you know before he started explaining DP was considered hard? This boy gives you the feel…
(Rating improvement: Maybe…but you will be able to face easy to average level DP questions).
 Now comes the Rating booster part, go to https://cpalgorithms.com/ and complete Algebra, Data Structures and solve problems given from spoj below.
(You may also do string algorithms if you wish).
3.Download a pdf on basic Permutation and combinations, and try to solve some related problems. Not able to solve? Download NCERT, then Download College level Permutation and combination books pdf (you may find them as graph theory as well), read smartly solve examples. Give a look at the beautiful thing called pigeonhole theory etc.
(Rating improvement: Good chances, At least you will know that these things exist and maybe copy and place them at the right place in your code…lol but at some point, you will try to understand it.)
Now after you have done all mentioned above you will be aware of the things that exist and you may see some improvements in your rating (And maybe you will be smart enough to handle it all).
Now comes the ultimate booster:
 Solve problems from Codeforces (https://codeforces.com/) with math tag arranged from easy to hard (40  50 would be good to figure out how to think).
 Solve ladder (https://a2oj.com/ladders) problems each of them, recommending to start from rating <1399.
 Solve as many problems you can on all topics and only stress on problems which have editorials on Codeforces.
 For graph and tree problems you can solve from Spoj, CodeChef, and code forces.
(Rating improvement: proportional to problems solved and skills learned ).
Noob coder.