# How to learn Algorithms & Data Structures with Resources!

Algorithms! Data structures! Ahhhh…! In today’s modern world of tech, every computer science engineer needs to know algorithms and data structures(or your boss will say “You’re fired!” NOOO! 😬). To prevent that, you need to understand what is a data structure and what is an algorithm? And how do you learn it?

# What is a data structure?

Data structures are the way we can store and retrieve data. For example, you may or may not be familiar with Python lists, or JavaScript arrays. If so, then you know that lists and arrays are sequential. These are just some examples of data structures.

# What is an algorithm?

An algorithm is a set of tasks in a program for computers(most times) and humans(sometimes).

# Now I know what is a data structure and algorithms, where can I learn it?

Well, you need an order of learning it. You can’t just jump from here to there. Here is my recommended order:

NOTE: THE CONTENT SPECIFIED BELOW IS FREE AND IS NOT MAINTAINING BY ME.

1. Learn a language and be at an intermediate/advanced level in that language.
2. Big O Notation (Watch video by HackerRank and Gayle McDowall: https://www.youtube.com/watch?v=v4cd1O4zkGw or Colt Steele’s: https://www.youtube.com/watch?v=kS_gr2_-ws8)
3. How to solve problems? (Udacity: https://www.udacity.com/course/problem-solving-with-advanced-analytics--ud976)
4. Arrays Data Structure (IC: https://www.interviewcake.com/concept/python3/array)
5. Data Structures: (Udacity: https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513)
8. LeetCode (there are problems, mock interviews, and contests)

NOTE: Although LeetCode has a subscription, don’t purchase it! The only benefits are faster loading, faster submission, mock interview(the problems are the same as on https://leetcode.com/problemset/all/ except there is a 2-hour timer, and premium contests(you can attend the contest as virtual after the contest has ended).