DEV Community

Cover image for What would be a 3 months road map to learn data structures and algorithm ?
Adarsh Raj
Adarsh Raj

Posted on

What would be a 3 months road map to learn data structures and algorithm ?

Start From Basic

Learn about basic Data Structure , e.g:- Linked List, Stack, Queue, Tree,Graph , Map(C++ STL).

Data Structures - GeeksforGeeks is enough for learning about these Data Structure.

Implement them by your self (in your favorite language, it will help you to understand them well and also learn about time complexity more clearer)

So it will take around 10 - 15 days to learn about basic Data Structure deeply.
Now start learning about ALGO. For Algorithm i will suggest CLRS book.
Topcoder Tutorial, Codeforces Tutorial and you can find many awesome blog online doing just Google Search.
Learn from there also.
For each topic (Algorithm which you learn ), start solving problem on codechef , hackerrank, Codeforces. (It will make you perfect). While practicing read problem description slowly , think about solution, give enough time to think , implement. If you solved (Just read other person solution , it will just increase your thinking ability, give you new ways to solve problem).
If not able to solve , than don't worry , read other person solution. and understand that, Maybe some time it will be hard to understand , just use pan and paper and try to understand each line of code , what it is doing. It will help you alot.
If you programming enthu, than do much coding otherwise for learning you can just solve some problem for your better understanding. (Practice Make A Man Perfect.)

Go to Advance.
Advance Data Structure (Segment Tree, BIT, Tries, Suffix Tree, Suffix Array,Advance Graph Theory)

Again read form GeeksForGeek.

Topcoder Tutorial(recommended).

Read Blog(just google search Topic, you will find top university lecture ppt or top blog).

Again Solve problem on various online judges Topcoder , Coderforces, Codechef etc.

Also learn all about DS and Algo via Topcoder + Google Search and solve problem on Spoj, Codechef, hackerrank etc.

For coding people read library (like in C++, STL).

It will make your life easy. Rest you can find on google about STL

ALL THE BESTπŸ˜‰

Top comments (1)

Collapse
 
jonrandy profile image
Jon Randy πŸŽ–οΈ • Edited

Why would you do this? I've been programming for 39 years and have never consciously sat down and learned any particular algorithm. If the need arises for something - I find I come up with something myself, or research it as needed. Learning it for the sake of learning it will not help it sink in. Use/learn it because you need it in a real situation - it's the best way to do it in my experience.

Most of the things you've mentioned rarely get used anyway except maybe to pass computer science exams πŸ˜‰