for every programmer who has mastered coding interviews there are at least 10 who are stuck in the endless loop of learning data structures and algorithms I know people who have been learning data structures and algorithms for Last 5 Years they have completed all kinds of courses online but they still can't solve easy lead code problems if you give me 5 minutes of your time I'll make sure you are not one of them let's do this most people already know at least one programming language when they start learning data structures and algorithms or DSA for short so they pick whatever they already know for DSA but here's the thing in most cases when you learn DSA you want to crack coding interviews and coding interviews last 45 minutes to an hour there's a lot of time pressure that's why the language you code in becomes really important if you have reached Mastery in the language you already know you can stick to it for DSA as well but if you're a beginner to intermediate level in your current language I advise you to Learn Python for a very simple reason python has no boiler plate and complicated initializations writing in Python is like writing in English it almost feels like writing pseudo codee this allows you to focus on problem solving rather than getting bogged down by the specifics of the language moreover python is widely used in the industry and most interviewers are comfortable with candidates using python during coding interviews by learning DSA in Python you'll be able to communicate your ideas more effectively and write code that is easier to understand for you as well as your interviewer I'm not saying that just because I use python in the interviews in fact I have done interviews both in Java and Python and my understanding of java is much better than python but most of my big offers came after switching to python so I use python in the interviews to master DSA efficiently we will use just in time learning or jet for those who already know about just in time compilation the idea is very similar in jet learning we focus on acquiring Knowledge and Skills exactly when needed rather than in advance this approach ensures that you learn things that are most relevant and applicable to coding interviews this will help you avoid getting overwhelmed and maximize your return on time investment here is how we are going to use jet learning for DSA we will start by learning the most important Core Concepts for coding interviews we will not waste our time on some obscure rarely asked topics after learning these Core Concepts we will progressively build our knowledge by solving the right problems in the next few sections of the video I'll talk about the most important DSA Concepts that you need to learn and how to learn them towards the end of the video I'll give you interview Master 100 interview Master 100 is a list of 100 most as interview problems they are arranged in a way which will help you progressively build your knowledge without getting overwhelmed let's do this in 1968 Donald kunu who's considered the father of algorithm analysis published the first volume of his famous book series The Art of computer programming in this book he introduced bigo notation which changed the field of computer science forever the idea already existed in maths but he's the one who popularized it in computer science boo gives us a language to describe the performance of an algorithm both in terms of time and space it answers two fundamental questions how much time does the algorithm need to finish in the worst case and how much space does the algorithm need for its computation in the worst case by using bigo we can compare different algorithms and decide which one is better for a particular case understanding bigo is very important for the interviews in interviews you might often encounter a question where the interviewer asks you to optimize a solution knowing bigo will help you to analyze Your solution and find ways to improve its performance it's very important to understand common time complexity such as order 1 order log n order n order n log n order n² order 2 to the power n and Order n factorial being able to identify the time and space complexity of code shows that you can think critically about the efficiency which is a valuable skill in the eyes of interviewers next I want to cover data structures data structures are the fundamental building blocks of any program they determine how data is organized stored and manipulated within a program the choice of data structure can significantly impact the performance of an algorithm different data structures have different strengths and weaknesses making them suitable for specific tasks for example arrays provide constant time access to elements based on their indices while link list offers efficient insertion and deletion at any position understanding the characteristics and trade-offs of each data structure is very important for interviews but which data structures should you learn one thing you don't want to do from the beginning is to complicate things in the spirit of just in time learning you want to focus on the code data structures that will cover the most problems first arrays link list stack cues binary trees and hash tables these six data structures have a high probability of being used in the interviews so focus on them first after that you should learn heaps and graphs this should cover most problems that you come across if you want to stretch yourself a little bit you can also learn tries and disjoint sets or Union find everything combined you have only 10 data structures to worry about rest of the data structure you can learn as you solve more problems when you're learning data structures learn the internals of how they work if there is an operation that can be done on a particular data structure you should know the time complexity of that operation for example what is the time complexity of removing an element from a heap you should be able to answer these kinds of questions understanding these time complexities will help you make informed decisions when you are choosing data structures for a specific problem knowing when to use each data structure is a key skill that interviewers are looking for now that you know which data structures to focus on let's apply just in time learning to algorithms as well when it comes to algorithms there are broadly two categories the first category is the algorithms that are specific to a data structure for example we have algorithms for searching and sorting in arrays there are also techniques like two pointers and sliding window that are used with arrays similarly we have algorithms that are specific to other nine data structures that we discussed I have created a comprehensive list for all the core algorithms for all the data structures this list is called DS master and the link is there in the description DSA Master contains all the main algorithms you need to learn before moving on to the next steps the second category of algorithms I want to discuss are more like General techniques instead of algorithms these are not specific to any data structure this category includes recursion dynamic programming backtracking and greedy algorithms I have added all of them to the DSA Master as well here is how I want you to use the DSA Master for some of the topics in the DSA master I have marked them as implementation not needed that's only because we are covering the fastest way to learn DSA in this video for everything else that is not marked implementation not needed I want you to implement these algorithms from scratch coding the algorithms from scratch will deepen your understanding of the inner workings and help you identify potential pitfalls don't just rely on the built-in libraries or pre-written code take the time to write and test your own implementations after implementing the algorithm I want you to spend some time understanding the bigo of the algorithm by doing this you will develop a strong stronger intuition for how these algorithms work this will help you modify or optimize them based on the problem you are solving it might seem to you that we have already covered a lot of things but if I'm being honest we have only done 10% of the job the real learning happens when you start solving actual interview problems that's why I've been pushing very hard to get you to this point fast even if that meant I had to skip some unimportant topics but trust me we have all the tools we need to start practicing problems when it comes to practicing problems we will not be attempting random problems we want to focus on the most asked coding problems there are really good collections like blind 75 or top interview 150 on lead code that contain popular interview problems but the sequence of problems in these lists can seem random to a beginner sometimes a very difficult problem appears before an easy one and beginners might find it hard to solve and get demotivated to fix this problem I created interview Master 100 interview Master 100 contains top 100 interview problems which are arranged in a way that even a beginner can solve there is a link to lead code with each question where you can attempt the problem each new problem builds upon the previous problems so that you can gradually expand your knowledge as you progress the problems become trickier as you grow ensuring that you are well prepared to handle any new problem at the end of 100 problems I will leave a link to interview Master 100 down below one thing I want you to always remember is that learning DSA is not the end goal the end goal is to crack interviews and that can only happen with a lot of practice so after you complete these 100 problems go on to lead code and continue solving more problems if you want to know how I got really good at solving lead code problems you can watch this video my name is sahil and I'll see you in the next one