Guide recrutement data
Test technique Python data : ce qu'on evalue en entretien
Python est la lingua franca de la data. Entre un script Jupyter et un module de production, l'ecart est considerable.
Data Builder·Juin 2025·8 min de lecture·Data Engineer · Data Scientist
Python est la lingua franca de la data. Entre un script Jupyter et un module de production robuste, l'ecart est considerable.
1Bases du langage
Question discriminante
Difference entre liste et tuple ? Entre dictionnaire et set ?
# List comprehension : signal de maturite
# Junior
result = []
for x in data:
if x > 0: result.append(x * 2)
# Confirme
result = [x * 2 for x in data if x > 0]
- List comprehensions — syntaxe concise, signal de maturite
- Type hints — annotations pour lisibilite et mypy
- try/except — gestion des erreurs, exceptions personnalisees
2Pandas et DuckDB
Question discriminante
Votre script Pandas traite 10M lignes et prend 8 minutes. Vos options ?
- Vectorisation — operations numpy/pandas plutot que des boucles
- DuckDB — SQL analytique sur DataFrames, CSV, Parquet
- Polars — alternative Pandas plus rapide, lazy evaluation
3Programmation orientee objet
Question discriminante
Pourquoi utiliseriez-vous une classe plutot qu'une fonction dans un pipeline data ?
- Encapsulation — classe pour une connexion BDD avec ses methodes
- Dataclasses — syntaxe moderne pour les classes de donnees simples
4Qualite et tests
Question discriminante Senior
Comment testez-vous vos pipelines Python ?
- pytest — tests unitaires, fixtures, parametrize
- unittest.mock — mocker les dependances externes
- Black / Ruff — formatage automatique
5Python en production
Question discriminante
Vous exposez un pipeline data via une API REST. Quel framework ?
- FastAPI — validation Pydantic, doc OpenAPI automatique
- Variables d'environnement — jamais de credentials dans le code
- Logging — module logging plutot que print() en production
6Grille par niveau
| Niveau | Maitrise attendue | Signal GO | NO-GO |
|---|
| Junior | Types, listes, dicts, fonctions, Pandas de base | List comprehensions, type hints, try/except | Boucles for sur les DataFrames |
| Confirme | POO, modules, DuckDB/Polars, qualite de code | Classes reutilisables, Black, evite les boucles Pandas | Tout dans un script Jupyter, pas de tests |
| Senior | Tests unitaires, CI/CD, FastAPI, logging | A mis en prod une API Python avec CI | N'a jamais ecrit de test unitaire |
| Lead | Architecture modulaire, standards equipe | A defini la structure de projet Python equipe | Ne peut pas expliquer sync vs async |
Data hiring guide
Python for data: what we really assess in technical interviews
Python is the lingua franca of data. Between a Jupyter script and a production module, the gap is considerable.
Data Builder·June 2025·8 min read·Data Engineer · Data Scientist
Python is the lingua franca of data. Between a Jupyter script and a robust production module, the gap is considerable.
1Language basics
Discriminating question
Difference between a list and a tuple? Between a dictionary and a set?
# List comprehension : signal de maturite
# Junior
result = []
for x in data:
if x > 0: result.append(x * 2)
# Confirme
result = [x * 2 for x in data if x > 0]
- List comprehensions — concise syntax, sign of maturity
- Type hints — annotations for readability and mypy
- try/except — error handling, custom exceptions
2Pandas and DuckDB
Discriminating question
Your Pandas script processes 10M rows and takes 8 minutes. What are your options?
- Vectorization — numpy/pandas operations rather than loops
- DuckDB — analytical SQL on DataFrames, CSV, Parquet
- Polars — faster Pandas alternative, lazy evaluation
3Object-oriented programming
Discriminating question
Why would you use a class rather than a function in a data pipeline?
- Encapsulation — class for a DB connection with its methods
- Dataclasses — modern syntax for simple data classes
4Quality and tests
Senior discriminating question
How do you test your Python pipelines?
- pytest — unit tests, fixtures, parametrize
- unittest.mock — mocking external dependencies
- Black / Ruff — automatic formatting
5Python in production
Discriminating question
You expose a data pipeline via a REST API. Which framework?
- FastAPI — Pydantic validation, automatic OpenAPI documentation
- Environment variables — never hardcode credentials in code
- L