Mastering Data Structures and algorithms is a step by step learning process.
Mastering Data Structures and algorithms is a step by step learning process. As we say “You can’t win a battle in a day, you need to prepare for it before for months”. Similarly before learning Data Structures and Algorithms, you need to learn basics of programming.
This is the roadmap which you should follow:
1. [Day 0-30]
Learn a programming language. Prefer an object oriented programming language like C++, Java. You can also choose C, Python, JavaScript in the beginning if you are facing difficulty in leaning an OOPS language and then switch to Java or C++.But I highly recommend learning C++ or Java because it has many important concepts which lack in other scripting or shell languages.
2. Day [31-40]
Once you have mastered all the concepts of programming languages, now you can start learning data structures.->Time and space complexity: For every code you write or have written till now, you should be able to calculate time and space complexity for it. Just coding is not enough, you need to write an efficient code with optimized time and space complexity.-> Arrays and Strings: These are the simplest data structures but the building blocks of every other data structure. These need to be practiced very properly.->Linked Lists, Stacks and Queues: Most important to learn. These are foundation of heaps, binary trees etc.
3. Day [41-50]
Now, learn some basics of algorithms:Searching and sorting algorithms: Learn all the sorting algorithms like Bubble sort, Selection Sort, Merge Sort etc and basic searching algorithms like linear and merge sort.Mathematical Logic: Practice some questions on basic mathematical concepts like fibonacci numbers, prime, HCF, LCM etc. to build your coding logic.Pattern SearchingRecursion: Recursion if a function calling itself. Many standard algorithms are based on recursion concept.
4. Day [51-60]
Heaps and Trees: Learn how to build min and max heap, binary trees, binary search trees, AVL trees etc.Graphs: Learn different ways to implement graphs through matrix and adjacency list.Hashing: This is mostly asked topic in coding interviews.
5. Day [61-70]
Learn some advance algorithms:Backtracking: Backtracking is a general algorithm for finding all solutions to some computational problems.Divide and conquer divide and conquer is an algorithm design paradigm based on multi-branched recursion.Dynamic Programming Dynamic programming approach is similar to divide and conquer in breaking down the problem into smaller and yet smaller possible sub-problemsGreedy algorithms an algorithm is designed to achieve optimum solution for a given problem.The Bitwise Algorithms are used to perform operations at bit-level or to manipulate bits in different ways.
6. Day [71-80]
System design: Systems design is the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements.Design Pattern software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design
Practice your skills on online coding platforms like:
1.Hackerearth HackerEarth | Helping 4M+ developers level up and 1000+ recruiters hire top tech talent.
2.HackerRank HackerRank
5.CodeForce Codeforces
Reference online training course:
- Data Structure & Algorithms (Best for Beginners & Intermediate : https://www.learnbay.io/data-structures-algorithms/)
- Advance Problem Solving (Best for Intermediate & Advance )
- Design Pattern ( For Beginners & Intermediate coding in java, C++ : https://www.learnbay.io/system-design-and-design-pattern-2/)
- System design training ( For Intermediate & Advance https://www.learnbay.io/system-design-and-design-pattern-2/)
- Competitive programming. ( For Intermediate & Advance https://www.learnbay.io/competitive-programming/)
- Stanford Algorithm Part 1 and Part 2 on Coursera
- Princeton Part1 and Part2 on Coursera
- Introduction to Algorithm by MIT OCW
- Data Structures by Berkeley
- Advance Data Structures by MIT OCW
- Data Structure by Harvard Extension School
All the best!

No comments:
Post a Comment