
«Python-розробник не може бути універсалом»: як проводити співбесіду з кандидатом на позицію Python Developer
За індексом TIOBE*, Python є найпопулярнішою мовою програмування у світі. Його використовують для аналізу даних, машинного навчання, розробки вебсервісів та десктопних застосунків, а також автоматизації тестування та системного адміністрування. «Немає такого проєкту, який не можна написати на Python» — говорять експерти. Від цього з’являється і біль — організувати якісний підбір Python розробників не так легко, як здається.
Разом з Максимом Орлюком, Machine Learning Engineer у Tango, та Анною Параскєєвою, Technical Recruiter в ITExpert, розбираємося, як наймають на роботу Python-розробників та які питання на співбесіді задають Python Junior, Middle та Senior кандидатам.

Ключові навички Python-розробника, на які варто звернути увагу при відборі
Наймання Python-розробника — це завдання з зірочкою. Ця мова досить розповсюджена і використовується у різних сферах — від ERP до AI. Скілсет розробників досить сильно варіюється залежно від домену. А отже рекрутери та hiring-менеджери мають глибше аналізувати досвід кандидата та інструменти кожного проєкту, щоб відібрати найбільш відповідних фахівців.
За словами Максима Орлюка, Machine Learning Engineer у Tango, дві найпопулярніші сфери, де працюють Python-розробники, це: Data Science та Backend-розробка у web’і.
Розлогіший розподіл надають результати опитування Jetbrains 2023. Згідно з ним:
- 47% фахівців використовують Python в аналізі даних,
- 42% — для продуктів у Machine Learning,
- 39% — для веброзробки.
Також Python може використовуватися для розробки десктопних застосунків, автоматизації тестування чи системного адміністрування — однак це менш популярне рішення.
Розподіл по грейдах Python девелоперів можна описати так:
- Junior-спеціалістам, як правило, доручають невеликі технічні завдання. Такий інженер має знати усю теорію, але може мати недостатньо глибокий досвід на практиці.
- Middle-спеціалісти можуть відповідати за реалізацію тих чи інших фіч. Від них вимагається розуміння нюансів та вміння запропонувати розв’язання нетипових ситуацій.
- Робота Senior’ів полягає зокрема у переведенні бізнес-вимог у технічну площину — у визначенні того, які сервіси потрібні та як їх імплементувати. Часто від розробників цього рівня очікують не тільки технічних скілів, але й менеджерських.
Відповідно до цього розподілу, сініорний кандидат в деяких компаніях може розглядатися як мідл — якщо в нього немає досвіду вирішення саме тих бізнес-завдань, які потребуються на проєкті. Саме це, наприклад, відбувається при переході фахівця зі сфери веброзробки на Python у Data Science — скоріш за все, при найманні буде даунгрейд.
«Важливо не те, що має знати Junior Python Developer, а наскільки глибоко. Новачок може не розуміти, що відбувається під капотом Python, але повинен володіти синтаксисом цієї мови програмування. Так само й з базами даних, тестуванням й основами Computer Science.
Різниця між досвідченим та новачком — не у кількості знань, а якості. Чим довше працюєш, тим більше розумієш нюансів та тонкощів. Знання нашаровуються — і ти можеш розв’язувати складніші завдання». Максим Орлюк, Machine Learning Engineer у Tango
Далі ми сконцентруємося на тому, що має знати та вміти Junior, Middle та Senior Python розробник у найбільш популярних напрямках: вебпрограмуванні та Data Science, — та на які навички варто звертати особливу увагу під час рекрутингу.
Веброзробка
В цій сфері у Python є багато конкурентів, як-от PHP й Golang. Але Python все ж має значний попит — ця мова лаконічна й розробка нею проходить відносно швидко.
У тулсеті та знаннях Python-розробника мають бути:
- Основи Computer Science;
- Знання одного з вебфреймворків;
- Вміння працювати з SQL/NoSQL базами даних;
- Робота з Git;
- Написання юніт-тестів;
- Робота з cloud-сервісами.
При відборі фахівців варто звертати увагу зокрема на фреймворки. Згідно з опитуванням JetBrains, два найпопулярніші Python-фреймворки для веброзробки — Django й Flask. Однак для високонавантажених систем від кандидатів вимагають володіння складнішими тулзами.
«На те, які навички потрібні програмісту на Python, впливають потреби проєкту та позиції, на яку ми наймаємо кандидата. Якщо, наприклад, ми шукаємо спеціаліста для асинхронної системи, зазвичай очікується досвід з Pyramid / Tornado / asyncio+aiohttp чи іншими фреймворками, які підтримують асинхронність. Для стандартної веброзробки зазвичай достатньо Django або Flask. Саме від стеку вашого проєкту залежить, які навички вишукувати у резюме кандидатів першою чергою». Анна Параскєєва, Technical Recruiter в ITExpert
Data Science
«Python в Data Science — це стандарт», підкреслює Максим Орлюк. Як пояснює експерт, усі сучасні бібліотеки, інструменти та алгоритми, які розробляються для використання у сфері, створюються так, щоб їх можна було використовувати з Python.
Залежно від домену Data Scientist або Machine Learning Engineer має володіти:
- NumPy — бібліотекою для маніпуляцій даними, матричних та векторних обчислень;
- Scikit-learn — бібліотекою з алгоритмами машинного навчання;
- PyTorch та TensorFlow — фреймворками для deep learning;
- Matplotlib — бібліотекою для візуалізації даних тощо.
Це неповний список, але, як зазначає Максим, NumPy, PyTorch та Scikit-Learn зустрічається майже на кожному Data Science проєкті. До того ж недостатньо просто вивчити бібліотеки, треба розуміти теоретичну частину — тобто як працюють вбудовані алгоритми.
«Data Science сфера — це той випадок, коли розробнику потрібно знати “математику”. Тут багато специфічних нюансів. Тому, коли ми щось імпортуємо із бібліотеки, ми повинні знати, які вхідні дані бере алгоритм, що він з ними робить, і що віддає на вихід. Тільки так можна при потребі цей алгоритм оптимізувати».
Максим Орлюк, Machine Learning Engineer у TangoЯк рекрутеру підготуватися до співбесіди з Python-розробником
Ще до початку співбесіди рекрутер має проаналізувати резюме кандидата. При оцінці CV Python розробника зазвичай звертають увагу на наявність досвіду з тими фреймворками, які потрібні на вакансії, а також на проєкти, з якими працював кандидат. Саме тому роботодавці цінують детальні описи в резюме: що розроблялося, яким був стек технологій, які завдання вирішувались.
«Найперший і явний маркер, на який звертають увагу при розгляді фахівця — кількість досвіду з технологіями, які є важливими для позиції. Це банально, але факт. Звісно, роки досвіду не завжди визначають експертизу спеціаліста, але все одно це один з основних критичних факторів, який вказує на релевантність досвіду вакансії.
Також можу виділити різноманітність в стеці, який використовував спеціаліст. Я не маю на увазі “вінегрет” з мільйона технологій, однак важливо, щоб кандидат працював з різними фреймворками й бібліотеками, щоб в нього був досвід з новими сучасними інструментами.
Python-розробник не може бути універсалом. Для Data Science сфери є окремі технології, за якими можна зрозуміти чи підходить кандидат (наприклад, Numpy, SciPy, Pandas). Аналогічно і в ML-розробці — наявні свої фреймворки та бібліотеки (TensorFlow, PyTorch). Хоча між Data Science та ML межа тонка. Якщо ж кандидат розробляв вебсайти з використанням Python — його досвід не буде релевантним для сфери даних». Анна Параскєєва, Technical Recruiter в ITExpert
Після скринінгу резюме з кандидатом часто проводять HR-інтерв’ю. На цьому етапі рекрутер чи HR глибше аналізує описаний досвід. У пригоді стануть запитання такого формату:
- Скільки загалом досвіду у Python розробці ви маєте? А з фреймворком Х? Актуально, якщо інформація у резюме не вказана або неточна.
- З якими фреймворками Python ви працювали на останньому місці роботи?
- Будь ласка, опишіть ваш досвід використання data processing фреймворків.
- Чи був у вас Data Science досвід? У яких сферах працювали, з якими Machine Learning фреймворками?
- Чи мали ви досвід роботи з Python на проєктах у сфері криптовалют та Fintech? Актуально, якщо важливий досвід саме з цією сферою.
Також на Python-співбесіді рекрутер оцінює софт-скіли айтівця — Анна наголошує, що специфічних вимог до них немає. Очікується привітна комунікація та зацікавленість в компанії. Звертають увагу на те, чи кандидат цікавиться змінами й новинами у сфері технологій, з якими працює.
Технічні запитання на співбесіді на Python
Універсального списку запитань на співбесіду Python-розробника не існує — важливо орієнтуватися на потреби вашого проєкту. Але є приблизні топіки, які варто охопити.
«Джуніор має знати синтаксис та механізми мови програмування Python. Більш досвідчених спеціалістів можна питати, як саме працюють ті чи інші речі: наприклад, паралелізм, менеджмент памʼяті тощо». Максим Орлюк, Machine Learning Engineer у Tango
Теми питань для джуніор-фахівця:
- Комп’ютерні науки та веброзробка у цілому:
- Які є принципи ООП? Навіщо вони потрібні?
- Які ви знаєте структури даних і як вони реалізовані у Python?
- Що таке REST?
- Синтаксис Python:
- Які є типи даних в Python?
- Навіщо потрібні lambda-функції?
- SQL-запити та робота з базами даних у Python:
- Які бувають типи звʼязків у базах даних?
Мідлів та сініорів можуть також запитати про асинхронність, деплой, код-рев’ю; з’являються глибші питання про Python або за доменним досвідом. Наприклад:
- Чи маєте досвід з асинхронністю? З якими бібліотеками/фреймворками працювали?
- Як працює паралелізм в Python?
- Чи був досвід роботи з сокетами? Які технології використовували для роботи з ними?
- Чи був досвід роботи з хмарами? Які хмарні сервіси використовували?
Важливо! Запитання на співбесіді Senior Python Developer найменш універсальні: тут зазвичай детально обговорюють попередній досвід, а також можуть запропонувати вирішити конкретний кейс.
«Інтерв’ю для “старших” позицій найкраще будувати на базі обговорення практичного кейсу. Однак й задача формату написання якогось алгоритму — це таск для джуна чи мідла. З сініорами обговорюють більш комплексні та абстрактні речі: наприклад, пропонують уявити, що планується розробка якоїсь системи, і просять запропонувати рішення для неї (сервіси, бази даних, навантаження). Бо, чим вищий грейд, тим “бізнесовіші” задачі». Максим Орлюк, Machine Learning Engineer у Tango
Також Максим вважає live coding сесії найкращим способом перевірити навички кандидата. Причому оцінюватися виконання таких завдань на співбесіді Python має не тільки за правильністю та швидкістю рішення, а й тим, як взагалі розробник підійшов до рішення, які гіпотези тестував тощо.
Ось кілька простих прикладів, якими можуть бути задачі на live coding:
- Реалізувати на Python рекурсивну функцію, яка виводитиме числа Фібоначчі.
- Написати функцію, яка буде визначати, чи є рядок паліндромом.
Ці задачі першою чергою можна давати джуніорам. Як найняти Senior-спеціаліста? Попросити спроєктувати (схематично) якийсь сервіс, наприклад інтернет-магазин чи систему бронювання квитків, обговорити потенційні bottlenecks і способи їх усунення. Наприклад, масштабування певних компонентів. Мідлам можна також давати складніші задачі на рекурсію, алгоритми, оптимізацію коду тощо. Корисне джерело для алгоритмічних задач, які можна використовувати для live coding — LeetCode.
Немає ідей для питань на співбесіду Python-інженера? Окресліть, які проблеми виникають на проєкті, куди наймають розробника, і попросіть його розповісти, як би він їх вирішував. Це найкращий спосіб зрозуміти, чи виникне метч саме з цим кандидатом.
Наскільки корисним був цей пост?
Click on a star to rate it!
Середній рейтинг 5 / 5. Кількість голосів: 5
Оцінок поки немає! Будьте першим, хто оцінить цю публікацію.



