Найти в Дзене
КОДОВАЯ БАЗА_

System Design Interview: Начало

System Design Interview: Начало На собеседованиях по проектированию систем проверяют, насколько хорошо вы ориентируетесь в современном ландшафте высоконагруженных систем — балансировщики, очереди, SQL- и NoSQL-базы данных, реплицирование и шардирование — и ваши способности работать с требованиями, реагировать на изменение требований, умение отсечь лишние детали. Или — как вы заучили стандартные шаблоны задач для таких собеседований… В каком-то смысле эти собеседования пришли на смену Object-Oriented Design собеседованиям. System Design собеседования более универсальны, а ещё их проводят в Google — так они и стали популярны. К сожалению, разные компании и разные собеседующие оценивают кандидатов по-разному. Когда я проводил похожие собеседования, я больше обращал внимание на способность решать задачи и в целом на умение анализировать архитектуру, укладывать её в диаграммы. Кто-то смотрит на знание деталей работы конкретных инструментов — вроде особенностей индексирования или партици

System Design Interview: Начало

На собеседованиях по проектированию систем проверяют, насколько хорошо вы ориентируетесь в современном ландшафте высоконагруженных систем — балансировщики, очереди, SQL- и NoSQL-базы данных, реплицирование и шардирование — и ваши способности работать с требованиями, реагировать на изменение требований, умение отсечь лишние детали.

Или — как вы заучили стандартные шаблоны задач для таких собеседований…

В каком-то смысле эти собеседования пришли на смену Object-Oriented Design собеседованиям. System Design собеседования более универсальны, а ещё их проводят в Google — так они и стали популярны.

К сожалению, разные компании и разные собеседующие оценивают кандидатов по-разному. Когда я проводил похожие собеседования, я больше обращал внимание на способность решать задачи и в целом на умение анализировать архитектуру, укладывать её в диаграммы. Кто-то смотрит на знание деталей работы конкретных инструментов — вроде особенностей индексирования или партиционирования в разных СУБД. Кто-то ожидает получить заранее известное шаблонное решение.

Поэтому желательно быть готовым ко всему. Секция System Design в виде отдельного собеседования, скорее всего, будет ждать вас в любой крупной компании, если ваша позиция — senior-разработчик или выше. В компаниях поменьше вас может ждать пара вопросов в рамках общей языковой секции — на понимание каких-то технологий или паттернов. В некоторых компаниях такие вопросы могут задавать даже junior-разработчику.

Проводить такие собеседования должны инженеры соответствующей квалификации — lead-разработчики или архитекторы. Я встречал в одном российском бигтехе middle-разработчика, который проводил секцию System Design — он был из тех, кто ожидал точного шаблонного решения.

Отсюда первые советы:

▪️Вам не нужна эта дисциплина, если ваш уровень ниже middle+. Не позиция на текущем рабочем месте, а именно ваша реальная квалификация или ваш уровень на рынке. Материала и технологий много, и чтобы проще в этом ориентироваться, нужна насмотренность, а на насмотренность нужно время. Мне кажется, лучше заняться изучением вглубь технологий, с которыми вы работаете — БД, очереди, CI/CD, контейнеризация.

▪️Не читайте «Кабанчика» и другие архитектурные бестселлеры, если вы в начале пути. Встречал людей, которые уверены, что «Кабанчика» нужно читать несколько раз, потому что они находили в нём новые инсайты, когда возвращались и перечитывали. Просто они первый раз читали слишком рано.

▪️Сомнительна компания, которая проводит секцию System Design на позицию middle и ниже. Это ненужный стресс для кандидата. Как вариант — компания хочет сэкономить на зарплате senior/lead и нагрузить вас более сложной работой.

▪️Сомнительна компания, в которой секцию System Design проводят инженеры уровня middle+ и ниже. Объективна ли будет оценка? Как он сможет провести секцию для опытного архитектора? Возможно, это собеседование «для галочки», потому что все его проводят.

▪️Не слушайте тех, кто советует прочитать «Кабанчика» всем и как можно раньше. И не слушайте тех, кто говорит, что читать его вам ещё рано. Меня тоже не слушайте, и том что на собеседования по System Design вам ходить рано. Подходите к своему развитию осознанно и делайте то, что считаете правильным. Это ваш путь и ваша ответственность.

В следующем посте расскажу о том, что должно проверяться на секции System Design «по канону». Не переключайтесь…

За репост + в карму 🤓

@kodbaza ⚫️ #system_design #interview