Cracking the Low Level Design ( LLD ) Interview
Source: GeeksforGeeks

Cracking the Low Level Design ( LLD ) Interview

Software Engineering interviews (mainly) focus on the Coding and Software Designing skills in an interview. The Data Structure & Algorithm round check the Problem Solving skills and Coding skills of a candidate, while the Design round tests the System design skills, which can be High Level Design (HLD) or Low Level Design (LLD).

LLD talks about the class diagrams with the methods and relations between classes, program specs and other low level details for a given system. It is also known as Object Oriented Design (OOD).

Expectations from the candidates

In the LLD Interviews, they will judge you on your knowledge of creating modular, flexible, maintainable and reusable software, by applying Object-oriented Design Principles and Design Patterns. These questions (like Design a Parking Lot, Design a Chess Game etc.) are about demonstrating that you understand how to create elegant, maintainable object-oriented code. These questions are (intentionally) unstructured and open-ended and they don't have a standard answer.

How to Prepare for the LLD Interview

  1. Learn at least one Object Oriented Language ( C++ / Java / Python or C# )
  2. Study about the SOLID and other Object Oriented Principles
  3. Learn all the common Design Patterns and their applications
  4. Explore some open-source projects and try to understand the best practices
  5. Practice common LLD interview questions

How to solve LLD problems in the Interview

  1. Clarify the problem by asking the relevant questions. Gather the complete requirement and start with the basic features.
  2. Define the Core Classes ( and Objects )
  3. Establish the relationships between the classes / objects by observing the interactions among the classes / objects.
  4. Try to fulfill all the requirements by defining the methods
  5. Apply Object Oriented Design Principles and Design Patterns to make the system maintainable and reusable.
  6. Write well structured clean code (if you are told to implement a function)

Resources for LLD

Books:

  1. Head first object-oriented analysis and design
  2. Head first design patterns
  3. Clean Code
  4. Clean Architecture
  5. Refactoring: Improving the Design of Existing Code
  6. Patterns of Enterprise Application Architecture
  7. Design Patterns: Elements of Reusable Object-Oriented Software

Online Live Course:

  1. https://practice.geeksforgeeks.org/courses/design-patterns-live

Other Links:

  1. https://refactoring.guru/design-patterns
  2. https://sourcemaking.com/design_patterns
  3. https://www.geeksforgeeks.org/software-design-patterns/
  4. https://github.com/prasadgujar/low-level-design-primer
  5. https://github.com/DovAmir/awesome-design-patterns#programming-language-design-patterns
  6. https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc
Subhahu Jain

MTS @ Salesforce | Ex-SDE @ Amazon | LLDcoding.com | 500+ sessions on PrePlaced | 100K+ Mnth Page Views | Google Summer of Code Mentor | Top Mentor @ PrePlaced | Ex-SDE @ Hyland | TA at Relevel | GCI Mentor | Freelancer

10 个月
Rahul Kapoor

SDE-III @Expedia

2 年

Most of the books and resources you mentioned are in Java. Any good ones for C++?

回复
Varun Kumar

Senior Software Engineer at Walmart Global Tech India

2 年

21211

回复
Rahul Joshi

Associate at Intel

2 年

sab copied hai

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了