System design используются для больших проектов с нагруженными системами. Это помогает оптимизировать работу команды на этапах исследования, дизайна и разработки.
System design интервью можно встретить как этап отбора в любую большую компанию на позиции, начиная с мидла. Это интервью нельзя недооценивать так же как и интервью по алгоритмам.
Один из самых крутых курсов на русском языке это курс, который читает Липовский: лекции и семинары. На этом курсе все хорошо структурировано и рассказано понятным языком (но он скорее по распределенным системам). По мл больше подойдет это или курс стенфорда и еще есть курс Бабушкина.
Также хорошая идея читать параллельно книгу Designing Data-Intensive Applications, в которой собрано большая часть теории с объяснениями на пальцах. Но в ней недостаточно упражнений и в качестве практики стоит решать задачи с System Design Exercises, здесь очень хороший разбор задач. Еще как справочник советую "Компьютерные сети" Таненбаума (все книжки в комментариях).
Также полезно будет изучить архитектуру популярных сервисов так как на собесе часто просят именно их спроектировать. Например ленту инстграм, твитер и тд. Можно выделить топ вопросов на архитектуру, которые стоит изучить до собеса. Видео разборы можно найти по ссылке или почитать статью здесь (на ютубе полно других примеров).
Полезно будет взять на вооружения шаблон, например здесь. Шаблон нужен для того, чтобы оценить тайминг (уложиться по времени) и не забыть что-то важное. В будущем можно составить и свой шаблон.
На собесах вам придется работать с доской, поэтому тренируемся писать на Google Drawings.
Полезно будет если найдете человека, который будет вас собеседовать, например друга, так же есть платные сервисы, в которых интервью по System Design с фидбэком проводят сотрудники больших компаний. Можно найти их например в TechMockInterview.
Если вы готовитесь к собесу непосредственно в какую то компанию, то в литкоде есть список вопросах которые задавались и разбор от участников.
На последок стоит упомянуть, что перед освоением систем дизайн, необходимо представление об операционных системах, о сетях и алгоритмах, процессе разработки и инфраструктуры вашей области. Все это поможет вам не запутаться в построении дизайна. Поэтому ставим огонек и делимся с другом, и подборки материалов не заставят себя долго ждать!
Post #15
38.8K
- 🔥 51
- ❤ 5