Перейти к основному содержимому

Предисловие

Это машинный перевод курса bytebytego System Design с ручной адаптацией.

Этот проект создан в первую очередь для себя потому что на родном языке информация усваивается лучше.

Если вам понравится рассмотренные кейсы - рекомендуется купить официальный курс или книгу.

От Авторов​

Мы рады, что вы решили присоединиться к нам в изучении системного дизайна для технических интервью.

Вопросы по системному дизайну — одни из самых сложных среди всех технических интервью. Они требуют от кандидата спроектировать архитектуру программной системы, такой как новостная лента, поиск ( например, Google), чат-система и т.д. Эти вопросы могут казаться пугающими, поскольку не существует четкого шаблона для их решения. Обычно они имеют большой масштаб и сформулированы довольно абстрактно. Процесс решения открыт и не имеет единственно правильного ответа.

Компании широко используют интервью по системному дизайну, потому что навыки коммуникации и решения задач, которые проверяются в этих интервью, напрямую соответствуют повседневной работе инженера-программиста. Кандидат оценивается по тому, как он анализирует нечетко сформулированную задачу и как он решает её шаг за шагом. Также оцениваются навыки объяснения идей, ведения обсуждений и оптимизации системы.

В английском языке использование местоимения «she» (она) звучит более естественно, чем «he or she». Чтобы облегчить чтение, в этом курсе используется женский род. Это не имеет целью проявление неуважения к мужчинам-инженерам.

Вопросы по системному дизайну являются открытыми. Как и в реальном мире, существует множество различных вариантов решений. Цель — разработать архитектуру, которая удовлетворяет требованиям системы. Обсуждение может развиваться по-разному в зависимости от интервьюера. Некоторые интервьюеры предпочитают рассматривать архитектуру на высоком уровне, охватывая всю систему, тогда как другие могут сосредоточиться на отдельных аспектах. Обычно важно четко понимать требования, ограничения и узкие места системы — это определяет направление обсуждения.

Цель этого курса — предоставить надежную стратегию для решения задач по системному дизайну. Правильная стратегия и знания являются ключевыми для успешного прохождения интервью.

Этот курс дает прочную базу знаний по построению масштабируемых систем. Чем больше знаний вы получите, изучая этот курс, тем лучше будете подготовлены к решению задач по системному дизайну.

Также курс предлагает пошаговый фреймворк для решения задач системного дизайна. В нем приведено множество примеров, демонстрирующих системный подход с подробными шагами, которые вы можете применять.

При регулярной практике вы будете хорошо подготовлены к прохождению интервью по системному дизайну.