How to learn data structures and algorithms?

In Real World

The most important skill for a computer science student and future software engineer is Data structures and algorithms.Name any Big information technology giant, the one thing in common between all of them in job interviews is Data structures and algorithms. 

Whenever a newbie starts learning Data structures and algorithms they find it difficult to understand the concepts which then demotivates them to stop learning it.One common question in all of them is How do I start learning or strengthen my knowledge of data structures and algorithms? Most of the time they don't follow the correct way to learn DS & Algo.So,in this article I will try to help you learn DS & Algo in the easiest way.


START WITH THE BASICS

  1. Pick any programming language of your choice & remember, stick to your preferred language throughout the Ds & Algo learning phase.
  2. Start learning the basic syntax of the language and practice problems related to-if else,loops,arrays,etc
  3. Once you are comfortable with syntax move on to the next process. 

START LEARNING BASIC DATA STRUCTURES 

Learn Data structures topic wise,topics are provided below

  1. Array 
  2. Linked List
  3. String
  4. Stack Queue
  5. Heap 
  6. Hashing,Hash Table (Set)
  7. Map
  8. Binary Tree
  9. Binary Search Tree
  10. Graph

START LEARNING ALGORITHMS

  1. Searching Algorithms
  2. Sorting Algorithms 
  3. Greedy Algorithms
  4. Recursion
  5. Backtracking
  6. Dynamic Programming 
  7. Graph Algorithms Like (BFS,DFS)
  8. Bit Manipulations 

Solve at least 5 problems of each algorithms of different types

NOTE:Some problems of Data Structures requires specific algorithm.So leave those problems for the time being.For example - In array Data structure Stock Selling problems requires knowledge of Dynamic Programming .So, while learning Data structures its perfectly fine to solve problems using Brute force and naive approach.

After following the above process start solving problems from Geeksforgeeks and Leetcode any try to solve problems in both Naive and Optimized approach.Solving 250+ questions will help clearing concepts easily & don't forget to read interview experience of companies and the asked problems in interview. 


There are various excellent online courses available on the internet.Those course covers all the mentioned above topics as well as advanced topics,you can always refer to them as well.

By doing the above steps will help you in your coding interviews.Also doing Competitive programming  will help you gain speed in solving problems but its not at all necessary.Competitive programming will help you get Referral for jobs but not much in interview because coding test doesn't asks competitive programming related questions. 

Congrats Now you are ready for your Interviews 

Feel free to comment is you have any doubt or questions in comments section

For more Data structure and algorithms,computer science,programming,coding related problems search my website

Post a Comment

0 Comments