💳 Термінова новина! Trustee Plus — найкраще рішення для розрахунку криптою 👉
Марія БровінськаУвійти в ІТ
27 вересня 2022, 12:27
2022-09-27
Що варто знати початківцю в Data Engineering: поради фахівця, питання на співбесіді
Професія у сфері Data Engineering стає все більш поширеною в IT-світі, і відповідно приваблює все більше людей. Дмитро Федюков, VP of Data, Deputy CTO у Parimatch Tech, а також ментор курсу Data Engineering у Parimatch Tech Academy розповідає, як початківцям дата-інженерам підготуватися до співбесіди, на що компанії звертають увагу під час інтерв’ю та чому софт-скіли на цьому етапі важливіше харда.
Насамперед роботодавцю потрібно зрозуміти кілька фактів про кандидатів.
Мотивація кандидата. Джун — це про навчання. Команда, яка наймає фахівця початкового рівня, очікує, що він прогресуватиме. Відповідно, готовий навчатися вже повинен мати певні кроки у цьому напрямі. Якщо людина пройшла певні курси, має вищу освіту або в процесі її здобуття — це добре. Якщо ж у кандидата зовсім нема про що розповісти, чи навпаки він проходить десятки курсів одночасно — це поганий знак. Бо в першому випадку людина, мабуть, не дуже хоче прогресувати, а в другому не зовсім розуміє, що робить і куди йде.
Наявність та рівень soft skills. Іноді для члена команди важливіше мати кращі софт-скіли, ніж хард-навички. Джуни — це саме той випадок. Початок кар'єри — це коли ти використовуєш одну частину своїх умінь, щоб опанувати іншу. Відповідно, початківцю дата-інженеру потрібно використовувати всі переваги свого характеру, щоб досягти прогресу. Необхідно, щоб така людина могла грамотно спілкуватися людьми, що її навчають, ефективно засвоювала нову інформацію та фідбек від колег, могла аргументувати власні рішення та якоюсь мірою імпровізувати. І на це на співбесіді часто звертають увагу.
Тип мислення. У професії дата-інженера найважливіша саме інженерна частина. Інженери — це той тип людей, які знаходять рішення до будь-якого типу завдань і неважливо, чи володіють вони певним стеком чи технологією. Дата-інженер часто має бути універсальним: десь написати частину коду на Python, десь на Bash, прочитати код на Java тощо.
А тепер до спеціалізованих питань
Джун повинен знати або хоча б мати можливість поспілкуватися про:
git
git clone
git config
git pull
git push
git merge
git add
git branch -D
git checkout -b і т. д.
Python
Віртуальні середовища
Pyenv
Поетрі
Pip
Структури даних
Comprehensions
Декоратори
Модулі
Цикли
Класи
Асинхронне програмування
Docker & Kubernetes
docker build
docker run
docker cp
Що таке контейнер?
Що таке pod і чим він відрізняється від контейнера?
Terraform
terraform init
terraform plan
terraform apply
terraform project files structure
loops
templatefile
Data Engineering
Що таке MapReduce?
Що таке HDFS?
Що таке партиціонування (partitioning)?
Як влаштовано Hadoop?
Що таке лямбда-архітектура?
Типи даних та бази даних
Що таке база даних?
Що таке первинні та вторинні ключі?
Що таке індекси?
Нормалізація та денормалізація — що це?
Чим відрізняються реляційна та нереляційна модель?
Які Big Data формати?
Для чого потрібні бази даних NoSQL?
Що таке операція CRUD?
Linux
Редактори: nano, micro, sublime, vi
Пакетні менеджери: apt-get, apk, brew
Змінні середовища
cd ls -a | -lah
chmod
cat
sed
grep
| (pipe)
&& тощо
Network: HTTP/HTTPS, TCP/IP
SQL
Що означає SQL? Розшифруйте абревіатуру та опишіть призначення.
Яка команда SQL використовується, якщо потрібно вставити дані до таблиці?
Використовуючи SQL, як ви зробите вибірку з таблиці table за 27.01.2021 (назва колонки registration_date) користувачів (колонка last_name), назва яких починається з латинської літери 'T' (без урахування регістру)?
Оператор «OR» — показує всі записи, які відповідають хоча б одній із умов? Оператор AND відображає всі записи, якщо всі умови виконуються? (відповідь має бути False\True)
Який SQL-вираз використовується для сортування результатів?
Що таке агрегатні функції SQL? Наведіть приклад. І приклад запиту однієї агрегаційної функції на вашу думку.
Як за допомогою SQL розрахувати медіану та стандартне відхилення значення? Наведіть приклади запиту.
У чому відмінність виразу COUNT (DISTINCT (player_id)) та APPROXIMATE COUNT DISTINCT (player_id)? Який вираз швидше відпрацьовується у великих масивах даних? Чи однаковим буде процесинг даних?
Що виконує функція RANDOM () у SQL? Які типи завдань можна використати?
Що таке window functions? Для чого вони використовуються? Наведіть приклади Window Function.
Лайвкодинг
Лайвкодинг на інтерв’ю дата-інженера далеко не обов’язковий етап. Його використовують у більшості випадків, коли остаточно не зрозумів рівень кандидата під час розмови. Завдання лайвкодингу схоже — зрозуміти, чи розуміє кандидат, що він робить і навіщо. А також чи розуміє він базові речі: оператори, цикли, патерн-матчинг і т. д. Тому порада початківцям тут одна — намагайтеся вникнути в суть того, що ви вивчаєте: не за книгою, а як розумієте; робіть помилки, виправляйте їх і навчайтеся далі.
УЧАСТЬ В АЗАРТНИХ ІГРАХ МОЖЕ ВИКЛИКАТИ ІГРОВУ ЗАЛЕЖНІСТЬ. ДОТРИМУЙТЕСЯ ПРАВИЛ (ПРИНЦИПІВ) ВІДПОВІДАЛЬНОЇ ГРИ.
Ліцензія видана ТОВ "СЛОТС Ю.ЕЙ." на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 15.09.23 (рішення КРАІЛ №245 від 31.08.2023); ТОВ "СЛОТС Ю.ЕЙ." – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 26.04.2021 (рішення КРАІЛ №150 від 12.04.2021); ТОВ «СПЕЙСИКС» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 08.02.2021 (рішення КРАІЛ №34 від 02.02.2021); ТОВ «ГЕЙМДЕВ» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 16.02.2021 (рішення № 47 від 10.02.2021).