DSA from 0 to Mastery

How to master DSA without spending a penny?

Aliya Rahmani
TheLeanProgrammer
4 min readAug 13, 2021

--

Whenever placement thoughts cross our mind, we get the same response “Data Structures and Algorithms”. This is true as the coding rounds require you to be an ardent problem solver with good computing abilities. But if we go through all sorts of resources available on the internet we tend to get confused with paid, unpaid and so many suggestions available. To many people, paid courses seem to provide the satisfaction of a structured curriculum but it won’t be enough unless you put your own efforts. In my opinion, the unpaid courses and materials are enough for one to understand the gist of all the topics. Not only it’s feasible but also reflects one’s ability to harness the available resources.

Here, I’ve enlisted a curated list of resources to learn DSA from zero to advanced level for placements and interview preparations.

Image

1.VIDEO LECTURES

There are plenty of videos available on each topic for DSA. To understand the basics and implementation of each data structure, it would be great to binge-watch lecture series along with writing some code samples. Either you can by researching each topic and watching multiple teachers or you can follow a playlist/a particular teacher. Some of the best youtube channels and playlists to learn DSA are:
1.MyCodeSchool
2.MIT Open Courseware
3.Apna College

2.FREE COURSES

There are plenty of paid courses available for free enrollment during their offer period. You can also enroll in free courses without certificates which will upskill you with experienced trainers. The point to note is that certificates of courses aren’t important as they are not considered enough unless you have some achievement to showcase that skill. The best way to showcase that skill is to achieve some good rank and ace coding contests. Here are some recommended courses and sites listed for reference:
1. Udacity’s Intro to Algorithms
2. Coursera’sAlgorithms Part I & II
3. Data Structure in C
4. Paid Courses for free
5. Download All Courses

3.BOOKS

Books are one of the best ways to learn concepts and practice them. Since ancient times humans have had this primary source of learning it’s still impactful for one. Various books explain the programming concepts from beginner to advanced level in an expressive manner. I’ve listed some books that are great for beginners and some for advanced learners.
1. C++ Primer
2. Cracking the Coding Interview
3. Grokking Algorithms
4. Introduction to Algorithms
5. Elements of Programming Interviews in C++
6. Data Structures and Algorithms in Java

4.QUESTION SERIES/ TUTORIALS

Another way of learning is grasping by solving. You can read various tech blogs specific to the topic you want to learn and solve the provided questions. There are many tech bloggers along with websites having tutorials with a proper curriculum. Learning by researching through blogs also helps you understand the documentation of a language/framework. Here are some references:
1.Fork CPP / Fork Java
2. Workshop on DSA
3. Code Monk
4. Hackerrank’s DSA

5.WEBSITES

“Knowledge is of no value unless you put it into practice”. After going through all the basic concepts and implementations, you need to practice questions to acquire the problem-solving skills, the basis for all tech interviews. Many websites provide question banks for practice. I’ve tried to arrange with their level:
1.Hackerrank(Beginner-friendly)
2.HackerEarth(Intermediate)
3.Leetcode(Interview-focussed)
4.GeeksforGeeks(All Levels)
5.Codeforces/Codechef(Best for Competitive Programming)

Here’s a curated list of Leetcode/GFG Problems for clearing the basics/Interviews:
6.Love Babbar’s 450 Questions
7.Striver’s 180 DSA Questions

6.FOLLOW UP AND TIPS

To begin with, the preparation you need to make your own roadmap and choose only those resources which are feasible for you. Don’t fall into the “tutorial hell”, this not only reduces your efficiency but also results in impostor syndrome. Somedays, it might not be possible to touch these concepts but practice daily to strengthen your learning. Solving at least 10 Questions(3-Hard,5-Medium,2-Easy) regularly will help you clear your concepts and improve your logical thinking. Do not get discouraged when you can’t solve problems, learn from your mistakes. Lastly, staying motivated throughout the learning period is essential to achieve your goal, don’t let failures stop you.

All the best for your coding interviews!

Don’t forget to follow The Lean Programmer Publication for more such articles, and subscribe to our newsletter tinyletter.com/TheLeanProgrammer

--

--

Aliya Rahmani
TheLeanProgrammer

vGHC’21 || Tech Enthusiast|| MLSA || Open Source Contributor