“Etudiant à 42, j’ai fait mon stage en Deep Learning” : interview d’Alain et William.

A 42, nous venons d’horizons divers, la plupart ne comportant pas d’étape “doctorat en mathématiques appliquées”, ou autre “Computer Science PhD”. Il est naturel pour un étudiant d’avoir des appréhensions à sauter dans le grand bain du Machine Learning : quelle place pour les — apprentis — développeurs dans ce monde souvent à mi-chemin entre la recherche et la tech ? Alain et William, deux étudiants de 42 qui ont eu la chance de faire leur premier stage en Machine Learning, partagent leur expérience pour 42AI.

William et Alain ont tous deux effectué leur stage à Scortex, une start-up développant des solutions de Deep Learning pour le secteur de l’industrie. William est arrivé dans l’entreprise en juin 2016, tandis qu’Alain est arrivé en octobre. Ils ont donc travaillé un mois ensemble durant ce stage.

En quelle année êtes-vous entrés à l’école 42 et quel est votre parcours ?

William : A la sortie du lycée, après un bac ES, j’ai fait une année de remise à niveau scientifique dans l’optique de faire une école d’ingénieur. En cours d’année j’ai entendu parler de 42 et j’ai décidé d’effectuer un virage vers la programmation. Je suis ainsi entré à l’école en 2015 en n’ayant pas d’autre base que la piscine. Avant mon stage, je m’étais orienté sur la branche graphique.

Alain : Avant 42, et après une licence en biologie, j’étais animateur dans des écoles, où je menais des ateliers sur des thèmes orientés sciences et techniques comme la robotique, la programmation, construire des fusées… Je cherchais une reconversion et j’ai d’abord suivi la formation online de Simplon. Je me suis reconnu dans la programmation et suis entré à 42 en 2015. A l’époque, je n’avais pas la moindre idée de ce qu’était le Machine Learning. Je me suis pour ma part dirigé vers la branche algo.

A quel moment avez-vous commencé à vous intéresser à l’Intelligence Artificielle ?

: Les sciences m’ont toujours intéressé, donc je suivais pas mal de sites comme wired, theverge, motherboard… Parmi les articles que je lisais les concepts d’IA et de Machine Learning revenaient souvent ce qui m’a donné un premier contact avec le sujet. En pratique j’ai commencé à m’y intéresser techniquement seulement lorsque j’ai su que j’allais la pratiquer pendant mon stage, soit 2 semaines avant de débuter.

A : J’ai découvert le ML grâce à mon entourage à 42, notamment via un ami, Alex (Kpenou, NDA) qui s’y intéressait beaucoup. J’ai commencé à m’informer, j’ai suivi un cours sur le big data sur fun-mooc.fr qui m’a fourni une base. Je trouvais ça passionnant et j’ai commencé à vouloir faire mon stage dans le domaine. J’ai toujours eu beaucoup d’intérêt pour la science, et cela représentait pour moi le domaine parfait pour mêler science et programmation.

Qu’aviez-vous réalisé dans le domaine avant votre stage ?

A : Le mooc sur le big data m’avait amené à réaliser mon premier perceptron. J’ai aussi étudié sur le mooc d’Andrew Ng (pour Stanford sur Coursera, NDA) dans lequel j’ai persévéré malgré des difficultés, en me concentrant surtout sur les applications codées en python. Je me suis également tourné vers des livres et des vidéos sur youtube, pour avoir une bonne intuition du domaine, en faisant un maximum de mise en pratique. Je me suis aussi renseigné sur les librairies, notamment celles utilisées dans l’entreprise.

W : J’ai étudié sur le mooc d’Andrew Ng, en python également ce qui m’a d’ailleurs permis d’apprendre ce langage.

Avez-vous cherché un stage dans ce domaine particulier ou l’avez-vous trouvé autrement ?

W : J’ai vu l’offre d’emploi sur le groupe Facebook 42 #jobs. A ce moment je cherchais un stage dans tous les domaines sauf le web, et dès que j’ai vu l’annonce de stage en ML j’ai cherché à passer l’entretien. J’ai ensuite été pris. Ce sont surtout les technos et les concepts intéressants qui m’ont attiré.

A : Je cherchais pour ma part surtout dans le web au début car je ne pensais pas avoir le niveau. Mais je n’avais rien à perdre, alors j’ai envoyé beaucoup de candidatures en data science et ML notamment via les offres postées sur l’intra. J’ai vu un post de William sur le forum, l’ai contacté et il nous a mis en contact avec l’entreprise. J’ai passé les tests et j’ai réussi. J’ai même dû choisir entre faire du deep learning et de la machine vision pour Scortex ou aller travailler pour Warner sur du Machine Learning appliqué en marketing : pourtant ils cherchaient un ingénieur à la base. Il faut sauter le pas de chercher dans le domaine qui nous plait, dans le pire des cas on ne s’expose qu’à des refus. De mon côté finalement j’ai eu l’embarras du choix !

Comment s’est passé votre stage, aviez-vous une grande autonomie ?

W : J’ai été un peu supervisé au début car ils m’ont fourni des ressources pour apprendre. Ensuite j’ai été en autonomie mais ils vérifiaient régulièrement que mon apprentissage se déroulait bien. A la fin du premier mois j’étais prêt pour du Deep Learning et la Computer Vision et j’ai donc pu travailler dessus. J’ai par exemple fait une démo pour un hackathon à Tel Aviv, en étant un peu accompagné par le CTO mais on peut dire que j’ai fait 90% du travail. Mon job a sinon été constitué majoritairement de R&D : je devais lire beaucoup de papiers scientifiques sur létat de l’art et tenter de les mettre en application pour l’entreprise.

A : De la même manière j’ai passé environ deux mois à me former à mon arrivée dans l’entreprise. Pour cela ils m’ont fait m’exercer sur un concours Kaggle de Machine Vision (auquel William avait d’ailleurs aussi participé et que je n’ai pas réussi à battre). J’étais autonome avec des reviews régulières pour m’aider à progresser sans arrêt et me permettre de me dépasser. Mon travail a ensuite consisté à faire de la R&D sur le domaine de la détection d’objet. Nous avions défini une roadmap. J’étais chargé de rechercher ce qui se faisait dans l’état de l’art et de l’implémenter en prévision du futur produit.

Avez-vous eu des difficultés particulières dans le domaine ?

W : Oui. Les premières semaines étaient vraiment lourdes en charge de travail et je faisais beaucoup d’heures. Etant donné que je n’avais pas un énorme niveau en maths j’ai dû revoir plein de concepts, et tout apprendre en même temps (python, maths, ML, frameworks…). J’ai aussi eu des difficultés pour implémenter l’état de l’art en machine vision, certains algorithmes m’ont posé problème.

A : Les mêmes difficultés, j’avais fait un peu de python mais il a quand meme fallu revoir voire apprendre pas mal de choses. Les maths dataient de loin donc il a fallu que ça revienne. J’ai aussi galéré à implémenter l’état de l’art. J’ai pu passer des semaines sur quelque chose sans succès. Il faut beaucoup de patience, recommencer, tester à nouveau, et ainsi de suite. Il est surtout important de persévérer et de ne pas se décourager.

Comment avez-vous pallié ces difficultés ?

A : Ce qui m’a aidé c’est que je me suis fait plaisir. Quand j’y repense il y a plus de choses que j’ai ratées que de choses que j’ai réussies mais ça me plaisait vraiment et on était très encouragés. Ca a été un environnement de travail génial, ils ont été très attentionnés. Avoir l’état d’esprit de vouloir en savoir plus et faire mieux, se faire plaisir, et avoir le temps et de bons retours c’est idéal.

W : Même réponse. Le fait de pouvoir aussi en discuter entre nous et avoir ce soutien de l’équipe pour nous aider à dépasser certains blocages ou nous donner des points de vue différents, même sans connaître exactement le sujet mais par intuition, nous a vraiment poussé vers le haut.

Si c’était à refaire, que feriez-vous autrement ?

W : Je me formerais plus en profondeur sur les mathématiques avant. C’est ce qui m’a ralenti dans mes apprentissages. J’ai compris les concepts avancés comme les algorithmes mais j’avais des lacunes dans les bases qui m’ont parfois limité dans ma progression.

A : Mieux me preparer aussi en mathématiques pour me mettre sur une bonne lancée, et aussi un petit peu de méthodologie R&D. Cela m’a parfois manqué dans les débuts et j’ai dû l’acquérir à la volée. Lire un papier et le passer en application peut être compliqué, il faut être entrainé pour savoir extraire les informations essentielles des publications. Faire de la veille en général est important, ainsi qu’avoir de bonnes méthodes de travail (rigueur, organisation…).

Que conseilleriez-vous à un étudiant qui craindrait de se lancer ?

W : D‘y aller ! Lors d’un premier stage, ils n’attendent pas énormément de toi, ils veulent que tu sois intéressé et que tu sois capable de progresser et d’apprendre.

A : D’être honnête sur tes compétences quand tu postules. C’est à eux de voir si tu corresponds au profil recherché. La preuve en est que parfois les annonces demandent des profils très qualifiés mais que tu peux quand même les intéresser. Quand tu découvres le ML avec la programmation tu as une approche des maths qui peut être fraiche et attrayante pour une entreprise. Si c’est ce que tu aimes vas-y. Le niveau se construira par la suite.