Best Roadmap for DSA and CP [with all Free Resources you need]!





5 people found this helpful
Well this is a very common question asked to me and i think i have made some videos on this too on my YT. But the things are changing and often students are confused on what to start with. I am making this 0% AI blog to keep all my thoughts at one place and so that i can send this link to anyone who asks me this question next time, on linkedin, or on YT, anywhere!
My only advice : DO PREP LEVEL WISE !
The prep that helps me to grow now is not the the same that will help you grow. Not all set of contests are equally motivating for all. If you go and give Div2 Contest on Codeforces... You are bound to get dissappointed by your count of problems solved, as well as others over you (out of them some are even cheating with AI).
So this blog serves like a small guide on what level you are on.. what to expect and where can you get free resources to prepare to move to the next level.
LEVEL 1 : The Foundations
This is anyone who is just starting DSA and CP. You have watched some YT videos and have realised that DSA and CP is important (maybe for placement, or for resume, whatever be the reason).
Most people make a mistake here. They jump onto contests and YT playlists of DSA and end up either getting de-motivated, or are on a path to mediocrity, where they will be able to solve the problems they know(have seen before), and nothing more.
Key things to target at this level to LEVEL-up:
Implementation skill (preferably in C++, why??, maybe in another blog).
Debugging skills (see code and figure out why its not giving the output its supposed to give).
That's it. Not more... not less. Do this properly, and you would be done!
Vivek, where can i do these ??
Well generally you learn one programming language in college first year. But what i would suggest is to watch a one-shot video on YT. I use this Video (or channel for all language) :
https://www.youtube.com/watch?v=6y0bp-mnYU0
It kinda gives you a refresher for all you need. Then you learn by solving questions here.
https://codeforces.com/group/MWSDmqGsZm/contests
Solve all questions for contests from Sheet #1 to Sheet #9. I guarantee you no one can have better foundations that someone who has solved this.
That's all it takes to go to Level 2 !! Believe me ... Most skip Level 1 and suffer for life. Don't be on that side.
LEVEL 2 - The DSA Phase
Now that you have decent grasp on any language, you can start learning DSA. In my opinion, the best way is to binge watch a theoritical DSA course by a College Prof. I did one from Stanford, but i feel the
https://nptel.ac.in/courses/106102064
Naveen Garg's course on DSA on NPTEL is OP !! Binge watch it in 2 weeks. You can make minor notes... but the target it to understand whatever you can and move quickly.
Along side this you can read some good books too that give you the practical aspect of writing code for the techniques that are needed to solve actual coding tasks.
https://www.youtube.com/watch?v=fT2BxEufbYI
This old live stream explores it all, but if you want only one... https://cses.fi/book/book.pdf
Then you can spend some time learning about STLs (or equivalent in other languages).
One of the best series to learn this from is from the playlist of LUV in YT (in hindi though):
youtube.com/watch?v=R5BEcvTVZj0&list=PLauivoElc3ggagradg8MfOZreCMmXMmJ-&index=28Next you can start solving some Classic YT sheet. A short one that you can complete is the Neetcode 150, which is pretty common.
https://neetcode.io/practice/practice/neetcode150
You can also read some good topics from USACO guide, bronze and silver section.
https://usaco.guide/silver
Once you have done 50% of what is mentioned above, you can start giving contests parallely.
Give only 2 contests .
ATCODER BEGINNER Contents (weekly on Sat).
LEETCODE WEEKLY & BIWEEKLY (on weekends).

These are a little beginner friendly and will give you good head start. Solve as many as you can and upsolve one question that you couldn't.
To upsolve:
Read Editorial and see what you missed.
Read more about the topics involved.
See other's implementation to learn good tricks.
That's all. Do this for 3 months, and you will move to Level 3.
Level 3 is the place where things become a little more serious and where you start getting competitive skills. To keep the length of this blog small, i will write the Level 3 and Level 4 part in a separate blog... and add it here:
PART 2 : <COMING SOON>Hope you liked this blog.
Happy to discuss more in the comments :D

Discussions