Athenasquare Profile picture
Feb 9 18 tweets 4 min read
Learn Data Structures and Algorithms (DSA) in 30 Days!
Check out this thread. 🧵
Prerequisites:
1. You should primarily select a coding language that you are comfortable in e.g. Java, Python, or C++.

2. Also, go through the time complexities of various algorithms.

3. Do not directly jump to the solution.
Day 1 and Day 2(Math's & Programming Language):

So to solve any type of Coding problem, you should know basic Mathematics🧮 for the first 2 days.

If you are already aware of the basic math concepts you should spend this time selecting your own Programming Language.
Day 3 and Day 4(Arrays):

The most basic and fundamental problems are of Arrays which are linear data structures. If you feel confident in solving the easy ones, try the medium and hard-level problems.
Day 5 and Day 6(Matrix):

Usually, anyone would suggest you go for Linked Lists after learning arrays, but matrices really play an important role in dynamic programming.
Day 6 to Day 9(Strings🧵):

Taking these 3 days solely for strings will definitely help you in String Manipulations i.e. you can do string changing, parsing, splicing, pasting, or analyzing strings.
Day 10 and Day 11(Searching & Sorting):

Searching and Sorting play an important role in most coding problems where you need to find a specific value. Usually, most languages like Java and Python have their inbuilt functions to Search and Sort a specific value.
Day 12 and Day 13(Bit Magic & Recursion):

Just like string manipulation, Bit Manipulations will help you to determine one or more bit patterns or bit numerals thus improving the efficiency of the algorithms.
Day 14 and Day 15 (Linked Lists):

Just like Arrays, Linked Lists stand out as very important in Competitive Coding as they will be crucial in helping implementations of stacks and queues as well as in graphs furthermore.
Day 16 to Day 18(Stack):

This is the most important step, studying Stacks will overall help you in most of the data structures like operations in queues using stacks, queues using stacks, infix and postfix operations, etc. Let me give you some extra tips.
Day 19(Queues):

If you have studied stacks well, then queues will just be another day in your boring life, just the opposite of stack you may say!!!

Congratulations🥳🎉. You have made it this far. After completion of all these DSA concepts, you will be almost 60% prepared.
Day 20 and Day 21(Tree🌲):

The hierarchy of natural forms is maintained with the help of trees. There are further various combinations available for tree data structure such as AVL trees, Red-black trees, Self-balancing trees, etc.
Day 22(BST):

If you are good at solving tree problems, then BST will be the cherry🍒 on top. This will probably take you less number of hours to understand the concepts and once you did it, you will be thorough with all the concepts of Trees🌳.
Crucial Days(OMG!!!):

The next few days are very crucial as the last remaining topics are been asked by most of the #FAANG companies.

These remaining topics will be very important and once you conquer these topics, cracking products-based companies would come in handy!!!
Day 23 and Day 24(Heap):

The heap is a tree-based data structure and generally will be of two types Minimum Heap and Maximum Heap.

The heap data structure has various applications in Prim’s Algorithm and Dijkstra’s Algorithm. Priority Queues can be implemented efficiently.
Day 25 and Day 26(Graphs):

After heap, the concepts come for Graphs and Topological Sorting which is the non-linear data structure. Graphs can be used to solve real-life word problems such as Shortest path between two cities, N-Queens Problem, or even M-coloring Graph Problems.
Day 27 and Day 28(Greedy Algorithms):

When you want to build a solution piece by piece, and always choose the next piece that offers the most obvious and immediate benefit is then called Greedy Algorithms.
Day 29 and Day 30 (Dynamic Programming):

The last topic and the most fantastic topic that we will cover here is Dynamic Programming. It can be said to be optimization over recursion.

Firstly go through the topic of Recursion and then get your hands on this.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Athenasquare

Athenasquare Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(