0% found this document useful (0 votes)
780 views

Low Level Design

The document outlines a 5-step approach to mastering low-level design for interviews: 1) Learn OOP concepts, 2) Understand UML diagrams, 3) Learn SOLID principles, 4) Learn design patterns, and 5) Practice common interview problems and their solutions. Key areas covered include classes, inheritance, encapsulation, polymorphism, use case diagrams, class diagrams, SOLID principles like single responsibility and dependency inversion, patterns like singleton and strategy, and example problems like parking lot design. The goal is to understand common low-level design topics and patterns, and gain experience applying them to sample systems and problems.

Uploaded by

hedimit846
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
780 views

Low Level Design

The document outlines a 5-step approach to mastering low-level design for interviews: 1) Learn OOP concepts, 2) Understand UML diagrams, 3) Learn SOLID principles, 4) Learn design patterns, and 5) Practice common interview problems and their solutions. Key areas covered include classes, inheritance, encapsulation, polymorphism, use case diagrams, class diagrams, SOLID principles like single responsibility and dependency inversion, patterns like singleton and strategy, and example problems like parking lot design. The goal is to understand common low-level design topics and patterns, and gain experience applying them to sample systems and problems.

Uploaded by

hedimit846
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Low Level Design

Like Tinder for your coding life,

But here, swipe right to get a


guranteed match ! 3 Months
rd

Solid

Principles

th
5 Months
st
1 Months Interview

Questions
OOPs

Concepts

Design

Patterns

th
4 Months

UML Basics &

Diagrams

nd
2 Months
Step 1

OOPS Concepts

Overview:

Object-oriented programming (OOP) is a programming


paradigm based on the concept of classes, objects and
their interactions. Learn OOPS concepts in detail in your
preferred programming language such as C++, Java, Python,
etc.

Key Concepts

Classes and Objects: Classes define the blueprint for


objects, which are instances of classes

Inheritance: It allows a class to inherit properties and


methods from another class, promoting code reuse

Encapsulation: Encapsulation hides the internal details


of an object and exposes a controlled interface

Abstraction: Abstraction focuses on defining a simplified


representation of an object, hiding complex
implementation details.

shared by HeyCoach 1
Polymorphism: It enables objects to take on multiple forms,
often achieved through method overriding and interfaces.

Resources

https://www.w3schools.com/cpp/cpp_oop.as

https://www.w3schools.com/java/java_oop.as

https://www.freecodecamp.org/news/object-oriented-
programming-in-python/

shared by HeyCoach 2
Step 2

UML Basics and Diagrams

Overview:

The Unified Modeling Language (UML) is a general-purpose


visual modeling language that is intended to provide a
standard way to visualize the design of a system.
Understand UML and types of diagrams used for
visualization.

Key Concepts

Use Case Diagram: Used to describe a set of user


scenarios, this diagram, illustrates the functionality
provided by the system

Class Diagram: Used to describe structure and


behaviour in the use cases, this diagram provides a
conceptual model of the system in terms of entities and
their relationships.

shared by HeyCoach 3
Activity Diagram: Used to model the functional flow-of-
control between two or more class objects

Sequence Diagram: Used to describe interactions


among classes in terms of an exchange of messages
over time.

Further Reading

https://github.com/tssovi/grokking-the-object-oriented-
design-interview/tree/master/object-oriented-design-
and-uml

shared by HeyCoach 4
Step 3

SOLID Principles

Overview:

SOLID is an acronym for five design principles intended to


make object-oriented designs more understandable,
flexible, and maintainable. Learn and understand SOLID
principles along with examples.

Key Principles

Single Responsibility Principle (SRP): A class should have


only one reason to change

Open/Closed Principle (OCP): Software entities (classes,


modules) should be open for extension but closed for
modification

Liskov Substitution Principle (LSP): Subtypes must be


substitutable for their base types without altering the
correctness of the program.

shared by HeyCoach 5
Interface Segregation Principle (ISP): Clients should not
be forced to depend on interfaces they do not use

Dependency Inversion Principle (DIP): High-level


modules should not depend on low-level modules; both
should depend on abstractions.

Resources

https://www.oodesign.com/design-principle

https://www.freecodecamp.org/news/solid-principles-
explained-in-plain-english/

shared by HeyCoach 6
Step 4

Design Patterns

Overview:

Design patterns are typical solutions to common problems


in software design. Each pattern is like a blueprint that you
can customize to solve a particular design problem in your
code. Learn and understand important design patterns
along with examples.

Key Patterns

Singleton Pattern: Ensures a class has only one instance


and provides a global point of access

Factory Method Pattern: Defines an interface for


creating objects but allows subclasses to alter the type
of objects created

Adapter Pattern: Adapter pattern allows objects with


incompatible interfaces to work together.

shared by HeyCoach 7
Observer Pattern: Defines a one-to-many dependency
between objects, ensuring changes in one object trigger
updates in others

Strategy Pattern: Defines a family of algorithms,


encapsulates them, and makes them interchangeable.

Some other important design patterns

Abstract Factor
Builde
Decorato
Facad
Comman
Iterator.

Best Resource:

https://refactoring.guru/design-patterns

shared by HeyCoach 8
Step 5

Interview Questions

Overview:

Practice is the key to master LLD for interviews. This


includes solving commonly asked design problems, along
with their diagrams and code.

Standard Problems

Design a Parking Lot.


Design a Two-player game like Chess, Carrom or
TicTacToe
Design a Library Management System
Design a Hotel Management System
Design an Elevator System
Design a Ticket Booking System like BookMyShow
Design an ATM.

shared by HeyCoach 9
Some other important problems:

BlackJack Game, Caching Library, Rate Limiter, Online E-


commerce Platform like Amazon, Online Social Media App
like Facebook, Stack Overflow, Ride-sharing App like Uber,
Stock-trading App like Zerodha.

Best Resource:

https://github.com/tssovi/grokking-the-object-oriented-
design-interview/tree/master/object-oriented-design-
case-studies

shared by HeyCoach 10
Have you read this Doc?

Allow me to summarize its main points for you.


Speaking of valuable insights,

HeyCoach can offer you similar guidance but


tailored to your career in tech
1000+ engineers Engineers land an
chose HeyCoach to average CTC of 27
land a job at a top LPA

product company. with HeyCoach


Engineers got an 100% placement
average of 300% assistance
hike through
HeyCoach
The batch size of 30 students They assigned me a coach who
gives the learners a great level of helped me with the preparations
personalized attention and also guided me throughout the
interview process.
Shubham Monark

Signup Now
(link in caption)

You might also like