ManoManoTech & Data
Préparer un entretien : Stagiaire Data Scientist
Recrutement historique. Cette synthèse ne constitue pas une offre d’emploi actuellement ouverte.
Fondateurs Avanttoi — Synthèse éditoriale
Sommaire
Fondateurs Avanttoi — Synthèse éditoriale
Synthèse originale de faits rapportés dans un témoignage de candidat, non authentifié par Avanttoi. Les conseils et exercices sont créés par Avanttoi. Cette expérience n’a pas été vécue par les fondateurs et ne décrit pas nécessairement le recrutement actuel de l’entreprise.
Stagiaire Data Scientist — Paris, France
Période des entretiens · août 2018
- Le processus rapporté comprend deux entretiens sur place. Le premier porte sur une présentation du candidat, ses compétences, sa compréhension de l'entreprise et les missions de stage envisagées.
- Le second entretien, plus technique, consiste à lire un article de recherche, le présenter, répondre à des questions puis écrire un script Python appliquant la méthode décrite.
Publication du témoignage : Date de publication non précisée. Le lien de provenance est conservé dans le dossier éditorial privé.
Questions et thèmes réellement rapportés
Les citations conservent la formulation publiée par le candidat. Les thèmes décrivent le sujet documenté lorsque l’énoncé complet n’est pas disponible. Les corrigés d’entraînement figurent dans la partie Avanttoi.
Présentation et implémentation d'un article de recherche
Second entretien, technique
Le candidat lit un article de recherche fourni par l'entreprise, le présente à l'oral, répond à des questions dessus, puis écrit un script Python qui applique la méthode décrite dans l'article. Le sujet précis de l'article et le jeu de données ne sont pas publiés.
Ce que vous pouvez travailler
Ce format d'entretien - lire un article, le présenter, puis en implémenter la méthode - évalue trois compétences distinctes qu'il vaut mieux préparer séparément. D'abord la lecture critique : reformuler en une phrase le problème posé, la méthode proposée et ses hypothèses, sans se perdre dans les détails mathématiques secondaires. Ensuite la présentation orale : structurer l'exposé en problème, méthode, résultat attendu, limites, et anticiper les questions sur les choix de l'auteur plutôt que de les défendre aveuglément. Enfin l'implémentation : avant d'écrire du code, lister les entrées, les sorties et les cas limites (série vide, paramètre à une borne, valeurs identiques), puis écrire une version simple et lisible plutôt qu'une optimisation prématurée. Un candidat qui explique à voix haute pourquoi il choisit une structure de données ou un test précis démontre plus de rigueur qu'un candidat silencieux qui code juste. Enfin, valider son script avec quelques cas simples calculables à la main avant de le présenter donne une bonne image de sérieux méthodologique, indépendamment du sujet exact de l'article fourni le jour de l'entretien.
Entraînez-vous sur des cas originaux
Ces scénarios pédagogiques et leurs corrigés ne sont pas des questions posées par ManoMano.
Implémenter une méthode de lissage décrite dans un article fictif
Exercice original Avanttoi. Un article fictif de méthodologie décrit un lissage exponentiel simple : la valeur lissée au rang 0 est égale à la première valeur observée ; pour chaque rang suivant, la valeur lissée vaut alpha fois la valeur observée plus (1 - alpha) fois la valeur lissée précédente, avec alpha compris entre 0 et 1 inclus. Écrivez une fonction Python lisser_serie(valeurs, alpha) qui renvoie la liste des valeurs lissées, lève une ValueError si alpha est hors de [0, 1], et renvoie une liste vide si la série d'entrée est vide.
Voir le corrigé et les critères
Corrigé pédagogique
La fonction rendue est la suivante :
def lisser_serie(valeurs, alpha):
if not (0 <= alpha <= 1):
raise ValueError("alpha doit être compris entre 0 et 1 inclus")
if not valeurs:
return []
lissees = [valeurs[0]]
for v in valeurs[1:]:
lissees.append(alpha * v + (1 - alpha) * lissees[-1])
return lissees
La première valeur lissée est toujours égale à la première valeur observée, comme l'exige l'énoncé. Chaque valeur suivante combine linéairement l'observation courante et la valeur lissée précédente : avec alpha=0, la série lissée reste constante à la première valeur ; avec alpha=1, la série lissée est identique à la série observée. Une série vide renvoie une liste vide sans erreur, et un alpha hors de [0, 1] lève explicitement une ValueError plutôt que de produire un résultat silencieusement incorrect. Cet article et cette méthode sont une création pédagogique Avanttoi ; ils ne reproduisent pas l'article utilisé lors de l'entretien ManoMano réel.
Pour évaluer votre réponse
Le cas de la série vide et le cas alpha hors de [0, 1] sont gérés explicitement, la première valeur lissée égale la première observation, la récurrence alpha·v + (1-alpha)·précédent est appliquée correctement, et aucune affirmation n'est faite sur le contenu réel de l'article ManoMano.
Lister les hypothèses et les limites d'une méthode avant de l'implémenter
Exercice original Avanttoi. Avant d'implémenter la méthode de lissage exponentiel simple de l'exercice précédent, listez au moins trois hypothèses implicites que fait cette méthode sur les données d'entrée, et proposez pour chacune un moyen concret de vérifier si l'hypothèse tient sur un jeu de données réel.
Voir le corrigé et les critères
Corrigé pédagogique
Trois hypothèses implicites peuvent être listées avec leur vérification : 1) La méthode suppose une série à pas de temps réguliers ; vérification : contrôler que les écarts entre observations successives sont constants avant de lisser, sinon le poids implicite de chaque observation varie. 2) La méthode suppose qu'un alpha unique convient à toute la série ; vérification : tracer la série brute et la série lissée pour plusieurs valeurs d'alpha et comparer visuellement la réactivité aux variations récentes contre le bruit résiduel. 3) La méthode suppose l'absence de valeurs manquantes ; vérification : compter les valeurs manquantes ou non numériques avant lissage, car une valeur manquante non traitée casserait la récurrence ou produirait un résultat incorrect silencieusement. Une hypothèse supplémentaire, la stationnarité approximative de la série (pas de tendance forte), peut aussi être vérifiée par un simple graphique de la série sur la période étudiée.
Pour évaluer votre réponse
Au moins trois hypothèses distinctes sont listées (pas seulement reformulées), chacune est associée à une vérification concrète et réalisable sur des données, et aucune vérification ne suppose un outil non mentionné dans l'énoncé.
Écrire des tests unitaires pour valider le script de lissage
Exercice original Avanttoi. Écrivez, avec le module standard unittest ou de simples assert, un jeu de tests pour la fonction lisser_serie de l'exercice 1 couvrant : une série constante, alpha=0, alpha=1, une série vide, et un alpha invalide (par exemple 1.5).
Voir le corrigé et les critères
Corrigé pédagogique
Un jeu de tests minimal et couvrant les cas cités :
def test_lisser_serie():
assert lisser_serie([], 0.5) == []
assert lisser_serie([10, 10, 10], 0.3) == [10, 10, 10]
assert lisser_serie([10, 20], 0) == [10, 10]
assert lisser_serie([10, 20], 1) == [10, 20]
resultat = lisser_serie([10, 20, 30], 0.5)
assert resultat == [10, 15.0, 22.5]
try:
lisser_serie([1, 2], 1.5)
raise AssertionError("devrait lever ValueError")
except ValueError:
pass
La série constante vérifie que lisser une série sans variation la laisse inchangée, quel que soit alpha. alpha=0 doit geler la série lissée à la première valeur ; alpha=1 doit reproduire exactement la série observée. La série vide doit renvoyer une liste vide sans lever d'erreur. Le calcul intermédiaire avec alpha=0,5 sur [10, 20, 30] donne 10, puis 0,5×20+0,5×10=15, puis 0,5×30+0,5×15=22,5, ce qui permet de vérifier la récurrence pas à pas plutôt qu'un seul résultat final. Enfin, un alpha de 1,5 hors de [0, 1] doit lever une ValueError, testée ici en s'assurant que l'appel échoue bien comme attendu.
Pour évaluer votre réponse
Les cinq cas demandés (constante, alpha=0, alpha=1, série vide, alpha invalide) sont tous testés, le calcul intermédiaire de la récurrence est explicité pour au moins un cas non trivial, et le test d'erreur vérifie explicitement qu'une exception est levée plutôt que de l'ignorer.
Une séance de préparation ciblée
- 15 minutes : relisez les faits rapportés et identifiez ce que vous savez déjà expliquer clairement sur un article scientifique de votre domaine.
- 45 minutes : réalisez les trois exercices Avanttoi associés à cette fiche, puis comparez votre réponse aux critères et aux corrigés.
- 15 minutes : entraînez-vous à présenter à voix haute un article ou un projet technique en moins de trois minutes, en distinguant problème, méthode et limites.
Les informations encore inconnues
- Ce compte rendu décrit un recrutement passé, déclaré par son auteur ; il ne constitue pas une validation indépendante ni le processus actuel officiel.
- Le nom de l'article, son domaine précis au-delà de « data science » et le jeu de données utilisé lors de l'entretien ne sont pas publiés.
- Il s'agit d'un entretien de stage ; aucune date de début, durée exacte ou référence d'offre n'est documentée. Le mois affiché est celui de l'entretien.
- Les exercices et corrigés ci-dessous sont des créations pédagogiques Avanttoi ; ils ne reconstituent pas l'article ni le script demandés par ManoMano.
À demander à votre recruteur
- Quel est le domaine exact de l'article de recherche fourni le jour de l'entretien, et son niveau de difficulté attendu ?
- Quel type de contrat, quelle durée et quelle date de début sont prévus pour ce stage ?
- Quels langages, bibliothèques et environnement de développement sont autorisés pendant l'exercice technique ?