Данный репозиторий - лучшее из того что мне удалось найти на просторах сети в процессе изучения System Design и подготовки к одноименному интервью.
Эти ресурсы были невероятно полезны для меня, поэтому я решил поделиться ими с сообществом, чтобы каждый мог взять этот репозиторий и начать свое путешествие в мир System Design. Контент разбит на 3 категории чтобы человек любого уровня подготовки мог найти именно то что нужно.
На первый взгляд может показаться что это слишком короткий гайд, и многих популярных книг и курсов в нем нет, но на самом деле каждая ссылка, особенно на Github репозитории раскрывается в огромное количество информации, в том числе с теми самыми книгами и курсами :)
В начале пути я использовал 3 репозитория, они здорово помогли мне освежить знания, систематизировать то что уже было и погрузиться в предметную область
- Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
- Learn how to design systems at scale and prepare for system design interviews
- Learn System Design step by step
- 🔗 Latency Numbers Every Programmer Should Know
Статьи:
Закрепить знания помогают красивые cтатьи и видео и Github ByteByteGo. Также отмечу ресурс System Design Newsletter
Прохождение интервью - отдельная история, так как нужно не только знать теорию а уметь её применять, коммуницировать с собеседником и держать темп чтобы уложиться во временные рамки. Понять что требуется от человека на собесе и как максимизировать свои шансы помогут статьи:
- 🔗 Александр Поломодов: Как подготовиться и пройти System Design Interview. 📺 Видео и 📖 статья.
- 🔗 Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем
- 🔗 Проходим L6 интервью на System Design в FAANG
- Preparing for the Google System Design Interview
Шпаргалки здорово помогают во время интервью придерживать плана, защищают от забывчивости, поэтому рекомендую распечатать и держать перед собой на интервью, это важно!
- 🔗 My System Design Template (LeetCode)
- System Design Cheatsheet (Github gist)
- System Design Ultimate Guide (Image)
- 🔗 Latency Numbers Every Programmer Should Know
- 📺 Видео пробных собеседований от karpov.courses
- 📺 Интервью по System Design. Александр Поломодов (Тинькофф)
- 🔗pramp.com - для самостоятельной практики
System Design довольно обширная тема, изучать её можно бесконечно, поэтому если вы прочитали ресурсы выше и вам этого мало то ныряйте глубже :)
- The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
- These are the best resources for System Design on the Internet
- A curated list to learn about distributed systems
- This repository contains System Design resources which are useful while preparing for interviews and learning Distributed Systems
- Roadmap to becoming a system design and architecture master
- Advanced data structure and algorithm for system design
- 📺 Distributed Systems lecture series by Martin Kleppmann
- 🔗 jepsen.io - Distributed Systems Safety Research