30 Days of Code — Complete Guide W/Resources(DSA)


So here I have prepared a practical roadmap “30 days of Code” based on a lot of resources and by watching a lot of videos and various articles from GeeksforGeeks and LeetCode as well as Code Forces.

30 days of Coding

Alternative Way

If you are bored of following this, or are already a good enough coder, the best way is follow the below two programs i.e. of GeeksforGeeks and LeetCode. These are free coding challenges which are available daily to everyone. Link are below:

Leet Code or GFG(Choose yours)

Things to Remember(Prerequisites)🤔

  1. You should primarily select a coding language whichever you are comfortable in for e.g. Java, Python or C++. Take your time.
  2. Also go through the time-complexities of various algorithms.
  3. If you’re a beginner then try to commit your time for at least 4–6 hours every day. If you’re an experienced one then you need to commit for 2–3 hours every day.
  4. These topics only cover the basics and if needed you may need to get some extra knowledge by reading and watching videos for solving problems.
  5. Do not directly jump to the solution.

Day 1 and Day 2(Math's & Programming Language)

So to solve any type of Coding problems, you should know the basic Mathematics🧮 and for the first 2 days, I would recommend you to brush -up your math skills.

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 to 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 of the coding problems where you need to find a specific value. Usually most of the languages like Java, 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 improve the efficiency of the algorithms.

Day 14 and Day 15(Linked Lists)

Just like Arrays, Linked Lists stand out very important in Competitive Coding as they will be crucial in helping implementations of stack and queues as well as in graphs further more.

Half way Reached(Hushhhh…)

Congratulations🥳🎉. So if you have completed so far, you have already reached half way through the course and will be able to solve almost of the Data Structure and Algorithms Problems.

Day 16 to Day 18(Stack)

I guess, 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 other day in your boring life, just the opposite of stack you may say!!!

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 tree, etc.

Day 22(BST)

If you are good at solving tree problems, then BST will be cherry🍒 on the 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 or lets says the where the package is above 12–15lpa.

Day 23 and Day 24(Heap)

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

Day 25 and Day 26(Graphs)

After heap, the concepts comes for Graphs and Topological Sorting which are 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)


Day 29 and Day 30(Dynamic Programming)

We can merely say that we have reached the end of the #30DaysOfCoding and the last topic and the most fantastic topic that we will cover here is the Dynamic Programming topic. It can be said as an optimization over recursion. The recursive calls for same inputs can thus be called as Dynamic Programming.

DP is Easy. Lol😂



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store