Запитання на співбесіду з SQL та Python для рекламних технологій: повний посібник

Останнє оновлення: 8 квітня 2026
Автор: TecnoDigital
  • Технічні співбесіди в рекламних технологіях зосереджені на середньому рівні SQL, Python з Pandas та аналітичних навичках.
  • Важливо опанувати JOIN, GROUP BY, підзапити та віконні функції як у SQL, так і їх еквіваленти в pandas.
  • Розуміння показників оцінки моделі, таких як точність, F1 або ROC-AUC, додає цінності в ролях розширеної аналітики.
  • Ефективна підготовка поєднує теорію, багато практичних вправ та навчання пояснювати міркування вголос.

питання на співбесіді з рекламних технологій SQL та Python

Якщо ви готуєтеся до співбесіди в галузі рекламних технологій , цифрової аналітики або аналізу даних , рано чи пізно вам доведеться зіткнутися зі страшним технічним тестом. Саме там компанії перевіряють, чи справді ви володієте тим, що вказуєте у своєму резюме: SQL для вилучення даних, Python для їх обробки та аналізу, а також деякими навичками аналітичного мислення, щоб не загубитися серед усіх таблиць та скриптів.

Гарна новина полягає в тому, що технічні співбесіди — це не магія: вони зазвичай обертаються навколо тих самих блоків SQL, Python та оцінки моделей . Якщо ви досконало розумієте основи, практикуєтесь на реальних вправах і навчитеся пояснювати свої міркування, ви матимете значну перевагу над іншими кандидатами.

Чому технічні співбесіди лякають (і як їх уникнути)

параметри штучного інтелекту
Пов'язана стаття:
Параметри штучного інтелекту та як вони формують моделі

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

Зазвичай вас оцінюватимуть за трьома напрямками: SQL середнього рівня (JOIN, GROUP BY, підзапити, віконні функції), Python, орієнтований на дані (pandas, очищення, агрегації, злиття), та ваша здатність інтерпретувати результати та повідомляти про висновки . Вони шукають не старшого спеціаліста з обробки даних, а когось, хто може працювати з даними надійно та безвідмовно.

Типова помилка багатьох кандидатів полягає в тому, що вони зосереджуються на запам'ятовуванні синтаксису та забувають виконувати повні вправи , подібні до тих, з якими ви зіткнетеся на таких платформах, як HackerRank, StrataScratch або у власних внутрішніх тестах компаній. Ваша мета має полягати в тому, щоб прийти на співбесіду, вже розв'язавши десятки дуже схожих запитів та скриптів.

Рівень SQL, який зазвичай вимагається на співбесідах з рекламними технологіями та аналітиками даних

Для роботи аналітика в сфері рекламних технологій або цифрового маркетингу компанії очікують від вас професійного володіння класичним реляційним SQL : вилучення даних з кількох таблиць, об'єднання, групування, фільтрація та створення корисних показників. Вони не вимагатимуть навичок адміністрування баз даних, але ви повинні вміти працювати з помірно складними запитами.

Зазвичай тест включатиме запити, що поєднують INNER JOIN, LEFT JOIN, фільтри з реченнями WHERE, агрегації з GROUP BY та деякі умови для агрегатів з використанням речень HAVING. Далі, на дещо складніших позиціях, дуже часто можна побачити підзапити та віконні функції для ранжування, кумулятивних підсумків та порівняння рядків.

У сфері рекламних технологій ви, ймовірно, відповідатимете на бізнес-запитання на кшталт «Які кампанії мають кращий показник CTR, ніж у середньому по галузі?» або «Які видавці втрачають покази порівняно з минулим місяцем?». Ефективне вирішення цих питань зазвичай вимагає базового розуміння корельованих підзапитів та віконних функцій.

Основні питання SQL, які часто виникають (і як на них відповісти)

Майже кожна технічна співбесіда, орієнтована на дані, включає набір базових теоретичних питань SQL . Вони не намагаються вас викрити, а радше переконатися, що у вас є міцна основа.

Одне з найчастіших запитань — це різниця між WHERE та HAVING . Найзрозуміліший спосіб пояснити це тим, що WHERE фільтрує окремі рядки перед групуванням , тоді як HAVING фільтрує групи, які вже були агреговані . Також можна зазначити, що умови, що включають функції агрегування (COUNT, SUM, AVG тощо), слід розміщувати в HAVING, а не в WHERE.

Ще одне класичне питання полягає в тому, які типи JOIN існують і коли використовувати кожен з них: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN та, в деяких випадках, CROSS JOIN або самоз'єднання. В аналізі даних LEFT JOIN широко використовується, коли потрібно зберегти весь первинний набір даних (наприклад, усіх користувачів), навіть якщо у вторинній таблиці немає пов'язаних записів (наприклад, покупки).

Приклади базових SQL-запитів та їхня логіка

Щоб дати вам уявлення про «мінімально розумний» рівень, ви повинні вміти писати запити з пам'яті, такі як вибір певних стовпців, фільтрація рядків та сортування результатів . На дуже базовому рівні типові питання включають: як витягти всі стовпці з таблиці, як вибрати лише деякі стовпці або як застосувати читабельні псевдоніми за допомогою AS.

Також часто запитують про речення WHERE з кількома умовами, що поєднують AND, OR та NOT, або як використовувати оператори порівняння (<, <=, >, >=, =) як для числових значень, так і для дат. Багато компаній наголошують на NULL- фільтрах , де простого використання знака рівності недостатньо; потрібно використовувати IS NULL або IS NOT NULL.

Ще один класичний спосіб – це текстова фільтрація за допомогою LIKE та шаблонів з використанням символів підстановки % та _. Наприклад, ви можете знайти кампанії, назви яких містять певне слово, або користувачів, чиї адреси електронної пошти закінчуються на певний домен. Важливо пояснити, що LIKE '%text%' шукає шаблон будь-де в рядку.

Зрештою, у цьому базовому розділі зазвичай розглядається, як оновлювати записи за допомогою UPDATE та фільтрувати змінені рядки за допомогою WHERE, а також як видаляти рядки за допомогою DELETE FROM, використовуючи умови clear. Вкрай важливо завжди наголошувати на важливості використання спеціального речення WHERE, щоб уникнути випадкового видалення половини таблиці.

Проміжні запити: GROUP BY, HAVING, підзапити та UNION

Щойно ви перейдете рівень молодшого спеціаліста, майже кожна компанія почне цінувати ваше майстерне володіння поєднанням GROUP BY, агрегатних функцій та фільтрів агрегатів за допомогою HAVING . Це те, що ви використовуватимете щодня для створення звітів про ефективність кампаній, аудиторій та креативів.

  Структурне програмування: усе, що вам потрібно знати

Це працює так: GROUP BY групує рядки за одним або кількома стовпцями, і ви можете застосувати SUM, COUNT, AVG, MIN та MAX до цих груп для обчислення показників. Далі йде HAVING, щоб залишити лише ті групи, які відповідають умові, наприклад, клієнти з продажами вище певного порогу.

Ще однією повторюваною темою є підзапити : запит всередині іншого запиту. Вони часто використовуються для фільтрації за значеннями, обчисленими на попередньому кроці, наприклад, для вибору клієнтів із продажами вище середнього світового показника або кампаній із показами вище 90-го процентиля.

Вас також часто запитують про різницю між UNION та UNION ALL . UNION об'єднує два набори результатів з однаковою схемою та видаляє дублікати; UNION ALL робить те саме, але зберігає всі рядки, навіть якщо вони повторюються. В аналізі даних ви часто віддаєте перевагу UNION ALL з міркувань продуктивності та тому, що хочете зберегти всі оригінальні записи.

Віконні функції: наступний стрибок у SQL

Віконні функції стали стандартом у технічному тестуванні на певному рівні, особливо для ролей, пов'язаних з рекламними технологіями, де потрібно аналізувати тенденції з плином часу, рейтинги кампаній або загальні інвестиції.

Ключова ідея полягає в тому, що віконна функція обчислює значення для набору рядків, пов'язаних з поточним рядком , але без згортання результату, як це робить GROUP BY. Іншими словами, ви все ще бачите кожен окремий рядок, але разом із агрегатом, обчисленим для "вікна" даних.

Типовий синтаксис полягає у використанні функції (SUM, AVG, RANK тощо), за якою йде OVER, і всередині OVER визначає розділ (PARTITION BY) та порядок (ORDER BY). Наприклад, обчислення рейтингу продажів за продавцем або сумарної кількості показів за день.

Якщо ви хочете продемонструвати свою майстерність, вам слід ознайомитися з такими функціями, як RANK, DENSE_RANK, ROW_NUMBER, LAG та LEAD . Вони дуже корисні для ранжування кампаній на основі їхньої ефективності, порівняння кожного періоду з попереднім або виявлення річних коливань ключових показників.

CTE, кумулятивні підсумки та ковзні середні

У сучасних співбесідах на роботу читабельність вашого SQL-коду високо цінується. Саме тому вас часто запитуватимуть про загальні табличні вирази (CTE) . CTE — це, по суті, тип іменованої тимчасової таблиці, визначеної за допомогою речень WITH, яка існує лише під час виконання запиту.

CTE використовуються для розбиття складних запитів на логічні блоки та повторного використання проміжних результатів. Наприклад, спочатку ви обчислюєте щоденні показники для кожної кампанії в CTE, а потім у головному запиті виконуєте додаткові агрегації або фільтрацію цього результату.

Ще однією дуже поширеною вправою є обчислення проміжного підсумку за допомогою SUM як віконної функції. У рекламних технологіях зазвичай запитують сукупну кількість показів, кліків або витрат, щоб побачити, як кампанія працює з часом.

З цим пов'язані ковзні середні , в яких AVG застосовується як віконна функція для зміщеного рядка (наприклад, двох попередніх дат і поточної). Це простий спосіб згладити часові ряди та виявити тенденції, не покладаючись так сильно на щоденні піки.

Рівень Python, який зазвичай потрібен для аналітика даних

На більшості посад аналітика даних (включно з рекламними технологіями) компанії не очікують, що ви будете гуру машинного навчання, але вони очікують практичного володіння Python з pandas . Зазвичай вас просять завантажувати набори даних, очищувати їх, трансформувати та отримувати прості метрики або візуалізації.

Тести Python зазвичай зосереджені на таких операціях, як читання даних з CSV-файлів , перевірка null-значень та типів стовпців, фільтрація рядків, створення нових стовпців, агрегації за допомогою groupby та об'єднання між DataFrames. У багатьох випадках формулювання майже ідентичне частині SQL, але у форматі pandas.

Нечасто трапляється, що в аналітичному тестуванні потрібно створювати складні моделі з нуля, хоча вони можуть оцінити вашу здатність використовувати scikit-learn для навчання базової моделі та, перш за все, ваші знання фундаментальних метрик для вимірювання її продуктивності.

Основні операції з pandas, які вам слід опанувати

Щоб успішно виконати будь-яку вправу з даними на Python, ви повинні добре володіти базовими операціями з DataFrames. Першим кроком зазвичай є завантаження файлу за допомогою `read_csv` та дослідження його структури за допомогою таких методів, як `head()`, `info()` або `describe()`.

Також зазвичай з'являється частина про очищення нульових значень : підрахунок кількості нульових значень у кожному стовпці за допомогою isnull().sum(), рішення про те, чи видаляти цілі рядки або стовпці за допомогою dropna(), чи заповнювати відсутні за допомогою fillna(), наприклад, використовуючи середнє значення або медіану стовпця.

Що стосується фільтрів, вам буде запропоновано створити умови для числових або категоріальних стовпців, щось на кшталт вибору продажів вище певної суми або рядків, які відповідають кільком умовам, поєднаним з & та |. Головне — знати, як писати df без вагань.

Пояснення функції `groupby` в pandas майже завжди включено, оскільки це прямий еквівалент `GROUP BY` в SQL. Ви групуєте за одним або кількома стовпцями, а потім застосовуєте агрегації, такі як `sum`, `mean`, `count` тощо. Синтаксис `groupby('column').agg()` є важливим.

Об'єднує та зливає DataFrames

Так само, як володіння JOIN є важливим у SQL, володіння pd.merge є обов'язковим у pandas . Компанії захочуть дізнатися, чи знаєте ви, як об'єднувати набори даних, які мають спільний ключ, наприклад, таблицю користувачів з іншою таблицею подій або покупок.

Функція злиття (merge) приймає два DataFrames для об'єднання, ключовий стовпець (on) та тип об'єднання (how), який може бути «left», «right», «inner» або «outer», як і в SQL. В аналізі даних ліве об'єднання в основному використовується для збереження основного набору даних та додавання атрибутів або метрик з вторинних таблиць.

  Повний посібник з автоматизації Android: від простих додатків до професійного тестування

На співбесіді гарною ідеєю буде згадати такі деталі, як те, що відбувається, коли з будь-якого боку є дублікати ключів, або як обробляти конфлікти імен стовпців із суфіксами параметрів. Це свідчить про вищий рівень зрілості.

Типові, більш теоретичні питання Python

Окрім pandas, багато співбесід включають короткий блок загальних питань з Python , щоб перевірити ваше розуміння мови. Зазвичай це короткі питання про функції, пам'ять, типи даних або невеликі фрагменти синтаксису.

Серед тем, що з'являються постійно, є автоматичне керування пам'яттю в Python, засноване на закритій купі, до якої користувач не має безпосереднього доступу, та збирач сміття, який відповідає за звільнення об'єктів, які більше не мають посилань.

Також часто просять порівняти Python з Java не для того, щоб оголосити переможця, а щоб продемонструвати, що ви розумієте відмінності: Python динамічніший, з більш лаконічним синтаксисом, ідеально підходить для прототипування та обробки даних, тоді як Java, як правило, домінує в більш корпоративних та високопродуктивних екосистемах.

Інші типові питання стосуються лямбда-виразів (анонімних функцій для простих операцій), процесів піклінгу/розпакування для серіалізації об'єктів у байти та їх отримання, або різниці між списками та кортежами, де перші є змінними та визначаються квадратними дужками, а другі — незмінними та визначаються круглими дужками.

Більше ключових концепцій Python на співбесідах

Часто запитують, як видалити або скопіювати об'єкт у Python. Зазвичай достатньо пояснити, що для видалення посилання можна використовувати оператор `del`, і що поверхневі копії виконуються за допомогою `copy.copy()`, тоді як глибокі копії вимагають `copy.deepcopy()`.

Ще однією концепцією, яка може з'явитися, особливо в більшості профілів бекенду, є так званий ефект «dogpile» , який описує сценарій, за якого багато користувачів або процесів атакують ресурс (наприклад, веб-сайт або кеш) одночасно, перевантажуючи систему.

Щодо екосистеми, ви також можете зіткнутися з питаннями щодо баз даних, які можна використовувати з Python . Найрозумніший підхід — згадати деякі популярні з них, такі як MySQL, PostgreSQL, SQLite, MongoDB та Oracle, і зазначити, що Python загалом добре інтегрується з широким спектром реляційних та NoSQL механізмів баз даних.

Зрештою, часто виникають простіші питання, такі як сортування словника за допомогою відсортованих за елементами елементів, що таке простір імен і для чого він використовується (зв'язування імен з об'єктами в різних областях видимості), або як запустити підпроцес за допомогою модуля підпроцесу з такими функціями, як run() або Popen().

Метрики для оцінки моделей у Python: мінімум, який вам слід знати

Хоча багато посад аналітиків не вимагатимуть від вас розробки архітектур глибокого навчання, зазвичай потрібно бути знайомим з основними метриками для оцінки моделей класифікації , особливо якщо роль пов'язана з продуктами даних, атрибуцією кампаній або виявленням шахрайства в рекламних технологіях.

Відправною точкою є матриця плутанини , яка підсумовує успіхи та невдачі бінарного або багатокласового класифікатора. У бінарному випадку вона розбивається на істинно позитивні (TP), істинно негативні (TN), хибнопозитивні (FP) та хибнонегативні (FN). Глибоке розуміння цих чотирьох категорій є ключовим.

З матриці виводяться такі показники, як точність , яка вимірює відсоток правильних прогнозів від загальної кількості; прецизійність (TP / позитивні прогнози); та повнота або чутливість (TP / фактичні позитивні результати). Ці два останні особливо важливі, коли класи незбалансовані.

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

Інші розширені показники: ROC-AUC, logloss, Jaccard та інші

Для посад із сильнішим компонентом обробки даних або маркетингової аналітики компанії звертають увагу на те, чи володієте ви більш просунутими показниками, такими як ROC-AUC , яка вимірює площу під кривою ROC та відображає здатність моделі розділяти класи.

ROC-крива відображає зв'язок між істинно позитивним рівнем (повністю) та хибнопозитивним рівнем (1 – специфічність) для різних порогів прийняття рішення. Випадкова модель розташовуватиметься на діагональній лінії, тоді як хороша модель буде ближче до верхнього лівого кута. Чим більша площа під кривою, тим краща дискримінаційна здатність.

Ще однією поширеною метрикою є логарифмічна втрата (logloss) , яка оцінює якість передбачуваних ймовірностей, значно караючи за надмірну впевненість та помилки. Ідеальна модель матиме логарифмічну втрату 0, і загалом, чим менша логарифмічна втрата, тим краще.

Вони також можуть запитати вас про індекс Жаккара , який вимірює подібність між двома множинами як розмір перетину, поділений на розмір об'єднання. Він використовується, серед іншого, для оцінки класифікаторів, сегментації та систем рекомендацій.

У деяких контекстах згадуються діаграми приросту та підвищення , які показують, який відсоток цільових груп ви охоплюєте, використовуючи лише частину генеральної сукупності (наприклад, 20% найкращих користувачів, оцінених вашою моделлю). Це широко використовується в маркетингу, щоб вирішити, на кого орієнтуватися в першу чергу.

Колмогорова-Смірнова, коефіцієнт Джині та поглиблена оцінка

Якщо компанія сильно зосереджена на моделях оцінювання або ризиків, можуть з'явитися такі показники, як статистика Колмогорова-Смірнова (КС) , яка вимірює ступінь розділення між розподілами позитивних і негативних балів.

Значення KS, близьке до 100 (у відсотках), вказує на те, що модель майже ідеально розділяє дві популяції; значення, близьке до 0, означає, що модель розрізняє лише випадково. На практиці реальні моделі потрапляють у проміжні значення та порівнюються одна з одною, щоб вибрати найкращу.

  Повний посібник зі зворотної польської нотації

Коефіцієнт Джині – це ще один показник, отриманий з ROC-AUC за формулою Джині = 2 × AUC – 1. Дуже популярний у кредитуванні та страхуванні, він також інтерпретується як міра нерівності: чим вищий Джині, тим більша здатність моделі концентрувати справжні позитивні результати при вищих оцінках.

На більш складних співбесідах вас можуть попросити пояснити, як ці метрики реалізовані в Python за допомогою scikit-learn (наприклад, confusion_matrix, accuracy_score, roc_auc_score, f1_score…), та прокоментувати, коли ви будете використовувати кожну з них залежно від характеру проблеми та дисбалансу класів.

Як структурувати свої відповіді під час технічної співбесіди

Окрім коду, який ви пишете, інтерв'юери звертають пильну увагу на те, як ви думаєте та як ви пояснюєте себе . Погано структурована відповідь може зробити вас здаватися молодшим, ніж ви є насправді, навіть якщо ви знаєте правильне рішення.

Дуже корисний підхід для відповіді на технічні запитання такий: спочатку поясніть концепцію одним реченням , потім наведіть конкретний приклад (в ідеалі пов'язаний з одним із ваших власних проектів) і, якщо доречно, згадайте альтернативи або нюанси . Це однаково добре працює для SQL, Python або метрик моделей.

Наприклад, якщо вас запитають, для чого потрібен CTE, ви можете сказати, що це іменований тимчасовий підзапит, який покращує читабельність складних запитів, додати, що ви використовуєте його, коли вам потрібно повторно використовувати проміжний результат кілька разів, і зазначити, що в деяких випадках його можна замінити вкладеними підзапитами, навіть якщо це менш зрозуміло.

Мислення вголос також є ключовим . Якщо ви застрягли, не мовчіть: сформулюйте вербалізацію того, що ви намагаєтеся зробити, якої інформації вам не вистачає, які припущення ви робите. Це допомагає інтерв'юеру побачити ваш хід думок, а іноді навіть дає вам підказки чи уточнення, які полегшують подальшу роботу.

Найпоширеніші помилки в технічних інтерв'ю з даними

Багатьох кандидатів відсіюють не через брак достатніх навичок SQL або Python, а через поєднання поганої підготовки та помилок у спілкуванні . Вкрай важливо повністю усвідомлювати поширені помилки, щоб їх уникнути.

Перший — це запам'ятовування без розуміння . Знання синтаксису RANK або лямбда-функції не дуже корисне, якщо ви не можете потім пояснити, в яких випадках ви б використовували ці інструменти або чому вони кращі за інші альтернативи.

Ще однією дуже поширеною помилкою є нездатність оцінити якість даних у вправах. Якщо вам надано набір даних, перш ніж розпочати агрегування, бажано перевірити його на наявність нулів, дублікатів або викидів, які можуть спотворити аналіз. Це демонструє здоровий глузд та практичний досвід.

Також дуже шкідливо уникати уточнюючих запитань . Наприклад, у бізнес-кейсі щодо рекламних кампаній цілком логічно запитати про сезонність, цільові часові рамки, чи шукаються показники для кожного користувача чи для кожного показу тощо. Мовчання та припущення часто призводять до рішень, які погано узгоджуються з тим, що мав на увазі інтерв'юер.

Зрештою, уникайте підходу «перекодування»: створення зайво складних рішень, коли запит або скрипт могли б бути простішим. У реальних робочих середовищах цінуються ясність, зручність обслуговування та ефективність , а не рішення, схожі на головоломки.

Інтенсивний план підготовки за два тижні

Якщо у вас обмежений час перед співбесідою, ви можете дотримуватися стислого плану, який охоплює три ключові області: SQL, Python з pandas та практичне застосування. Ви не зробите чудес за 14 днів, але можете прибути з солідним рівнем володіння мовою та достатньою впевненістю.

Протягом перших кількох днів варто зосередитися на SQL для початківців та середнього рівня : розгляньте базовий синтаксис, операції JOIN, GROUP BY, підзапити та найпоширеніші віконні функції. Присвятіть час як читанню прикладів, так і написанню власних запитів.

На другому етапі зосередьтеся на pandas : завантаження даних, очищення, фільтрація, групування, об'єднання та швидка візуалізація за допомогою matplotlib або seaborn. Вам не потрібно створювати складні панелі інструментів, але вам потрібно мати можливість відтворювати в Python ті ж перетворення, які ви виконували б у SQL.

Потім виділіть кілька днів для виконання практичних вправ на таких платформах , як HackerRank або репозиторії технічних інтерв'ю. Мета полягає в тому, щоб звикнути до формату, часових обмежень та тиску написання коду в контрольованому середовищі.

Зрештою, спробуйте одну або дві повноцінні симуляції співбесіди : візьміть публічний набір даних, поставте розумні бізнес-питання, вирішіть їх за допомогою SQL або Python та поясніть усі свої міркування вголос, від початкового дослідження до остаточних висновків.

Завдяки гарному поєднанню теоретичного огляду, практичних занять та реалістичних вправ, ви прийдете на співбесіду з міцною основою з SQL середнього рівня, Python для аналізу даних та метрик моделювання — саме цього очікує бачити більшість компаній у сфері рекламних технологій та аналітики даних.