Co by měl znát začínající datový inženýr: Nejčastější otázky při pohovoru
Profese datového inženýra je ve světě IT stále běžnější a přitahuje stále více lidí. Dmytro Fedyukov je viceprezident pro práci s daty, zástupce technického ředitele ve společnosti Parimatch Tech a mentor kurzu datového inženýrství na Parimatch Tech Academy. Začínajícím datovým inženýrům radí, jak se připravit na pohovor, čemu firmy věnují pozornost během pohovoru, a proč jsou v této fázi důležitější měkké dovednosti než ty odborné.
Očekávání od začínajícího datového inženýra
Nejprve je třeba, aby zaměstnavatel zjistil několik informací týkajících se kandidátů.
1. Motivace kandidáta
Juniorská pozice je o učení. Tým, který přijme začínajícího specialistu, očekává, že bude dělat pokroky. V souladu s tím by ti, kteří jsou připraveni se učit, měli mít již splněné určité kroky. Pokud osoba absolvovala určité kurzy, má titul nebo jej právě získává, je to dobré znamení. Pokud uchazeč nemá absolutně nic, o čem by se dalo mluvit, nebo naopak absolvuje desítky kurzů najednou, je to špatné znamení. Protože v prvním případě člověk pravděpodobně nechce skutečně pokročit a v druhém případě zcela nerozumí tomu, co dělá a kam směřuje.
2. Měkké dovednosti a jejich úroveň
Někdy je pro člena týmu důležitější mít lepší měkké dovednosti než „tvrdé“ technické dovednosti. Juniorští specialisté jsou právě takovým případem. Začátek kariéry je obdobím, kdy využíváte jednu část svých dovedností ke zvládnutí jiné. V souladu s tím musí začínající datový inženýr využívat všechny silné stránky své povahy, aby dosáhl pokroku. Je třeba umět kompetentně komunikovat s lidmi, kteří juniorního specialistu učí, efektivně vstřebávat nové informace a zpětnou vazbu od kolegů, umět zdůvodnit vlastní rozhodnutí a do jisté míry i improvizovat. Právě na to často dbají personalisté při pohovorech.
3. Typ myšlení
V profesi datového inženýra je nejdůležitější právě inženýrská část. Inženýři jsou typem lidí, kteří nacházejí řešení jakéhokoli typu problému bez ohledu na to, zda má zkušenost s určitým ‚stackem‘ nebo technologií. Datový inženýr musí být často všestranný: někde napsat kód v Pythonu, někde v Bashi, přečíst kód v Javě atd.
A nyní k odborným otázkám…
Datový inženýr junior by měl vědět nebo alespoň umět mluvit o:
git
- git clone
- git config
- git pull
- git push
- git merge
- git add
- git branch -D
- git checkout -b atd.
Python
- Virtuální prostředí
- Pyenv
- Poetry
- Pip
- Datové struktury
- Rozšiřování
- Dekorátory
- Moduly
- Cykly
- Třídy
- Asynchronní programování
Docker & Kubernetes
- Sestavení dockeru
- Spuštění dockeru
- Docker cp
- Co je to container?
- Co je to pod a jak se liší od containeru?
Terraform
- Terraform init
- Terraform plan
- Terraform apply
- Struktura souborů projektu terraform
- loops
- Templatefile
Datové inženýrství
- Co je MapReduce?
- Co je HDFS?
- Co je to partitioning?
- Jak je Hadoop uspořádán?
- Co je lambda architecture?
Datové typy a databáze
- Co je to databáze?
- Co jsou primární a sekundární klíče?
- Co jsou to indexy?
- Co je normalizace a denormalizace?
- Jaký je rozdíl mezi relačním a nerelačním modelem?
- Co jsou to formáty velkých dat?
- K čemu slouží databáze NoSQL?
- Co je to operace CRUD?
Linux
- Editory: nano, micro, sublime, vi
- Správci balíčků: apt-get, apk, brew
- Proměnné prostředí
- cd ls -a | -lah
- chmod
- cat
- sed
- grep
- | (pipe)
- && atd.
Síť: HTTP/HTTPS, TCP/IP
SQL
- Co znamená SQL? Rozluštěte zkratku a popište její účel.
- Jaký příkaz SQL se používá k vložení dat do tabulky?
- Jak byste pomocí jazyka SQL vybrali z tabulky 01/27/2021 (název sloupce registrace datum) uživatele (sloupec příjmení jméno), jejichž jméno začíná latinským písmenem “T” (nerozlišuje se velikost písmen)?
- Zobrazí operátor OR všechny záznamy, které odpovídají alespoň jedné z podmínek? Vrátí příkaz AND všechny záznamy, pokud jsou všechny podmínky pravdivé? (odpověď by měla být nepravdivá\pravdivá).
- Jaký výraz SQL je použit k seřazení výsledků?
- Co jsou to agregační funkce SQL? Uveďte příklad. A příklad požadavku na jednu agregační funkci podle vašeho názoru.
- Jak pomocí jazyka SQL vypočítat medián a směrodatnou odchylku hodnoty Uveďte příklady požadavku.
- Jaký je rozdíl mezi COUNT (DISTINCT (player_id)) a APPROXIMATE COUNT DISTINCT (player_id)? Který výraz pracuje rychleji ve velkých souborech dat? Bude zpracování dat stejné?
- K čemu slouží funkce RANDOM() v jazyce SQL? Jaké typy úloh lze použít?
- Co jsou to okenní funkce? K čemu se používají? Schopnost uvést příklady okenních funkcí.
Kódování v reálném čase
Živé kódování během pohovoru s datovým inženýrem není zdaleka povinnou fází. Používá se ve většině případů, kdy úroveň kandidáta nebyla během rozhovoru plně pochopena. Úkol živého kódování je pochopit, zda kandidát rozumí tomu co dělá a proč; zda rozumí základním věcem, jako jsou operátory, cykly, porovnávání vzorů atd. Pro začátečníky proto existuje jediná rada – snažte se proniknout do podstaty toho, co se učíte. Ne podle knihy, ale tak, jak tomu rozumíte. Dělejte chyby, opravujte je a učte se dál.
Foto: archiv