How to start DSA from scratch? Important Topics for Placements? Language to choose? DSA Syllabus A-Z
Summary
TLDRThis video script offers a comprehensive guide for beginners on how to master Data Structures and Algorithms (DSA) to excel in top product-based company interviews. It recommends learning languages like C++, Python, or Java, focusing on core concepts and libraries. The script outlines a structured learning path, starting from basics like arrays and linked lists to advanced topics like dynamic programming and graphs, emphasizing the importance of recursion and practical problem-solving. It also encourages viewers to watch related videos for in-depth understanding and problem types.
Takeaways
- π Start with a structured approach to learning Data Structures and Algorithms (DSA) to prepare for interviews at top product-based companies.
- π Choose a programming language wisely; C++, Python, and Java are recommended due to their prevalence and library support.
- π οΈ Master the basics of your chosen language, including data types, control flow, functions, and understanding of common data structures.
- π Understand the importance of libraries for efficient coding during interviews, as they provide built-in functionalities for complex data structures.
- π Begin with fundamental topics like linear search, binary search, and basic sorting algorithms to build a strong foundation in DSA.
- π Learn about time and space complexity, and the concept of asymptotic analysis, which are crucial for understanding the efficiency of algorithms.
- π Grasp the implementation and usage of various data structures such as linked lists, stacks, queues, and their respective problems in interviews.
- π Diving into advanced topics like hash maps, recursion, and dynamic programming requires a solid understanding of earlier concepts for easier comprehension.
- π Tackle graph problems last as they often involve a combination of multiple DSA concepts and are considered advanced.
- π Practice is key; solve a variety of problems for each topic using resources like LeetCode, GeeksforGeeks, and online forums.
- π Follow a logical order of topics, starting from basic to advanced, and ensure to revisit and reinforce concepts as you progress.
Q & A
What are the main challenges people face when learning Data Structures and Algorithms (DSA)?
-People often struggle with DSA because they lack a structured approach and the order in which they should learn the topics. This can lead to confusion, especially when encountering complex problems without a foundational understanding of simpler concepts.
Which programming languages are recommended for solving DSA problems?
-The recommended programming languages for solving DSA problems are C++, Python, and Java. These languages are widely known and have extensive libraries, making them suitable for coding interviews.
Why are libraries important when choosing a programming language for DSA?
-Libraries provide built-in data structures and functions that can simplify problem-solving. They reduce the need to write complex code from scratch, allowing interviewers to focus on the algorithmic approach rather than implementation details.
What basic concepts should one learn in a programming language before starting with DSA?
-Basic concepts include data types, operators, control flow statements, loops, functions, recursion, arrays, strings, pointers and references, structures or classes, preprocessor directives, bitwise operators, and basic exception handling.
Why is it beneficial to implement data structures like stacks and queues from scratch before using libraries?
-Implementing data structures from scratch helps in understanding their internal workings and how they can be used to optimize algorithms. This foundational knowledge is crucial for appreciating their utility in solving DSA problems.
What are the key topics covered in the script for learning DSA?
-The key topics include linear search, binary search, sorting algorithms (bubble sort, insertion sort), linked lists, stacks, queues, hashing, prefix sums, sliding windows, two-pointer techniques, cyclic sorting, recursion, quicksort, mergesort, backtracking, trees, heaps, priority queues, intervals, and dynamic programming.
Why is recursion considered a foundational concept for understanding dynamic programming?
-Recursion is foundational for dynamic programming because it helps in breaking down problems into smaller subproblems. Understanding recursive relationships is crucial for formulating recursive equations, which are the basis for dynamic programming solutions.
What is the recommended approach for learning about binary search and its variations?
-The recommended approach is to first understand the basic concept of binary search, then learn about its variations and applications in solving modified binary search problems. It's also important to understand the concepts of upper bound and lower bound.
How does the script suggest learning about linked lists?
-The script suggests starting with the basics of linked lists, understanding why they are used, and then implementing different types of linked lists such as singly linked list, singly circular linked list, doubly linked list, and doubly circular linked list. After implementation, solving problems related to linked lists is recommended.
What is the significance of learning trees in the context of DSA?
-Trees are significant in DSA as they are fundamental data structures used in various algorithms and applications. Understanding binary trees, binary search trees, AVL trees, and B+ trees, along with their implementations, is crucial for solving complex DSA problems.
Outlines
π Introduction to DSA Learning Structure
The speaker introduces the common questions and struggles faced by individuals learning Data Structures and Algorithms (DSA) for product-based company interviews. They emphasize the lack of a structured learning path as a key issue and propose to provide a clear learning structure and order for topics in this video. The speaker also mentions the abundance of free resources available but the need for a systematic approach to learning DSA, especially for beginners with no prior programming knowledge. They outline the plan to cover the best programming languages for DSA, essential topics within those languages, and the necessary DSA topics to master, concluding with a call to watch the video in its entirety for the most comprehensive guide available.
π Choosing the Right Programming Language for DSA
The paragraph discusses the importance of selecting an appropriate programming language for DSA problems, suggesting C++, Python, or Java due to their prevalence in interviews and the availability of libraries that simplify complex data structures. The speaker advises against using less common languages due to potential syntactical overheads in interviews. They also list the basic language concepts that should be mastered, such as data types, control flow statements, functions, and understanding of classes or structures, before delving into DSA topics. The paragraph concludes with encouragement to learn these basics thoroughly to facilitate easier implementation of DSA concepts.
π Fundamental DSA Concepts and Problem-Solving Approach
The speaker outlines the fundamental DSA topics that should be learned, starting with basic searching and sorting algorithms like linear search, binary search, bubble sort, and insertion sort. They introduce the concept of asymptotic analysis and the use of comparators for custom sorting. The paragraph then delves into more complex data structures such as linked lists, stacks, and queues, emphasizing the importance of understanding their use cases and implementing them from scratch before solving related problems. The speaker advocates for a learning approach that involves first understanding and implementing a data structure, then applying it to solve problems, which solidifies understanding and appreciates the benefits of each data structure in optimizing algorithms.
π Advanced DSA Topics and Their Relevance in Interviews
This section covers more advanced DSA topics, including hash maps, prefix sums, sliding windows, two-pointer techniques, and cyclic sorting. The speaker highlights the importance of understanding the internal implementation of hash maps and the necessity of learning specific problems associated with each topic. They also discuss the significance of recursion in solving complex problems and optimizing algorithms like quicksort and mergesort. The paragraph concludes by emphasizing the importance of learning recursion before moving on to dynamic programming, as it forms a foundational skill for understanding and solving advanced problems.
π³ In-Depth Exploration of Trees, Dynamic Programming, and Graphs
The speaker provides a comprehensive guide to learning trees, dynamic programming, and graphs, which are critical for DSA interviews. They discuss the necessity of understanding different types of trees, such as binary, binary search, AVL, and B-trees, and the importance of implementing binary trees and binary search trees from scratch. The paragraph also delves into dynamic programming, emphasizing the need for a strong recursion foundation and the exploration of memoization and various DP patterns. Finally, the speaker covers graphs in detail, mentioning the importance of understanding different graph problems and patterns, and refers to previous videos for an in-depth understanding of these topics.
π― Conclusion and Final Recommendations for DSA Learning
In conclusion, the speaker summarizes the importance of the topics covered in the video and provides a structured syllabus for DSA interview preparation. They encourage viewers to learn the topics in the provided order and solve important problems from each area to excel in DSA interviews. The paragraph ends with a call to action for viewers to like, subscribe, and share the video to help others understand the DSA learning process. The speaker promises to continue providing valuable content to assist in learning DSA and ends the video with well-wishes for the viewers.
Mindmap
Keywords
π‘DSA
π‘Recursion
π‘Dynamic Programming
π‘Data Structures
π‘Algorithms
π‘Programming Languages
π‘Stack
π‘Queue
π‘Hashing
π‘Graphs
π‘Backtracking
Highlights
The importance of learning the right order and structure of topics for Data Structures and Algorithms (DSA) to succeed in top product-based company interviews.
The availability of free resources for DSA on platforms like YouTube, yet the struggle many face due to a lack of structured learning.
The recommendation to start with programming languages like C++, Python, or Java for DSA problems due to their prevalence and library support.
The necessity to understand basic language concepts such as data types, control flow, functions, and arrays before diving into DSA.
The significance of learning search algorithms like linear search and binary search, along with their complexities and applications.
The basics of sorting algorithms, including bubble sort and insertion sort, and the introduction to asymptotic analysis.
The approach to learning linked lists by implementing different types and solving classic problems like cycle detection.
The importance of implementing and understanding stacks and queues from scratch before utilizing their library counterparts.
The role of hashing with hash maps and the need to know their internal implementations for technical interviews.
The application of prefix sums, sliding windows, and two-pointer techniques in solving various DSA problems.
The often-overlooked topic of cyclic sorting and its relevance in product-based company interviews.
The necessity to grasp recursion before moving on to more complex topics like quicksort, mergesort, and dynamic programming.
The step-by-step approach to learning trees, including binary trees, binary search trees, and their implementations.
The significance of understanding tries and heaps, along with problems like finding the median from a data stream.
The importance of interval problems and their solutions using tree maps and tree sets.
The comprehensive guide to dynamic programming, including memoization, different types of DP, and problems on trees.
The final and most critical topic for DSA interviews: graphs, including various problems and patterns asked by top companies.
The suggestion to learn advanced topics like strongly connected components and segment trees if time permits.
Transcripts
how to start with DSA what are the
topics that I should learn to crack DSA
interviews in top product based
companies what are some of the best
programming languages that I should use
to solve DSA problems these are some of
the very questions that crop up in your
mind whenever you're trying to learn DSA
or you are trying to crack product based
companies there exists tons of resources
out there for free on DSA on YouTube and
other social media platform but why do
you still think that people struggle
with DSA a lot because in my opinion
they don't know the structure and the
order in which they should learn the
topics for example let's say a guy
doesn't know recursion has no idea about
it and suddenly sees a matrix chain
multiplication problem being solved with
dynamic programming he will be
completely at Sea you will find DSA
extremely hard and he would think that
this is not my cup of tea but that's not
the way it should be right that's where
probably the paid courses comes into the
picture where they gives you the
structure and order in which you should
follow but in this video I am going to
give you exact that in this video I am
going to consider that you are a
complete Noob you don't know any
programming language at all yes no
programming language at all and from
there I'm going to build things up I'm
going to tell you that what are the
programming languages that are good
enough to solve DSA problems what are
the things that you should learn in
those programming languages what are the
topics that you need to learn in DSA to
crack top product based companies be it
Google be it Amazon or any product based
company out there I'm also going to give
you the path the order in which you
should learn the topics so do watch this
video till the very end I don't think
any such video on this topic in such
depth has been made on YouTube So Far So
guys please ensure that you watch this
video till the very end and don't miss
out any part because this is going to be
a highly informative video so without
any further Ado let's get started with
this very special episode on DSA before
starting off with this video if you
haven't checked out my channel yet you
can do so after watching this video I
post a lot of software engineering
content so if you like my content please
press the Bell icon And subscribe to my
channel that will motivate me a lot okay
coming
welcome to skip this part and move on to
the next chapter right but in case you
don't even know a programming language
or you are confused that what is the
best programming language for you to
learn then do watch this section as well
first of all DSA has no language you can
take any programming language of your
choice and 99 of the companies out there
in your coding interviews are not going
to stop you that hey you have to use
only this particular language no in 99
percent of the cases it doesn't happen
that way however however I would highly
recommend you to use either of these
three languages C plus plus python or
Java the reason behind it is very simple
there are two simple reasons right the
first reason is you will you might ask
that hey can I use C I would say
probably not you can use on paper
theoretically but the reason I would
discourage you to do so is in C you
don't get a lot of libraries so what do
you mean by libraries libraries you can
consider that let's say you want to use
a data structure that is that is a very
complex data structure like priority you
let's say as you okay so now in an
interview which is kind of a hard
problem based on Project use which the
problem itself requires a lot of
attention and coding do you again want
to start writing priority code Q from
scratch that can be abstracted out right
and most of the interviewers won't even
expect you to write a priority queue
quote from scratch right that's where
the libraries come in where they would
give you an inbuilt priority queue and
you can use that though I think you can
get libraries in other languages as well
but here's where my second argument
comes into picture see C plus plus
Python and Java 3 very fundamental
languages every interviewer out there in
the software engineering industry has an
idea about these three languages as an
idea about the syntaxes of these three
languages now let's say you want to go
with a fancy language like so if you are
free to do so the interviewer won't stop
you but there would be an extra overhead
in the interview and what would be that
the syntactical overheads because the
interviewer who hasn't probably worked
with swift might have some issues
understanding the syntaxes of those
languages and there you would have to
deal with that extra overhead of also
explaining him the syntax apart from the
algorithm and the approach and that's
why I discourage you to like use any
fancy languages in a coding interview
and keep it as simple as possible and
for that C plus plus Java and python are
sometimes semi JavaScript are good
enough languages for DSA also if you
want to go like let's see you're stuck
in a problem and you want to see the
coding solution you would find that most
of the solutions online are available in
either of these three languages right so
that is the reason I would suggest that
again there is no constraints as such to
choose your language but it would be
better your life would be much easier if
you choose any of these three languages
now having said that now what are the
things that you need to learn in a
language the following are the things
that you need to learn whenever you're
learning any particular language data
types operatives and expressions control
flow statements like if else switch for
Loops while Loops do while Loops
functions and recursive functions just
the basics and how do they work Aries
1dr is 2D arrays and Matrix strings
pointers and references structures or
classes whichever depends on whichever
language you are picking if it see it's
a structure if it's Java it's classes
very Basics about preprocessor
directives or Imports because you need
to import the libraries have a very very
basic idea about bitwise operators and
masking some very basic store problems
an example of that would be let's say an
array you're given numbers in pairs but
there is only one number which is odd
one out find out the number so zor helps
you in finding that basic exception
handling Concepts and basic debugging
skills you don't need to learn any fancy
topics like file handling
multi-threading or design patterns and
stuff like that obviously they are
important for your software engineering
but in terms of DSA they are not really
important so these are the language
specific things that you need to learn
before you get started with DSA if you
don't know these things you would have a
tough time in implementing your thought
process so I've seen also this problem
as well like many of you think key I am
able to come up with the approach but
I'm not able to implement it for that
you need to have good coding skills you
need to have a strong understanding of
the language that you're trying to to
implement your particular approach in
and that is why make sure that you spend
a good enough time in learning these
things of of the language that you have
picked on and you have chose to like
solve DSA problems now once you are done
with the language part that these topics
Here Comes Your next part so we will now
go into searching and sorting right so
we will start with linear search like
what basically is linear search will
implement it we will then look at by
research and how is it a better version
of linear search and when and how can we
use it we will now look at two sorting
algorithms very Basics one bubble sort
and insertion sort will also learn about
the time and space complexity and here
you will also first learn about now of
the bigger notations the asymptotic
analysis and all these things also it
would be great if you can learn the
concept of custom sorting using
comparators over here because you would
be getting a lot of such scenarios where
you have to use custom sorting using
comparators whenever you're solving a
DSA problem now since you have already
learned the basics of my research we can
probably go a bit deep into the binary
search where we will start solving
problems on Modified by research which
are actually asked in DSA interviews
before doing that you have to learn the
concept of upper bound and lower bound
now I have made a detailed video on what
are the types of patterns that exist in
by research in that video I have talked
about that what are the different binary
search problems that you get asked in
DSA interviews so I am not going to dive
too much deep into my research because
I've already made a detailed video on it
so I will attach the link in the
description down below so after this
video is done whenever you're trying to
pick up the binary search topic do go
and check out that video I've covered
all the different types of problems that
exist in my research in that very video
also once you have comfortable
implementing by research also learn
about the functions the libraries that
exist for binary search if you are
learning C plus plus then that
corresponding Library would be sdl if
you're learning Java then that would be
collection framework but again most of
the time you have to implement this
upper bound and lower bound functions on
your own I don't think the interval
would really allow you to you know use
these functions or use libraries for
this function for that is a by research
functions the next topic is linked list
so how would you learn a linked list
right now I will tell you the exact way
in which I learned and which worked for
me so first start like with the
obviously with the basics of linked list
why is it used and how is it different
from Aries learn about a little bit
about the theory and then jump into
implementing these four types of linked
lists first one is the singly linked
list second one is the singly circular
linked list third one is the W linked
list and the fourth one is doubly
circular link list once you are
comfortable in these implementations
right once you understand the edge cases
that can be involved here then try to
solve problems on the very very famous
linked list topics such as linked list
problems which uses first and slow
pointers like detecting a cycle in a
linked list or let's say intersection of
two linked list which is again A
variation of linked list problems so
basically solve the various types of
problems on linked lists that are asked
induced interviews again uh this video
is not on the types of problems that
exist on a particular topic but rather I
am giving you the topics and the order
in which you should learn the topics for
most of these topics I have a detailed
video and separate so you can go and
check out those videos I will attach the
link in the descriptions down below and
for some of the topics which I haven't
created like let's say for link list I
haven't even jotted down the problems
here if you want uh such a video please
feel free to comment down below and I
would be more than happy to jot down
different types of linked list problems
that exist but for now I can tell you
that the important problems are you know
reversing a link is reversing a linked
list in you know groups of K uh nodes
and stuff like that next we look into
Stacks so we would first understand that
why is it used right and first instead
of using a stack directly what we would
do is you would learn to implement a
stack on our own that would really
really you know enhance our Basics so
first we will Implement a stack using
array and then we will Implement a stack
using linked list and then we will solve
some of the very famous stack problems
that are asked in DS interview so you
can probably go to these geek squares or
go to Google or lead code and search the
famous stack problems that are asked
this is the best way to learn because
here you're first learning about a data
structure you're implementing the data
structure on your own right and then you
solve the problem and whenever you're
solving the problem you would like
appreciate the fact that how using this
particular data structure is helping you
to optimize your algorithm right so
whenever you're learning Stacks in
college you are just asked to implement
a stack using an array and Link listen
that's it we had no idea that why stack
is being used why it's such a weird data
structure out there right so whenever
after learning these things when you
actually go and Implement those problems
or the problems uh that Stacks comes
into picture right then you would
appreciate the very fact that how Stacks
help you to optimize your algorithm and
this is not just for Stacks is out there
for any data structural algorithm and
just one thing I would like to point out
here DSM means data structure and
algorithm so how are these two terms
related so a data structure is used to
optimize the algorithm that you're using
right so in this way it is closely
related now when you would be solving
stack problems please don't implement
the stack on your own that was just for
a learning purpose then just uh pick up
the corresponding stack uh Library like
if you're using C plus plus then in sdl
you will have the stack data structure
abstracted out and then if you are using
Java you will find it in the collection
framework after you are done with a
little bit of stacks we will jump into
queues we'll again understand like where
it is used why it is used we'll
Implement a queue from scratch using an
array and linked list will also
Implement a circular queue and also will
Implement an double ended queue which is
basically array DQ in Java and then we
will solve the very famous queue
problems like sliding window maximum is
a very very commonly asked problems
based on queues that is asked in Amazon
and top product based companies and
again while solving problems don't try
to create a queue from scratch use the
corresponding Library so again lot of
people will tell you that hey before
starting off with DSL learn complete
stlr learn the complete collection
framework I don't suggest you to do so
and I that is not the way I learned
because if you start if you if you're
starting off to learn you know the
complete STL or collection framework
before even getting started uh with uh
like solving DSF problems you would be
overwhelmed to say the least because
there are so many libraries out there so
you are not sure that which one to learn
right and then also you would learn and
then you forget because you won't get
the chance to implement that so I
personally feel this is the best way to
learn pick a topic right uh understand
it then then when you're trying to solve
these problems then go and learn that
corresponding library that is also stays
in your brain because you're using it
straight away right and also you don't
feel the pressure of learning all of the
things at once so this is the this is
something that helps me again if you if
you feel this is not the right way or if
you want to learn all the things at once
feel free to go ahead next up is hashing
so here we will learn about hash maps
and assets or in C plus plus what you
call unordered map and unordered sets we
will learn about its internal
implementation yes we need to know about
the internal implementation of a hash
map I was asked this question a lot of
companies including a very recently I
was asked in Goldman stocks what's the
interview if you want to check out my
interview experiences with Goldman Versa
for sd2 uh please go and check out I
will attach the link in description down
below but yeah you need to know these
things you need to understand how equals
and hash code comes into the picture
also I made a detailed video on what are
the important problems that you need to
solve in hashing so I will attach the
problem list on hashing and in the
description down below so do and check
it out so after we are done with hashing
we need to learn problems on prefix some
sliding windows and two pointers in some
of the problems in prefix sum and
signing window you would anyway find
hashing being implemented sometimes you
might happen to find a combination of
these two problems uh you know
implemented so order here can go a
little bit you know up and down or you
can change the order a little bit it is
sometimes is very closely related
sometimes it's not so it is fine but
overall you can follow this order it is
not going to you know cost you that much
next a very important topic which many
of you miss that is cyclic sorting
please go learn that a very famous
problem from cyclic sorting is uh
finding the first missing positive it is
a very very commonly asked question in
fact another product based companies the
lead code hard tag problem so do one
solve the problem and also learn about
cyclic sorting again this these are this
very minor topics which people Miss then
jump into learning recursion give some
time for recursion because this is a
topic that people kind of find very hard
to grasp I have a detailed lecture on
recursion uh you can go and check it out
or you can follow some other resources
as well so again the basic Funda then
recursion always says don't try to think
too much deep and try to trust yourself
problem that you're solving anyway I can
again make a video on recursion if you
want also when you're learning the
question try to solve the subset
problems uh the concept of take and not
take because this will be very very
important whenever you are learning DP
and if you can grasp these Concepts and
you can write recursive code for these
type of problems or especially subset
problems it would make your DP Journey a
cake work right you won't find DP hard
anymore because then it would be just
memorizing your States so once you are
able to solve this you can now learn
quick sort and martial the reason I held
quicks on and Mozart uh so far is the
reason because the recursion is used in
quick sort and Mozart it makes your code
very easy and less complicated so that
is the reason I have I'm encouraging you
to learn quicksort and martial and its
complexity analysis after you know
recursion now solve a couple of problems
based on quick sort like ah top K
closest points to origin solve some
problems related to merge sort like top
cable merge stuffs like that now once
you're done with recursion learn
backtracking again I made a detailed
video on the type of problems of the
important problems that you should not
miss while solving backtracking so go
and check it out and follow that sheet
uh it would make your backtracking
learning experience really really great
now once you are done with backtracking
let's jump onto fees now why are we
following this order because you see in
backtracking we require recursion
increase we also require recursion right
so what is happening idly over here
recursion generally takes a bit of time
and when you're solving these problem
patterns your recursion concept is also
getting strong right so you follow this
order and then after trees you get into
whenever you get into dynamic
programming right by that time your
recursion will be really really strong
it would have a solid draft but hey okay
I am now confident in recursion so
dynamic programming won't be that tough
for you because when you would be
starting with Dynamic program you would
find that the like the first step to
towards learning that or solving a
dynamic programming problem is to find
out the request equation once you find
out the request recursive equation and
you have an understanding about the
states your dynamic programming Journey
would you like a cake work trust me on
this so entries what are the things you
need to learn you need to learn about
binary trees you need to learn about
binary search fees you need to learn
about NRA trees you need to learn about
AVL trees and B plus fees but just the
basic concepts and where they're used
you don't need to learn the
implementation of evil trees and B plus
fees you can skip that also feel free to
learn tree maps and presets over here or
maybe ordered map on ordered sets in C
plus plus which will be again very very
important for you to solve the USA
problems and again uh Implement binary
tree Implement binary search to
implement the deletion insertion feature
on your own and once you're done with
these basic things again I have made a
dedicated video on trees where again
I've listed down the important problems
that you need to solve I've listed on 50
problems from trees so if you solve
those problems your concept and
understanding of three problems for any
DSA interview would be really really
great so do one check out the video
again I will attach the link to the
video in description down below next you
can solve some tries problems you can
learn the try data structure and solve
some important problems from tries now
next you can learn about heapsort and
also along with that priority queues so
all capillar problems needed to produce
like two heat problems finding medium
from a data stream all these problems
are very important and also don't forget
to implement priority queue on your own
in one of the interviews in one of the
fan companies I was asked to implement
priority queue so yeah don't forget to
know the implementation and the time
complexity of your gratitude and that
again after once you are done with this
you go to the problems on intervals
again I made a detailed video on the six
type of product patterns that exist for
Interval problems and there are very
very important topic and people tend to
miss this topic as well don't do this
mistake and for generally for solving
interval type of problems you would
require tree map and tree set so that is
the reason I've covered tree map and
preset before again like there are some
orders that you that are really
important like for like example for
dynamic programming you need to have a
solid understanding of recursion and for
that I've given trees and you know I've
given backtracking before DP but there
are some traffics which are
interchangeable the some orders that are
in interchangeable so feel free to do
that but again if you just blindly
follow this topic that is also fine also
some of the topics will be Loosely
coupled like in some of the topics let's
say in one other problem you might face
by research prefix some hashmap
everything together that is also
possible so don't freak out once you are
done with intervals we finally get into
dynamic programming I've held this back
so far because I wanted a recursion
concept to be really really strong by
now also since you have done most of the
topics we can we will have lot of time
to learn DP and also the other pending
Advanced topics so for DP again
recursion is very important on top of
that learn memoization 1ddp 2ddp learn
the Matrix and multiplication type
pattern go back to the subset type of
problems that you saw in recursion and
now see if you can implement the DP in
it or you can you know optimize those
problems using Runway programming by
storing the states and also there is one
more important topic that is dynamic
programming on trees again I've made an
uh video on dynamic programming the type
of problems that you need to solve in
dynamic programming so you can refer
that sheet again that sheet you would
find in the description down below the
next topic and the final topic I'm the
most important topic for your DS
interview is graphs now I'm not going to
spend much of time talking about drafts
and what are the things you need to
learn because I've already made a
detailed video on graphs all the type of
problems all the important patterns that
exist in graph and whatever is asked in
product based companies you I will
highly recommend you to go and check out
that video on drafts in the description
down below also don't forget to check
out my graph daily Series where I've
taught graphs from scratch which are
awesome product based companies so yeah
I I really won't you know spend much of
time talking about drafts here I've like
given it all in that video once you are
done you can probably learn some
Advanced topics like strongly connected
components DP with bit masking segment
trees fan victories rolling hash and
stuff like that but again they're very
very rarely asked into a product with
companies if you have time if you're
interested you can learn but in most
cases you won't be requiring that so all
of these 14 topics or 13 topics which
I've given so far is going to be
important for you and if you know these
topics if you follow this order if you
solve the important questions from these
topics trust me no one no one can stop
you from learning the essay and now in
this video I didn't Focus much on the
fact that for this particular topic what
are the different type of problems that
exist because again that will be an
exhaustive video in itself and I've
already made a couple of videos on like
individual topics which I've already
asked you to check it out and you will
find the links in the description down
below right the motive of this video was
to give you the order the structure and
the things that you should learn you can
consider it as a DSS syllabus for your
product based company interview
preparation so yeah if you can learn
these topics really well if you can
understand and solve these problems on
your own trust me no one can stop you
from cracking your dream company so if
you feel that this content provided some
value to you don't forget to smash the
like button subscribe to my channel
press the Bell icon to motivate me also
don't forget to share this video among
your friends among the community on
every social media platform out there so
that it can reach the maximum amount of
people and they finally stop asking
these questions that how to get started
USA how to learn DSA because right now
every people out there is probably
frustrated answering these same
questions again and again and I really
don't blame these people to asking these
questions as well because they are also
kind of confused starting out and come
completely at Sea not able to figure out
what are the things that they should
learn rather what what is the order that
they should follow so spread this video
so that they stop asking these questions
and they also have an idea how to go
about learning DSA that's it for the
video guys I would continue to provide
such valuable content to you guys that
actually helps you out I will see you in
some other video till then stay safe
thank you
Browse More Related Video
Data Structures & Algorithms Roadmap - What You NEED To Learn
The Best Order to learn Algorithms & Data Structures?
Roadmap π£οΈ of DSA | Syllabus of Data structure | Data Structure for Beginners
Coding Interview Questions And Answers | Programming Interview Questions And Answers | Simplilearn
Fastest way to become a Software Engineer in 2024
How to Learn Javascript in 2023 (From ZERO)
5.0 / 5 (0 votes)