Написать пост

Data Engineer: учебное пособие для прохождения собеседования

Аватар Евгений Туренко

Детальный план по обучению профессии Data Engineer. В нём вы найдёте задачи разного уровня сложности, видеоуроки и курсы.

Обложка поста Data Engineer: учебное пособие для прохождения собеседования

Собеседование на любую техническую должность, как правило, требует подготовки и занимает немало времени. И не всегда понятно, что нужно конкретно изучать инженеру данных. Некоторые позиции требуют Hadoop, другие — SQL, а третьи — понимания статистики.

В материале собрано много ресурсов для подготовки, благодаря которым можно пройти собеседования в крупных технологических компаниях.

Вы также можете использовать чек-лист, который поможет отслеживать прогресс и ничего не забыть.

SQL

Почти неизбежно, что вам, как инженеру данных, зададут вопросы по SQL.

Типичные вопросы:

  • объединение с фильтрацией;
  • последовательные объединения;
  • формирование подзапросов.

Базовые задачи на знание SQL

Эти первые несколько проблем помогут вам на разных концепциях понять, какой у вас уровень.

Комплексные запросы

Задача: В городе X построен новый стадион. Каждый день его посещает много людей, и статистика сохраняется в виде следующих столбцов: id, дата посещения, количество людей.

Напишите запрос, чтобы отобразить записи, которые имеют 3 или более последовательных строк и количество человек более 100 (включительно).

Задача: В таблице находится список сотрудников.

Data Engineer: учебное пособие для прохождения собеседования 1

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

Дополнительно: Таблица содержит все отделы компании:

Data Engineer: учебное пособие для прохождения собеседования 2

Для приведённых выше таблиц ваш запрос SQL должен возвращать следующие строки (порядок строк не имеет значения).

Data Engineer: учебное пособие для прохождения собеседования 3

Задача: Для заданной таблицы напишите SQL-запрос, чтобы найти идентификаторы всех дат с более высокой температурой по сравнению с предыдущими датами.

Data Engineer: учебное пособие для прохождения собеседования 4

Например, верните следующие идентификаторы для приведённой выше таблицы:

Data Engineer: учебное пособие для прохождения собеседования 5

Aggregation

Задача: таблица Trips содержит все поездки такси. Каждая поездка имеет уникальный идентификатор, в то время как Client_Id и Driver_Id являются внешними ключами для Users Id в таблицеUsers. Статус является типом ENUM («завершено», «отменено водителем», «отменено клиентом»).

Напишите SQL запрос, чтобы найти число отменённых заявок среди незаблокированных пользователей с 1 по 3 октября 2013 года.

Расширенные объединения (Advanced Join)

Задача: Мэри — учитель в средней школе, и у неё есть таблица seat, в которой записаны имена учеников с их соответствующими местами.

Столбец ID является неизменным. Мэри хочет поменять местами соседствующих студентов.

Можете ли вы написать запрос SQL для вывода результата Мэри?

Простые объединения (Simple Joins)

Задача: Кетти даёт Еве задание создать отчёт, содержащий три столбца: Имя, Оценка и Отметка. Кетти не нужны имена тех учеников, которые получили оценку ниже 8. Отчёт должен быть составлен в порядке убывания по классам — более высокие оценки вводятся первыми. Если у двух и более учеников одинаковые оценки (8–10), упорядочите их по алфавиту. Наконец, если оценка ниже 8, используйте «NULL» в качестве имени и перечислите их по оценкам в порядке убывания. Если у двух и более учеников одинаковые оценки (1–7), упорядочите учеников по их оценкам в порядке возрастания.

Напишите запрос, чтобы помочь Еве.

Ранжирование количества строк и аналитические функции

Задача: написать запрос SQL, чтобы получить n-ую самую высокую зарплату из таблицы Employee:

Data Engineer: учебное пособие для прохождения собеседования 6
Data Engineer: учебное пособие для прохождения собеседования 7

Сложные запросы Self Join

Задача: Приведена таблица, содержащая два столбца: X и Y.

Две пары (X 1 , Y 1) и (X 2 , Y 2) называются симметричными парами, если X 1 = Y 2 и X 2 = Y 1.

Напишите запрос для вывода всех таких симметричных пар в порядке возрастания величины X.

Дополнительно

Если вам нужно больше задач SQL:

Вы также можете посмотреть обучающие видео (на английском языке):

Решение SQL задач после просмотра обучающих видео

Как только вы закончите смотреть видео по SQL, посмотрите задачи ниже. Если остались пробелы, запишите темы, в которых вы ещё слабы, и больше работайте над ними.

Базы данных, ETL и хранилища данных

Data Engineer: учебное пособие для прохождения собеседования 8

Чтобы разобраться с вопросами по проектированию баз данных, ETL и хранилищ данных, посмотрите несколько видеороликов. А также рассмотрите несколько концепций баз данных, которые вы могли бы попробовать разработать самостоятельно.

Видео:

Самостоятельная практика и возникающие проблемы

Перечислим несколько бизнес-систем, которые вы можете попытаться разработать. Сначала рекомендуется создать реляционную базу данных, а затем подумать о том, как бы вы разработали ETL и DW, которые полагаются на неё:

  • Приложение для знакомств;
  • Прокат велосипедов;
  • Приложения Music Streaming;
  • Сайта поиска работы;
  • Веб-сайта Udemy.

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

Задачи по программированию

Инженеры данных обычно используют несколько языков, и Python среди них наиболее распространённый. Если требуется много работать с Hadoop, то хорошо подойдёт Java, а если вы работаете в Windows, то также Powershell.

Обычно вопросы бывают двух типов: прикладные и по алгоритмам и структурам данных.

Алгоритмы и структуры данных

Задачи перед подготовкой:

Теперь, когда вы решили эти задачи, давайте начнём рассмотрение других концепций по следующим видео.

Структуры данных

Big O

Введение в анализ сложности алгоритмов

Ещё варианты прохождения интервью:

Задачи после изучения

Как только вы закончили с видео, попробуйте свои силы в решении задач. Следите за тем, насколько уверенно вы себя чувствовали, работая над ними.

Если вы всё ещё чувствуете, что нуждаетесь в помощи, подумайте о прохождении курса по алгоритмам и структурам данных.

Задачи оперативного программирования

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

Data Engineer: учебное пособие для прохождения собеседования 9

Проектирование систем

Вопросы по проектированию систем встречаются не так часто. Тем не менее, лучше быть к ним готовым.

Потратив некоторое время на просмотр видео, вы будете готовы ко всему, что интервьюер может попросить вас сделать:

Курсы

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

Англоязычные курсы на Udemy:

  • Bootcamp «Интервью программиста»: алгоритмы + структуры данных.
  • Концепции хранилища данных: от базовых до расширенных.
  • Структуры данных и алгоритмы Bootcamp.

Заключение

Надеемся, что этот обзор поможет вам подготовиться к собеседованию на должность Data Engineer. Если вам нужен контрольный список, вы можете найти его здесь.

Следите за новыми постами
Следите за новыми постами по любимым темам
38К открытий38К показов