awesome-low-level-design README

The project's README from github.com/ashishps1/awesome-low-level-design. As one markdown file: README.md.

Join Free Newsletter

This repository contains resources to learn Low Level Design (LLD) / Object Oriented Design (OOD) and prepare for interviews. It covers OOP fundamentals, design patterns, UML, concurrency and commonly asked interview questions.

🏁 Start Here

🧱 OOP Fundamentals

🔗 Class Relationships

🧭 Design Principles

🧩 Design Patterns

Creational Patterns Structural Patterns Behavioral Patterns
Singleton Adapter Iterator
Factory Method Bridge Observer
Abstract Factory Composite Strategy
Builder Decorator Command
Prototype Facade State
Flyweight Template Method
Proxy Visitor
Mediator
Memento
Chain of Responsibility

🗂️ UML

⏱️ Concurrency and Multi-threading Concepts

Concurrency 101

Synchronization Primitives

Concurrency Challenges

Concurrency Patterns

✅ How to Answer a LLD Interview Problem

💻 Low Level Design Interview Problems

Easy Problems

Medium Problems

Hard Problems

⏱️ Concurrency and Multi-threading Problems

📇 Courses

📚 Books

📩 Newsletter

Additional resources

🤝 Contributing

Contributions are welcome! If you'd like to add a new problem, improve existing content, or fix errors:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Submit a pull request

Please make sure to update Readme files and documentation as appropriate.


If you find this resource helpful, please give it a star and share it with others!

awesome-low-level-design (ashishps1/awesome-low-level-design)

Searching Database…

Что это?Подборка бесплатных материалов для изучения низкоуровневого проектирования (Low Level Design, LLD) и объектно-ориентированного проектирования, а также для подготовки к собеседованиям по LLD.
Это учебник, набор задач или и то, и другое?И то, и другое: теоретические материалы по ООП, паттернам проектирования, UML и конкурентности, а также список задач на machine-coding для собеседований с решениями, отсортированный по сложности.
С чего начинающему стоит начать?Начните с руководства 'How to Learn LLD' и раздела '15 Must-Know OOP Concepts' в начале README, затем переходите к основам ООП и паттернам проектирования.
Для кого это?Для разработчиков, которые готовятся к собеседованиям на machine-coding и LLD, а также для всех, кто хочет укрепить навыки объектно-ориентированного проектирования.
Какие темы по конкурентности здесь есть?Есть основы конкурентности (потоки и процессы, состояния гонки), примитивы синхронизации (мьютексы, семафоры, CAS), шаблоны конкурентности (производитель-потребитель, пул потоков) и отдельные задачи для собеседований на многопоточность, например 'Print FooBar Alternately' и 'Design Thread-Safe Blocking Queue'.
Какие паттерны проектирования здесь включены?Перечислены все классические паттерны Банды четырёх (GoF): порождающие — Одиночка, Фабричный метод, Абстрактная фабрика, Строитель, Прототип; структурные — Адаптер, Мост, Компоновщик, Декоратор, Фасад, Легковес, Заместитель; поведенческие — Итератор, Наблюдатель, Стратегия, Команда, Состояние, Шаблонный метод, Посетитель, Посредник, Хранитель, Цепочка обязанностей.
Какие примеры задач для собеседований здесь есть?От более простых, например 'Design Parking Lot' и 'Design a Vending Machine', до сложных: 'Design Splitwise', 'Design an Online Shopping System like Amazon' и 'Design a Ride-Sharing Service like Uber'.
Рекомендуются ли дополнительные курсы или книги?Да: есть ссылки на курсы AlgoMaster.io по собеседованиям по LLD и конкурентности, рассылку AlgoMaster и книги, например 'Head First Design Patterns', 'Clean Code' и 'Refactoring'.
Creator
ashishps1
Size
15.6 MB
Stars
27.5K
Updated
CommitAug 19
Age
2y
Commits · 90 Days