- Technické pohovory v reklamních technologiích se zaměřují na středně pokročilé znalosti SQL, Pythonu s PANDAmi a analytické dovednosti.
- Je nezbytné zvládnout JOIN, GROUP BY, poddotazy a okenní funkce v SQL i jejich ekvivalenty v PANDAS.
- Pochopení metrik hodnocení modelů, jako je přesnost, F1 nebo ROC-AUC, přidává hodnotu v rolích pokročilé analytiky.
- Efektivní příprava kombinuje teorii, mnoho praktických cvičení a učení se hlasitému vysvětlování argumentace.
Pokud se připravujete na pohovor v oblasti reklamních technologií , digitální analytiky nebo analýzy dat , dříve či později budete muset čelit obávanému technickému testu. V něm firmy ověří, zda skutečně ovládáte to, co uvádíte v životopise: SQL pro extrakci dat, Python pro jejich zpracování a analýzu a analytické myšlení, abyste se neztratili mezi všemi tabulkami a skripty.
Dobrou zprávou je, že technické pohovory nejsou žádná magie: obvykle se točí kolem stejných bloků jako SQL, Python a vyhodnocování modelů . Pokud důkladně porozumíte základům, procvičíte si je v reálných situacích a naučíte se vysvětlovat své uvažování, budete mít oproti ostatním kandidátům značnou výhodu.
Proč jsou technické pohovory děsivé (a jak se z nich vypořádat)
V oblasti datových analytiků nebo produktových pracovníků v reklamních technologiích technické pohovory obvykle kombinují koncepční otázky s praktickými cvičeními naživo . Můžete být požádáni o vysvětlení funkce klauzule SQL nebo o vyřešení obchodního případu zahrnujícího data programatických reklamních kampaní.
Obvykle budete hodnoceni na třech úrovních: SQL na střední úrovni (JOIN, GROUP BY, poddotazy, okenní funkce), Python orientovaný na data (pandy, čištění, agregace, slučování) a vaše schopnost interpretovat výsledky a sdělovat zjištění . Nehledají seniorního datového vědce, ale spíše někoho, kdo umí pracovat s daty robustním a spolehlivým způsobem.
Typickou chybou, které se mnoho kandidátů dopouští, je soustředění se na memorování syntaxe a zapomínání na procvičování kompletních cvičení , podobných těm, se kterými se setkáte na platformách jako HackerRank, StrataScratch nebo v interních testech samotných společností. Vaším cílem by mělo být dorazit na pohovor s již vyřešenými desítkami velmi podobných dotazů a skriptů.
Úroveň SQL je obvykle vyžadována u pohovorů na pozice v reklamních technologiích a datových analyticích
Pro pozici analytika v prostředí reklamních technologií nebo digitálního marketingu firmy očekávají, že budete zdatní v klasickém relačním SQL : extrakce dat z více tabulek, kombinování, seskupování, filtrování a vytváření užitečných metrik. Nebudou vyžadovány dovednosti v oblasti administrace databází, ale měli byste být schopni pracovat s středně složitými dotazy.
Test obvykle zahrnuje dotazy, které kombinují INNER JOIN, LEFT JOIN, filtry s klauzulemi WHERE, agregace s GROUP BY a některé podmínky pro agregace pomocí klauzulí HAVING. Odtud, v mírně pokročilejších pozicích, je velmi běžné vidět poddotazy a okenní funkce pro hodnocení, kumulativní součty a porovnávání řádků.
V reklamních technologiích budete pravděpodobně odpovídat na obchodní otázky typu „Které kampaně mají lepší míru prokliku než průměr v daném odvětví?“ nebo „Kteří vydavatelé ztrácejí zobrazení ve srovnání s minulým měsícem?“ Efektivní řešení těchto otázek obvykle vyžaduje základní znalost korelovaných poddotazů a okenních funkcí.
Základní SQL otázky, které se často objevují (a jak na ně odpovědět)
Téměř každý datově orientovaný technický pohovor obsahuje sadu základních otázek z teorie SQL . Jejich cílem není vás nachytat, ale spíše zajistit, abyste měli solidní základ.
Jednou z nejčastěji kladených otázek je rozdíl mezi WHERE a HAVING . Nejjasnějším způsobem, jak to vysvětlit, je, že WHERE filtruje jednotlivé řádky před seskupením , zatímco HAVING filtruje skupiny, které již byly agregovány . Můžete také zmínit, že podmínky zahrnující agregační funkce (COUNT, SUM, AVG atd.) by měly být umístěny v HAVING, nikoli v WHERE.
Další klasickou otázkou je, jaké typy operací JOIN existují a kdy je použít: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN a v některých případech CROSS JOIN nebo self-join. V analýze dat se LEFT JOIN hojně používá, když chcete zachovat celou primární datovou sadu (například všechny uživatele), i když v sekundární tabulce nejsou žádné přidružené záznamy (například nákupy).
Příklady základních SQL dotazů a jejich logika
Abyste si udělali představu o „minimální rozumné“ úrovni, měli byste být schopni psát dotazy z paměti, jako je výběr konkrétních sloupců, filtrování řádků a řazení výsledků . Na velmi základní úrovni mezi typické otázky patří: jak extrahovat všechny sloupce z tabulky, jak vybrat pouze některé sloupce nebo jak použít čitelné aliasy s AS.
Také se často ptáme na klauzuli WHERE s více podmínkami kombinujícími operátory AND, OR a NOT, nebo na to, jak používat porovnávací operátory (<, <=, >, >=, =) pro číselné hodnoty i data. Mnoho společností klade důraz na filtry NULL , kde pouhé použití znaménka rovnosti nestačí; je třeba použít IS NULL nebo IS NOT NULL.
Další klasikou je textové filtrování s funkcí LIKE a vzory s použitím zástupných znaků % a _. Můžete například najít kampaně, jejichž názvy obsahují konkrétní slovo, nebo uživatele, jejichž e-mailové adresy končí na určitou doménu. Je důležité vysvětlit, že LIKE '%text%' vyhledává vzor kdekoli v řetězci.
Tato základní část se obvykle zabývá aktualizací záznamů pomocí příkazu UPDATE a filtrováním upravených řádků pomocí příkazu WHERE a také mazáním řádků pomocí příkazu DELETE FROM s použitím podmínek CLEAR. Je nezbytné vždy zdůraznit důležitost použití specifické klauzule WHERE, abyste zabránili nechtěnému smazání poloviny tabulky.
Mezilehlé dotazy: GROUP BY, HAVING, poddotazy a UNION
Jakmile se posunete nad úroveň juniorů, téměř každá firma si začne vážit vaší znalosti kombinace GROUP BY, agregačních funkcí a filtrů na agregovaných funkcích s funkcí HAVING . To je to, co budete denně používat ke generování reportů o výkonu kampaní, publika a kreativ.
Funguje to takto: Funkce GROUP BY seskupuje řádky podle jednoho nebo více sloupců a na tyto skupiny můžete použít funkce SUM, COUNT, AVG, MIN a MAX pro výpočet metrik. Následuje funkce HAVING, která zachovává pouze skupiny, které splňují podmínku, například zákazníky s prodejem nad určitou prahovou hodnotou.
Dalším opakujícím se tématem jsou poddotazy : dotaz v rámci jiného dotazu. Často se používají k filtrování podle hodnot vypočítaných v předchozím kroku, například k výběru zákazníků s prodeji nad globálním průměrem nebo kampaní se zobrazeními nad 90. percentilem.
Často se vás také ptají na rozdíl mezi UNION a UNION ALL . UNION kombinuje dvě sady výsledků se stejným schématem a odstraňuje duplikáty; UNION ALL dělá totéž, ale zachovává všechny řádky, i když se opakují. V analýze dat budete často preferovat UNION ALL z důvodu výkonu a proto, že chcete zachovat všechny původní záznamy.
Funkce okna: další skok v SQL
Funkce oken se staly standardem v technickém testování na určité úrovni, zejména pro role související s reklamními technologiemi, kde je třeba analyzovat trendy v čase, umístění kampaní nebo celkové investice.
Klíčovou myšlenkou je, že okenní funkce vypočítává hodnotu z množiny řádků souvisejících s aktuálním řádkem , ale bez sbalení výsledku, jako to dělá GROUP BY. Jinými slovy, stále vidíte každý jednotlivý řádek, ale doplněný agregací vypočítanou z „okna“ dat.
Typická syntaxe spočívá v použití funkce (SUM, AVG, RANK atd.) následované funkcí OVER, a v rámci funkce OVER definovat rozdělení (PARTITION BY) a pořadí (ORDER BY). Například výpočet pořadí prodejů podle prodejce nebo kumulativního počtu zobrazení za den.
Pokud chcete prokázat svou odbornost, měli byste se seznámit s funkcemi jako RANK, DENSE_RANK, ROW_NUMBER, LAG a LEAD . Jsou velmi užitečné pro hodnocení kampaní na základě jejich výkonu, porovnávání jednotlivých období s předchozím nebo identifikaci meziročních odchylek v klíčových metrikách.
CTE, kumulativní součty a klouzavé průměry
V moderních pracovních pohovorech se vysoce cení čitelnost vašeho SQL kódu. Proto se vás často ptají na Common Table Expressions (CTE) . CTE je v podstatě typ pojmenované dočasné tabulky definované pomocí klauzulí WITH, která existuje pouze během provádění dotazu.
CTE se používají k rozdělení složitých dotazů do logických bloků a opětovnému použití mezivýsledků. Například nejprve vypočítáte denní metriky pro každou kampaň v CTE a poté v hlavním dotazu provedete další agregace nebo filtrování daného výsledku.
Dalším velmi častým cvičením je výpočet průběžného součtu pomocí funkce SUM jako okenní funkce. V reklamních technologiích je běžné, že se vás někdo ptá na kumulativní zobrazení, kliknutí nebo výdaje, aby se zjistilo, jak si kampaň vede v čase.
S tím souvisí klouzavé průměry , u kterých se AVG aplikuje jako okenní funkce na posunutý řádkový rámec (například dvě předchozí data a aktuální datum). Jedná se o jednoduchý způsob, jak vyhladit časové řady a detekovat trendy, aniž by se bylo nutné tolik spoléhat na denní vrcholy.
Pro datového analytika je obvykle vyžadována úroveň Pythonu
Ve většině pozic datových analytiků (včetně reklamních technologií) firmy neočekávají, že budete guru strojového učení, ale očekávají, že budete mít praktickou znalost Pythonu s PANDAS . Obvykle budete požádáni o načítání datových sad, jejich čištění, transformaci a získávání jednoduchých metrik nebo vizualizací.
Testy v Pythonu se obvykle zaměřují na operace, jako je čtení dat ze souborů CSV , kontrola hodnot null a typů sloupců, filtrování řádků, vytváření nových sloupců, agregace pomocí groupby a spojení mezi datovými rámci (DataFrames). V mnoha případech je formulace téměř identická s SQL částí, ale ve formátu PANDAS.
Není běžné, že se po vás v rámci testu od analytiků vyžaduje vytváření složitých modelů od nuly, i když analytici mohou ocenit vaši schopnost propojit se se scikit-learn pro trénování základního modelu a především vaši znalost základních metrik pro měření jeho výkonu.
Základní operace s PANDAMI, které byste měli zvládnout
Pro úspěšné dokončení jakéhokoli cvičení s daty v Pythonu musíte ovládat základní operace s datovými rámci (DataFrames). Prvním krokem je obvykle načtení souboru pomocí metody `read_csv` a prozkoumání jeho struktury metodami jako `head()`, `info()` nebo `describe()`.
Obvykle se také objevuje část o čištění hodnot null : počítání počtu hodnot null ve sloupci pomocí isnull().sum(), rozhodování, zda smazat celé řádky nebo sloupce pomocí dropna() nebo doplnit chybějící pomocí fillna(), například pomocí průměru nebo mediánu sloupce.
Pokud jde o filtry, budete požádáni o vytvoření podmínek na číselných nebo kategoriálních sloupcích, například o výběr prodejů nad určitou částku nebo řádků, které splňují několik podmínek v kombinaci s & a |. Klíčem je vědět, jak bez váhání psát funkci df .
Vysvětlení funkce `groupby` v PANDAS je téměř vždy zahrnuto, protože je to přímý ekvivalent funkce `GROUP BY` v SQL. Seskupíte podle jednoho nebo více sloupců a poté použijete agregace jako `sum`, `mean`, `count` atd. Syntaxe `groupby('column').agg()` je nezbytná.
Spojuje a slučuje mezi datovými rámci (DataFrames).
Stejně jako je zvládnutí JOINů nezbytné v SQL, je zvládnutí pd.merge povinné v PANDAS . Firmy budou chtít zjistit, zda víte, jak spojovat datové sady, které sdílejí klíč, například tabulku uživatelů s jinou událostí nebo nákupů.
Funkce merge bere dva datové rámce (DataFrames), které mají být spojeny, klíčový sloupec (on) a typ spojení (how), který může být „left“, „right“, „inner“ nebo „outer“, stejně jako v SQL. V analýze dat se levé spojení primárně používá k zachování hlavní datové sady a přidání atributů nebo metrik ze sekundárních tabulek.
V pohovoru je dobré zmínit detaily, například co se stane, když se na obou stranách nacházejí duplicitní klíče, nebo jak řešit konflikty názvů sloupců s příponami parametrů. To vyjadřuje vyšší úroveň vyspělosti.
Typické, spíše teoretické otázky k Pythonu
Kromě PANDA mnoho pohovorů obsahuje krátký blok obecných otázek o Pythonu , které ověřují vaše znalosti jazyka. Obvykle se jedná o krátké otázky týkající se funkcí, paměti, datových typů nebo malých částí syntaxe.
Mezi témata, která se objevují opakovaně, patří automatická správa paměti v Pythonu, založená na soukromé haldě, ke které uživatel nemá přímý přístup, a garbage collector, který je zodpovědný za uvolňování objektů, které již nemají reference.
Je také běžné, že jste požádáni o porovnání Pythonu s Javou , ne proto, abyste vyhlásili vítěze, ale abyste ukázali, že rozumíte rozdílům: Python je dynamičtější, s výstižnější syntaxí, ideální pro prototypování a datovou vědu, zatímco Java má tendenci dominovat v korporátnějších a vysoce výkonných ekosystémech.
Další typické otázky se točí kolem lambda výrazů (anonymní funkce pro jednoduché operace), procesů picklování/odpicklování pro serializaci objektů na bajty a jejich načítání nebo rozdílu mezi seznamy a n-ticemi, kde první jsou měnitelné a definovány hranatými závorkami a druhé jsou neměnné a definovány kulatými závorkami.
Více klíčových konceptů Pythonu v pohovorech
Často se vás někdo ptá, jak v Pythonu odstranit nebo zkopírovat objekt . Obvykle stačí vysvětlit, že k odstranění odkazu lze použít příkaz `del` a že mělké kopie se provádějí pomocí `copy.copy()`, zatímco hluboké kopie vyžadují `copy.deepcopy()`.
Dalším konceptem, který se může objevit, zejména ve více profilech backendu, je tzv. efekt dogpile , který popisuje scénář, ve kterém mnoho uživatelů nebo procesů útočí na zdroj (například webovou stránku nebo mezipaměť) současně a saturuje systém.
V souvislosti s ekosystémem se můžete setkat také s otázkami ohledně databází, které lze používat s Pythonem . Nejrozumnějším přístupem je zmínit některé populární, jako jsou MySQL, PostgreSQL, SQLite, MongoDB a Oracle, a poznamenat, že Python se obecně dobře integruje s širokou škálou relačních a NoSQL databázových strojů.
Nakonec se často objevují jednodušší otázky, například jak seřadit slovník pomocí položek seřazených podle typu, co je jmenný prostor a k čemu se používá (přiřazování jmen k objektům v různých oborech platnosti) nebo jak spustit podproces pomocí modulu subprocess s funkcemi jako run() nebo Popen().
Metriky pro vyhodnocování modelů v Pythonu: minimum, které byste měli znát
Ačkoli mnoho pozic analytiků nevyžaduje navrhování architektur hlubokého učení, je běžné, že jste obeznámeni se základními metrikami pro hodnocení klasifikačních modelů , zejména pokud se jedná o datové produkty, atribuci kampaní nebo detekci podvodů v reklamních technologiích.
Výchozím bodem je matice zmatku , která shrnuje úspěchy a neúspěchy binárního nebo vícetřídního klasifikátoru. V binárním případě je rozdělena na skutečně pozitivní (TP), skutečně negativní (TN), falešně pozitivní (FP) a falešně negativní (FN). Důkladné pochopení těchto čtyř kategorií je klíčové.
Z matice se odvozují metriky, jako je přesnost , která měří procento správných predikcí z celkového počtu; preciznost (TP / pozitivní predikce); a úplnost nebo citlivost (TP / skutečné pozitivní predikce). Poslední dvě jsou obzvláště důležité, když jsou třídy nevyvážené.
Skóre F1 kombinuje přesnost a úplnost pomocí harmonického průměru a penalizuje obzvláště nízké skóre v obou případech. Je to běžná metrika v situacích, kdy jsou falešně pozitivní i falešně negativní výsledky nákladné, jako je detekce podvodů, bodování potenciálních zákazníků nebo detekce nemocí.
Další pokročilé metriky: ROC-AUC, logloss, Jaccard a další
U pozic se silnější složkou datové vědy nebo marketingové analytiky se společnosti zaměřují na to, zda zvládáte pokročilejší metriky, jako je ROC-AUC , která měří plochu pod ROC křivkou a odráží schopnost modelu oddělovat třídy.
ROC křivka představuje vztah mezi mírou skutečně pozitivních výsledků (úplnost) a mírou falešně pozitivních výsledků (1 – specificita) pro různé rozhodovací prahy. Náhodný model by se nacházel na diagonále, zatímco dobrý model by se nacházel blíže k levému hornímu rohu. Čím větší je plocha pod křivkou, tím lepší je rozlišovací schopnost.
Další běžnou metrikou je logaritmická ztráta (logloss) , která hodnotí kvalitu predikovaných pravděpodobností a silně penalizuje přehnanou sebedůvěru a chyby. Perfektní model by měl logaritmickou ztrátu 0 a obecně platí, že čím nižší je logaritmická ztráta, tím lépe.
Mohou se vás také zeptat na Jaccardův index , který měří podobnost mezi dvěma množinami jako velikost průniku dělenou velikostí sjednocení. Používá se mimo jiné k hodnocení klasifikátorů, segmentace a doporučovacích systémů.
V některých kontextech se zmiňují grafy zisku a nárůstu , které ukazují, jaké procento cílů oslovíte pouze s použitím části populace (například 20 % nejlepších uživatelů hodnocených vaším modelem). Toto se v marketingu široce používá k rozhodování o tom, na koho se zaměřit jako první.
Kolmogorov-Smirnov, Giniho koeficient a hloubkové hodnocení
Pokud se společnost silně zaměřuje na skórovací nebo rizikové modely, mohou se objevit metriky, jako je Kolmogorov-Smirnovova (KS) statistika , která měří stupeň oddělení mezi rozdělením pozitivních a negativních skóre.
Hodnota KS blízká 100 (v procentech) znamená, že model odděluje obě populace téměř dokonale; hodnota blízká 0 znamená, že model nerozlišuje lépe než náhodou. V praxi se reálné modely pohybují v mezilehlých hodnotách a jsou vzájemně porovnávány, aby se vybrala ta nejlepší.
Giniho koeficient je další metrika odvozená z ROC-AUC pomocí vzorce Gini = 2 × AUC – 1. Je velmi oblíbený v úvěrech a pojišťovnictví a interpretuje se také jako míra nerovnosti: čím vyšší je Gini, tím větší je schopnost modelu koncentrovat skutečně pozitivní hodnoty při vyšších skóre.
V pokročilejších pohovorech můžete být požádáni o vysvětlení, jak jsou tyto metriky implementovány v Pythonu pomocí scikit-learn (např. confusion_matrix, accuracy_score, roc_auc_score, f1_score…), a o komentář k tomu, kdy byste každou z nich použili v závislosti na povaze problému a nerovnováze ve třídě.
Jak strukturovat své odpovědi během technického pohovoru
Kromě kódu, který píšete, tazatelé věnují velkou pozornost i tomu, jak myslíte a jak se vysvětlujete . Špatně strukturovaná odpověď vás může vykreslit jako mladšího člověka, než ve skutečnosti jste, i když znáte správné řešení.
Velmi užitečný přístup k zodpovězení technických otázek je následující: nejprve vysvětlete koncept jednou větou , poté uveďte konkrétní příklad (ideálně spojený s jedním z vašich vlastních projektů) a v případě potřeby zmiňte alternativy nebo nuance . Toto funguje stejně dobře pro metriky SQL, Pythonu nebo modelů.
Například, pokud se vás někdo zeptá, k čemu slouží CTE, můžete říct, že se jedná o pojmenovaný dočasný poddotaz, který zlepšuje čitelnost složitých dotazů, dodat, že se používá, když potřebujete mezivýsledek několikrát znovu použít, a zmínit, že v některých případech by mohl být nahrazen vnořenými poddotazy, i když je to méně jasné.
Klíčové je také myslet nahlas . Pokud se zaseknete, nezůstávejte zticha: verbalizujte, co se snažíte udělat, jaké informace vám chybí, jaké předpoklady děláte. To pomůže tazateli pochopit váš myšlenkový proces a někdy vám to dokonce poskytne vodítka nebo objasnění, která usnadní další postup.
Nejčastější chyby v technických datových rozhovorech
Mnoho kandidátů je vyřazeno ne proto, že by jim chyběly dostatečné znalosti SQL nebo Pythonu, ale kvůli kombinaci špatné přípravy a komunikačních chyb . Je nezbytné si být plně vědom běžných úskalí, abyste se jim vyhnuli.
Prvním je memorování bez porozumění . Znalost syntaxe funkce RANK nebo lambda není příliš užitečná, pokud nedokážete vysvětlit, v jakých případech byste tyto nástroje použili nebo proč jsou vhodnější než jiné alternativy.
Další velmi častou chybou je neposouzení kvality dat v cvičeních. Pokud máte datovou sadu, je vhodné před zahájením agregace zkontrolovat nulové hodnoty, duplikáty nebo odlehlé hodnoty, které by mohly zkreslit analýzu. To svědčí o zdravém úsudku a praktických zkušenostech.
Je také velmi škodlivé vyhýbat se kladení upřesňujících otázek . Například v obchodním případu týkajícím se reklamních kampaní dává naprostý smysl ptát se na sezónnost, cílový časový rámec, zda se metriky hledají na uživatele nebo na zobrazení atd. Mlčení a vytváření předpokladů často vede k řešením, která nejsou v souladu s tím, co měl tazatel na mysli.
A konečně, vyhněte se přístupu „překódování“: vytváření zbytečně složitých řešení, když by dotaz nebo skript mohl být jednodušší. V reálném pracovním prostředí se cení srozumitelnost, udržovatelnost a efektivita , nikoli řešení podobná hádankám.
Intenzivní dvoutýdenní tréninkový plán
Pokud máte před pohovorem omezený čas, můžete se řídit zkráceným plánem, který pokrývá tři klíčové oblasti: SQL, Python s PANDAS a praktické aplikace. Za 14 dní zázraky nedokážete, ale můžete dorazit se solidní úrovní znalostí a rozumnou sebedůvěrou.
Během prvních několika dnů je vhodné zaměřit se na SQL pro začátečníky až středně pokročilé : zopakujte si základní syntaxi, operace JOIN, GROUP BY, poddotazy a nejběžnější okenní funkce. Věnujte čas jak čtení příkladů, tak psaní vlastních dotazů.
Ve druhé fázi se zaměřte na PANDY : načítání dat, čištění, filtrování, seskupování, slučování a rychlá vizualizace pomocí Matplotlib nebo Seaborn. Nemusíte vytvářet složité dashboardy, ale musíte být schopni replikovat v Pythonu stejné transformace, které byste prováděli v SQL.
Pak si vyhraďte několik dní na praktická cvičení na platformách jako HackerRank nebo v repozitářích technických pohovorů. Cílem je zvyknout si na formát, časová omezení a tlak psaní kódu v kontrolovaném prostředí.
Nakonec si vyzkoušejte jednu nebo dvě kompletní simulace pohovoru : vezměte si veřejně dostupný datový soubor, položte rozumné obchodní otázky, vyřešte je pomocí SQL nebo Pythonu a nahlas vysvětlete celé své uvažování, od počátečního průzkumu až po konečné závěry.
Díky dobré kombinaci teoretického přehledu, řízené praxe a realistických cvičení dorazíte na pohovor se solidním základem v SQL na střední úrovni, Pythonu pro analýzu dat a modelových metrikách – což je přesně to, co většina společností v oblasti reklamních technologií a datové analytiky očekává.
