DSA Learning Plan and strategy
1️⃣ Stick to this DSA Roadmap : DSA Roadmap
2️⃣ If your logic building is weak then first solve these basic logic building questions before
solving actual Data Structure MASTER YOUR LOGIC BUILDING.pdf
3️⃣ Master the Basics First –
AL
● Start with fundamental data structures like string, array, stack, and queue before
moving to advanced topics.
● Focus on string and array mastery before solving any question.
H
● If you are starting from fresh then you have to solve as many questions as you can of
strings and arrays.
C
4️⃣ Deep Dive into Each Data Structure:
H
● First Understand the Data structure concepts.(Follow any playlist on YT)
IS
● Implement all its operations (insert, delete, reverse, etc.) by checking out the solution
and understanding the algorithm.
● After this, try to implement all the operations by yourself. Write your own solution.
N
● Create a class for each Data structure and create functions for all the operations.
H
● Operations are the key. If you are able to manipulate operations, you will be able to
solve questions effectively later on.
IT
● Dry Run each code that you are writing. Will be really helpful for the interviews.
5️⃣ Maintain a Detailed Notebook 📒
EW
● Note down everything you learn about that Data structure and different patterns you
observe in problems.
● Write key operations, variations, and approaches for each topic.
D
● Even write small code (direct logic) of problems / operations.
6️⃣ Find & Solve Pattern-Based Problems
O
● DO NOT SOLVE RANDOM PROBLEMS.
C
● Search the particular topic on geeksforgeeks or other sites and find out top 10(at
least) questions covering different patterns.
● You should solve all these after implementing all the operations by yourself.
● Write them down and analyze patterns before solving.
● Understand all different patterns of a data structure. At least solve 4-5 questions of
each pattern.
● After all this try to solve similar problems by yourself.
7️⃣ Own Github Repository
● Create a github Repository.
● Create a folder for each Data Structure and subfolder for operations, easy, medium
problems and even for patterns. Also add the problem statement.
● Whatever the code you are solving on leetcode or any platform, create a class in the
repo and add the working code (your own written solution) with all the special edge
cases/patterns you observed.
● This should be your own written code.
● Don’t copy paste code here. The best part about this repo is that it will contain all the
logic that your mind has formed. Next time your mind will think about the same
AL
approach.
● Add comments wherever you feel it is needed.
● Revise concepts from this repo by looking at your own written code. Have it in your
mobile and revise whenever you get free time.
H
● THIS WILL BE THE BEST WAY TO REVISE.
C
H
IS
HOW TO APPROACH QUESTIONS?
N
H
8️⃣ Try Before Seeking Help
IT
● Attempt the problem on your own, even if the solution is inefficient.
● Don't think that you are writing ugly solution.
EW
● Forget about time complexity and write the brute force solution even if this is wrong.
● Do not check solutions immediately.
Process of solving:
D
1. If you can't even write a solution → Ask ChatGPT/AI tools for an algorithm.
Try converting this algorithm into code.
O
2. If you wrote something but it's incorrect → Ask ChatGPT to check where
you're wrong. Improve your own solution instead of looking at the perfect one.
C
3. Once you get the brute-force approach → Implement it, then analyze how
to improve time complexity.
4. Ask ChatGPT for ways to improve time complexity and create a better
solution.
5. Code the better solution.
6. NEVER EVER LOOK THE PERFECT SOLUTION BEFORE TRYING BY
YOURSELF. NEVER.
9️⃣ Optimize Your Code
● Every code in your repo should have 2 functions.
○ Brute force approach function
○ Improved approach function
● After implementation of the Brute force approach, try to improve the time complexity.
● Build an improved solution.
🔟 Calculate time and space complexity
AL
● For every solution you are writing, try to calculate time and space complexity on your
own and note it down with comments.
● By doing this, your skills of calculating time and space complexity will improve.
H
● Once you solve brute force and calculate time complexity then you can go for
creating a better solution with better time complexity.
C
● For faster time complexity calculation:
○ Follow this guide: GUIDE _ HOW TO MEASURE TIME COMPLEXITY.pdf
H
○ Solve all the different patterns including Iterative and Recursive patterns.
■ Time Complexity Problems Set.pdf
IS
■ Check out my Youtube Playlist for detailed videos.
● Time complexity by CodeN' on YouTube
N
H
1️⃣1️⃣ Short Notes creation:
IT
● Once comfortable and finished the topic, create short notes summarizing all
patterns for quick revision.
EW
● Use this sample short notes sheet to format your short notes:
○ How to create own short Notes
● Keep revising your notes.
● Keep revising the github repository.
D
Directly looking for the solution without approaching the problem is a bad habit
O
that can’t even be fixed in 21 days! – NISHCHAL
C
SHOW SOME LOVE BY FOLLOWING CodeWithNishchal:
● Instagram: https://www.instagram.com/codewithnishchal/
● LinkedIn: https://www.linkedin.com/in/nishchal-muradia/
● YouTube: https://www.youtube.com/@CodeWithNishchal
● Watch My Latest Time Complexity Series: Time Complexity