Ultimate LLD and HLD Roadmap | System Design RoadMap | LLD & HLD Topics to be covered for Interview

Concept && Coding - by Shrayansh
26 Dec 202211:04

Summary

TLDRIn this video, Shreyash Jain outlines the roadmap for his 'Concept Encoding' playlist, focusing on low-level design (LLD) and high-level design (HLD) for system design interviews. He emphasizes the importance of understanding OOPs concepts and SOLID principles for LLD, covering 23 design patterns and their application to interview questions. Jain also discusses the future content, including 'Split Twice Simplify Algorithm' and various system design components like microservices and caching. He invites feedback for improvement and announces an upcoming Spring Boot playlist, promising comprehensive and free system design education.

Takeaways

  • 😀 The video is aimed at both newcomers and regular followers of the channel, focusing on system design.
  • 🎯 The prerequisite for low-level design is a solid understanding of OOPs concepts like inheritance, polymorphism, and abstraction.
  • 📚 The video emphasizes the importance of the SOLID principles as the foundational step in system design.
  • 🔑 The presenter has covered all 23 design patterns, linking them to interview questions and real-world applications.
  • 📈 The teaching approach is to integrate design patterns with problem-solving, rather than teaching patterns in isolation.
  • 🚀 The video outlines a roadmap for future content, including design patterns and system design questions that are frequently asked in interviews.
  • 🔍 The presenter encourages viewers to suggest additional topics or questions to cover, emphasizing the community-driven nature of the content.
  • 🛠️ The video mentions the importance of understanding high-level components and concepts for system design, such as TCP, WebSocket, and microservices.
  • 📈 The content is structured to build from foundational concepts to more complex system design questions, ensuring a sequential learning process.
  • 🌟 The presenter announces the upcoming launch of a Spring Boot playlist, indicating a broadening of the channel's content scope.

Q & A

  • What is the prerequisite for learning low level design according to the video?

    -The prerequisite for low level design is a solid understanding of OOPs concepts such as inheritance, polymorphism, and abstraction.

  • Why are SOLID principles important in the context of low level design?

    -SOLID principles are important as they provide a foundational understanding of object-oriented design, which is crucial for tackling low level design problems.

  • How does the video presenter approach teaching design patterns?

    -The presenter teaches design patterns by covering a few important ones and then solving related design problems, rather than covering all 23 patterns and then moving on to questions.

  • What is the significance of the green tick marks and question marks in the video?

    -The green tick marks indicate that the design patterns have been covered, while the question marks represent topics that are yet to be covered in the playlist.

  • Can you explain the teaching method the presenter uses for design patterns and interview questions?

    -The presenter uses a method where they cover important design patterns and then solve interview questions that can be directly addressed using those patterns.

  • What is the presenter's approach to selecting which interview questions to cover?

    -The presenter selects interview questions based on their frequency in top product-based companies and includes questions submitted by viewers, ensuring the content is relevant and practical.

  • Why is 'Splitwise Simplify Algorithm' considered important in the video?

    -'Splitwise Simplify Algorithm' is important because it is a common interview question that tests the candidate's ability to handle complex algorithmic problems from a low level design perspective.

  • What does the presenter mean by 'the sequencing of the videos' in the context of the playlist?

    -The presenter refers to the order in which the videos will be released, which may change depending on priority and viewer feedback, but the teaching pattern will remain consistent.

  • How does the presenter plan to handle the difference between low level design and high level design in terms of content delivery?

    -The presenter acknowledges the difference by structuring low level design content in a sequential manner without chapters, as there is no one correct answer, while high level design requires learning specific concepts before solving questions.

  • What is the presenter's stance on providing free system design education?

    -The presenter is committed to providing free, high-quality system design education, as evidenced by the depth and breadth of the content, with the goal of making system design knowledge accessible to all.

  • What new initiative is the presenter working on, as mentioned in the video?

    -The presenter is working on a Spring Boot playlist, which will be launched after outlining the sequential content, aiming to further assist viewers in their interviews.

Outlines

00:00

📈 Roadmap for Low and High Level Design

Shreyash Jain introduces the video's focus on the future plan for the channel's playlist, specifically targeting low-level design (LLD) and high-level design (HLD). He outlines the prerequisites for LLD, emphasizing the importance of understanding OOPs concepts such as inheritance, polymorphism, and abstraction. The video will cover SOLID principles, design patterns, and interview-based questions that have been asked in top product-based companies. Shreyash also discusses his teaching approach, which involves covering design patterns and then solving related questions. He invites viewers to suggest additional topics or questions to be included in the playlist.

05:01

🔍 Detailed Breakdown of HLD and Upcoming Content

In the second paragraph, Shreyash delves into the specifics of high-level design, highlighting the need to understand foundational concepts before tackling design questions. He mentions topics such as TCP, WebSocket, HTTP, client-server architecture, CAP theorem, microservices, and consistent hashing, which are crucial for solving complex design problems. He has already covered some of these topics and plans to address others, such as back-of-the-envelope estimation, SQL vs. NoSQL, and rate limiters. Shreyash also announces his intention to cover more advanced components and techniques in future videos, without providing a specific timeline, emphasizing the importance of understanding these components for effective system design.

10:02

🚀 Expanding Content with Spring Boot and Future Plans

Shreyash concludes the video script by discussing his plans to expand the channel's content with a Spring Boot playlist. He is in the process of outlining the videos for this new series and aims to launch it soon. He assures viewers that the focus on LLD and HLD will not be compromised by this new initiative. Shreyash invites feedback from the audience to improve the content and expresses his commitment to providing free, high-quality system design education. He ends the video with a call to action for viewers to engage with the content and contribute to the community, wishing them a happy New Year.

Mindmap

Keywords

💡Low Level Design (LLD)

Low Level Design (LLD) refers to the detailed design of a software system, focusing on the internal workings and the specific algorithms and data structures used. In the video, LLD is emphasized as a crucial aspect for interview preparation, particularly for those new to system design. The script mentions that understanding Object-Oriented Programming (OOPs) principles like inheritance, polymorphism, and abstraction is a prerequisite for LLD. The video's roadmap for LLD includes covering design patterns and solving interview questions that utilize these patterns.

💡High Level Design (HLD)

High Level Design (HLD) is the process of defining the overall structure of a system, including its components and their interactions, without delving into the specific implementation details. In the context of the video, HLD is distinguished from LLD by the need to understand certain concepts before solving design problems. The script outlines a roadmap for HLD that includes topics like TCP, WebSocket, HTTP, and microservices design patterns, which are essential for tackling system design questions at a high level.

💡Design Patterns

Design Patterns are reusable solutions to common software design problems. The video script mentions that there are 23 design patterns, and the speaker has covered several of them in a way that integrates their application into solving specific design problems. For instance, the script refers to design patterns being used to solve interview questions like the 'Notify Me Pizza System' and 'Vending Machine', highlighting the practical application of these patterns in system design.

💡SOLID Principles

SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible, and maintainable. The script specifically mentions that the first principle of SOLID is covered, indicating the importance of these principles in laying a foundational understanding for both LLD and HLD. The principles guide the creation of robust and adaptable software systems, which is a key theme in the video's educational content.

💡Interview Questions

The video script frequently refers to 'interview questions', which are real-world problems that candidates may encounter during technical interviews. These questions are used to assess a candidate's ability to design and reason about software systems. The speaker emphasizes that the questions covered in the video have been asked in interviews at various companies, and they are not fabricated but are based on actual interview experiences, making them highly relevant for viewers preparing for interviews.

💡OOD (Object-Oriented Design)

Object-Oriented Design (OOD) is a methodology for designing software systems based on the concept of 'objects' that interact with each other. The script implies that a strong grasp of OOD principles like encapsulation, abstraction, and inheritance is essential for both LLD and HLD. These principles are foundational for creating modular, reusable, and maintainable code, which is a key focus of the video's content.

💡System Design

System Design is the process of designing and creating systems that involve multiple components. The video is centered around teaching system design, particularly for interviews. The speaker outlines a roadmap for both LLD and HLD, which are integral parts of system design. The script mentions various components and considerations of system design, such as handling large-scale traffic and data storage, which are critical for building scalable and robust systems.

💡DSA (Data Structures and Algorithms)

Data Structures and Algorithms (DSA) are the foundational building blocks of computer science, essential for solving complex computational problems efficiently. The script mentions 'split twice simplify algorithm' as an important aspect of DSA from an LLD perspective. Understanding DSA is crucial for system design interviews, as it helps in creating efficient and optimized solutions, which is a recurring theme in the video's educational material.

💡Consistent Hashing

Consistent Hashing is an algorithm that distributes data across a set of servers in a way that minimizes reorganization when servers are added or removed. The video script includes consistent hashing as a topic to be covered, indicating its importance in high-level system design, particularly in distributed systems. The concept is used to explain how to design systems like databases that require efficient data distribution and retrieval.

💡Microservices

Microservices is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. The script mentions microservices as a key topic in the HLD roadmap, emphasizing the need to understand this architecture for designing scalable and maintainable systems. Microservices are a common approach in modern system design, allowing for flexibility and independence in service development and deployment.

💡CAP Theorem

The CAP Theorem, also known as Brewer's Theorem, states that it is impossible for a distributed system to simultaneously provide more than two out of the following three guarantees: Consistency, Availability, and Partition tolerance. The video script includes the CAP Theorem as a topic for high-level design, highlighting its importance in understanding the trade-offs in system design, particularly in distributed systems. The theorem is a fundamental concept in the field of computer science, especially relevant for designing systems that can handle network partitions and maintain data integrity.

Highlights

Introduction to the concept of encoding with a focus on low-level design (LLD) and high-level design (HLD).

Emphasis on the importance of understanding OOPs fundamentals for LLD.

Solid principles as a prerequisite for LLD, with the first principle being particularly emphasized.

Coverage of 23 design patterns, with a teaching approach that integrates pattern learning with solving design questions.

Explanation of how design patterns are applied to solve specific interview questions like the notify me pizza system.

Revealing that the discussed questions are actual interview questions from top product-based companies.

Future plans for LLD include covering split twice, simplify algorithm, and DSA interview questions.

Invitation for viewers to suggest additional questions for the LLD playlist.

HLD requires understanding concepts like TCP, WebSocket, HTTP, and microservices before solving design questions.

HLD content includes topics like CAP theorem, microservices design patterns, and scaling strategies.

Introduction of back-of-the-envelope estimation as an important skill for system design interviews.

Upcoming HLD videos will cover advanced components like Kafka, CDN, and storage systems.

No fixed timeline for HLD content release due to dependency on bandwidth and priorities.

Announcement of a new Spring Boot playlist in development.

Assurance that the focus on LLD and HLD will not be deviated despite the introduction of the Spring Boot playlist.

Call for feedback from viewers to improve and enhance the content.

Conclusion with a mission statement to provide free and accessible system design education.

Transcripts

play00:00

hello hey guys welcome to concept

play00:02

encoding and this is shreyash Jain and

play00:05

today's video is going to be very very

play00:07

important for those who are new to this

play00:09

Channel and for those who are already

play00:12

following this channel for lld and hld

play00:15

because today I am going to tell you

play00:17

about the roadmap the future plan for

play00:20

this playlist like what we have covered

play00:23

what we are going to cover what are the

play00:25

topics which we have to cover so let's

play00:28

start with the low level design roadmap

play00:30

So currently the prerequisite for the

play00:33

low level design is definitely the oops

play00:35

fundamental

play00:38

right so if you aware of what is

play00:41

inheritance polymorphism abstraction you

play00:44

are good with the low level design right

play00:46

any language C plus plus Java python all

play00:51

are good any oopsy oops language is good

play00:54

to go for the low level design right

play00:56

second what is the second uh step after

play01:00

of fundamental that which is the

play01:02

prerequisite the second is start with

play01:04

the solid principle

play01:06

so if you are following my llt playlist

play01:08

you will know that solid principle I

play01:10

have protect number one

play01:13

right so solid is always the number one

play01:16

and it is give you a base right what is

play01:20

exactly of principles

play01:23

after that here comes our design

play01:25

patterns

play01:27

right so we have total 23 design

play01:30

patterns and I have covered this all

play01:32

green tick marks and this green text

play01:34

Mark question marks I have covered so my

play01:37

way of teaching is I don't want to cover

play01:40

all 23 design patterns and then start

play01:43

with the questions my way of teaching is

play01:45

like I covered few important design

play01:48

patterns and the questions can be solved

play01:51

on top of it so there are certain

play01:53

questions which can be solved directly

play01:55

using the design patterns like notify me

play01:58

pizza system right here if you see the

play02:01

vending machine file system ATM so there

play02:05

are certain question which can be solved

play02:07

directly via patterns but there are

play02:10

question in which you use those patterns

play02:13

right so this is my way of teaching like

play02:15

instead of putting all design patterns

play02:18

and then go for questions I covered some

play02:20

important design pattern and then solved

play02:22

questions on top of it right and I will

play02:25

follow the same for the rest of the

play02:28

design patterns which are pending and

play02:30

similarly the questions which are

play02:33

pending I will use the design patterns

play02:36

right as far as we cover

play02:39

so till now if you see that the

play02:41

questions which I have covered and one

play02:43

more thing I want to tell you that these

play02:46

questions are not something which I have

play02:48

come up with myself

play02:49

these questions these all questions has

play02:52

been asked in an interview

play02:54

I will refrain from taking the name of

play02:56

the companies in which this question

play02:57

asked but you can just search with the

play03:00

name question name and see in which

play03:03

companies it has been asked you will get

play03:04

a lot all good product based companies

play03:07

this question has been asked in any one

play03:09

of the top product based companies some

play03:12

of the question I got from you guys some

play03:14

of the questions I have come up after my

play03:16

analysis like in which company this

play03:18

which company is asking what a lady

play03:19

question

play03:21

so if you see that notify me very

play03:24

important Pizza Billing System parking

play03:27

lot very important snake and ladder

play03:29

elevator system car rental system

play03:32

like logging system tic-tac-toe game

play03:34

bookmyshow can see handing vending

play03:37

machine ATM chess game

play03:40

file system split twice very very

play03:42

important so till now we have covered

play03:44

all those things now what's the future

play03:46

if you see that this is the up next

play03:49

split twice simplify algorithm this is

play03:52

very very important from l d perceptive

play03:54

plus DSA interview question also we have

play03:56

to implement also right so this is very

play03:59

very important

play04:00

then if you see that this is the list

play04:03

of the questions which I am going to

play04:05

cover please go through it

play04:07

and any questions left or you think

play04:09

there is another question which I

play04:11

haven't included it feel free to ping me

play04:13

on comment I will definitely go through

play04:15

it and add it into the bucket list

play04:17

right so this is something I have put in

play04:20

the note

play04:22

so what I have meant is like the

play04:24

sequencing of the videos like here if

play04:27

you see that the future videos what the

play04:30

future in which this few videos I am

play04:32

going to cover the sequencing might be

play04:34

different like what I have listed here

play04:36

so let's say listed after split twice

play04:39

simplify algorithm I have put design

play04:41

cricbuzz it is possible that I might

play04:44

cover some other question before

play04:45

cricbuzz depending upon the priority

play04:48

let's say if anybody has certain

play04:50

interview in some companies and

play04:53

any question which has been frequently

play04:55

asked and if the request like then I

play04:57

should uh consider that let's cover

play05:00

those first

play05:01

so depending upon the bandwidth

play05:03

depending upon the priority so the

play05:05

sequencing to cover this question can be

play05:09

changed so that just a heads up guys

play05:11

so but my pattern of teaching will be

play05:14

same I am going to cover some design

play05:15

patterns and then I will solve our

play05:18

questions on top of it okay so this is

play05:21

low level design and one more thing guys

play05:23

there is no codes for low level design

play05:25

like we have in hld

play05:27

right so actually low level design is

play05:29

different from actually is like there is

play05:30

no course chapter one chapter two

play05:32

chapter three nothing

play05:34

right so and there is no one correct

play05:36

answer

play05:37

so that's why I follow this structured

play05:40

manner so that it can be learned in a

play05:44

sequential Manner and important for the

play05:47

interview also all from this all

play05:49

everything is from the interview

play05:50

perspective guys

play05:52

so now let's come to the hld so as I

play05:56

told you it is different from already

play05:57

like why because here we have to first

play06:00

learn some concept before even we are

play06:03

able to solve the questions for example

play06:05

you cannot if you don't know consistent

play06:08

hashing you cannot come up with an

play06:10

interview in something

play06:11

similar to consistent hashing right you

play06:14

have to know this technology before

play06:16

so that's why the questions if you see

play06:19

that the bigger questions certainly lies

play06:22

at the bottom

play06:23

of the high level design but if you see

play06:26

that there are certain question which

play06:27

lie at the top also

play06:29

right so here if you see that certain

play06:31

question lie on the top also so the my

play06:33

pattern of teaching is same as soon as I

play06:36

will cover the topics I will solve the

play06:38

question based on it but if

play06:41

certain topics are left which has to be

play06:43

learned before solving the questions so

play06:45

that's why questions are a little bit

play06:46

bottom

play06:48

so now in the hld this again green ones

play06:50

I have covered right so here if you see

play06:54

that these are base what is TCP

play06:57

websocket http webrtc

play07:01

client server and peer-to-peer

play07:03

architecture what's the difference cap

play07:05

theorem very important right

play07:07

microservices design pattern here in

play07:09

this Saga is very important

play07:11

right and

play07:14

stranglers sometimes are sometimes not

play07:16

but Saga don't miss it

play07:18

right this is very important scale from

play07:20

zero to million user right so based on

play07:23

top of it information we have done it

play07:24

right and consistent hashing I have

play07:28

taught so these are all the topics using

play07:30

this I am teaching the topics and then

play07:32

we will solve the question

play07:34

right so back of the envelope estimation

play07:37

is a very important many companies ask

play07:39

this one like uh how many servers you're

play07:41

gonna need how many memory you're gonna

play07:43

need we need to know the calculation

play07:47

dynamodb design key value store where we

play07:50

use consistent hashing so that's why

play07:51

it's a sequential

play07:53

SQL versus no SQL which DB to use very

play07:56

very important design WhatsApp again

play07:58

very important rate limiter very

play08:00

important so this is the upcoming video

play08:03

here autocomplete system or we can also

play08:06

say that iPad system

play08:08

right but after that what you can expect

play08:11

from the hld so we will cover the more

play08:14

agility components right like Kafka cues

play08:17

proxies of our CDN storage type block

play08:21

storage file storage S3 raid file system

play08:25

Bloom filters Markle Street gaussian

play08:29

protocols right caching

play08:31

so this is all the high level components

play08:34

right or you can say that tax

play08:37

which we have to know because in when we

play08:39

will solve this question right we are

play08:41

going to use this one

play08:44

then how to scale database so horizontal

play08:47

vertical partnering mirroring leader

play08:49

election indexing all this thing we

play08:51

should know then only we can be able to

play08:53

solve this question right so again guys

play08:56

here I will try I will not give any

play08:58

timeline because it's depend upon my

play09:01

bandwidth but I will try to cover as

play09:04

soon as possible these things

play09:06

but these are the roadmap which I am

play09:08

following for the high level and low

play09:10

level design but and I can pretty much

play09:12

tell you that you will not find this

play09:14

content on any of the paid contents also

play09:17

this kind of breadth and this kind of

play09:20

depth

play09:22

right so I hope you are enjoying the

play09:25

content and stay tuned and last those

play09:27

who stay till now I want to tell you

play09:30

that there is one more I want to tell

play09:32

you that latest update or you can say

play09:34

that news that I have started working on

play09:38

a spring boot playlist man

play09:43

I am listing down all the sequential

play09:46

wise videos I have to cover and once I

play09:49

am done with this most probably by Fab I

play09:52

will be launching this playlist and I

play09:54

hope that would help you more in your

play09:57

interviews right but let's but again I

play10:01

promise you that low level design and

play10:03

high level design Focus will not going

play10:05

to uh deviated because of the

play10:08

springboard playlist it's all just I

play10:10

have to manage but yes for sure these

play10:13

are more priorities and I am totally in

play10:15

line what we have to cover

play10:18

okay guys now I hope you know little bit

play10:21

how we are going

play10:23

where we are going in 2023 what all you

play10:26

can expect from this channel any

play10:28

feedback you have for me if something

play10:31

you have in your mind can be improved

play10:34

please share in the comment section I

play10:37

will definitely love to improvise like

play10:40

any feedback I can definitely enhance my

play10:44

content so I'm open for the feedback

play10:47

guys so let's work together let's make

play10:51

don't pay for system design system

play10:53

design let it be what I say is like

play10:56

system design for all system design is

play10:58

free so let's continue work toward it

play11:00

have a good day guys and happy New Year

play11:02

bye

Rate This

5.0 / 5 (0 votes)

関連タグ
System DesignLow Level DesignHigh Level DesignInterview PrepDesign PatternsSoftware ArchitectureSOLID PrinciplesTech InterviewCoding ChallengesSpring Boot
英語で要約が必要ですか?