Что программиста спрашивают про базы данных на собеседовании
Всем привет, работаю бекенд разработчиком почти 10 лет и за это время прошел порядка 150 собеседований. Сейчас есть тренд на использование набора различных СУБД в одном проекте: в зависимости от задач используются реляционные, key-value, документные базы. В этом посте я хотел бы поделиться самыми частыми темами с собеседований, они касаются в основном реляционных (aka sql) баз данных.
SQL - прикладная часть. Нужно уметь решать задачи, которые касаются фильтрации, агрегации, сортировки записей, понимать каков результат применения оператора join;
Связи между данными и поддержка инвариантов. Нужно понимать что такое primary key, foreign key, constraint-ы. Надеюсь, нет необходимости вставлять сюда переводы этих понятий;
Уметь объяснить, что такое нормализация, почему может потребоваться использовать ненормализованные данные;
Знать что такое индекс, составной ключ, потренироваться использовать команду explain для построения плана запроса;
В общих чертах требуется понимать эффекты, которые происходят в распределенных системах при потери связи или выходе узла из строя. Рассуждая на эти темы, могут затронуть CAP теорему, согласованность в конечном счете;
Предыдущий пункт включает большую тему - проблемы построения распределенных транзакций. На собеседовании нужно быть готовым рассказать про уровни изоляции транзакций;
Нужно понимать что такое параметризированный запрос, как он защищает от sql-инъекций.
Для администраторов баз данных эти вопросы могут показаться трививальными. Но бекенд разработчики часто не вникают в нюансы - ORM фреймворки позволяют работать с бд через интерфейсы языка, что скрывает сложность. Я сам не держу уровни нормализации или изоляции в голове, пробегаюсь перед прохождением испытаний.
Всем удачных собесов!
Лига программистов
2K постов11.8K подписчиков
Правила сообщества
- Будьте взаимовежливы, аргументируйте критику
- Приветствуются любые посты по тематике программирования
- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества