Devenir Data Scientist : travail préparatoire en 500 heures

Tout d’abord, un petit disclaimer : cet article s’adresse aux personnes sans background scientifique désireuses de reprendre des études et/ou d’entamer une reconversion autour des métiers de la data science. Si vous avez fait une prépa MPSI / PCSI ou bien une licence de maths, ce que je vais vous raconter, vous le savez certainement déjà.

Si vous êtes développeur ou si vous avez un profil multi-casquettes et que vous êtes à l’aise avec le web et son histoire, c’est bien. Il y aura d’autant plus de chances que cet article vous intéresse. Car c’est plus ou moins mon profil.

Dans ce billet je décris comment je m’y suis pris pour retrouver de bonnes bases pour être prêt à apprendre. C’est tout. Néanmoins, il s’agit d’une synthèse d’un travail personnel de plusieurs semaines. Il y a donc beaucoup de matière, que j’ai tenté de rendre la plus digeste possible. Le but final de ce travail préparatoire était de me sentir prêt pour attaquer cette formation.

Enfin, sachez que j’ai la fâcheuse habitude de « time reporter » le temps passé derrière mon bureau. Ceci est pratique pour facturer les clients au plus juste. Mais également pour mesurer le temps passé à apprendre tel ou tel sujet. Ce programme aura occupé environ 500 heures de mon temps. Je ne détaille pas tout dans cet article, mais si cela vous intéresse d’avoir plus d’informations sur la répartition du temps passé par sujet, n’hésitez pas à me le demander.

Sommaire

  1. Contexte
  2. Les fondamentaux des mathématiques
  3. Python et ses librairies phares avec Martin Daniel
  4. Les MOOcs : technique vs data science
  5. MOOCs OpenClassrooms orientés données / statistiques
  6. Se (re)faire une base en développement back-end
  7. Quelques MOOCs supplémentaires
  8. Conclusion

Contexte

Je fais du web depuis une dizaine d’années et je suis aujourd’hui consultant Analytics. Grossomodo, je connais plutôt bien les modèles de données que l’on retrouve en web analyse, principalement avec Google Analytics. Je sais manipuler ces données avec différents outils (Excel, Python, JavaScript) et je sais faire de jolis dashboards avec Data Studio. On fait également appel à moi pour concevoir des plans de marquage et en suivre l’implémentation technique en accompagnant les développeurs. Enfin, j’apporte ma connaissance métier sur l’analyse des chiffres remontés par tout ce joli monde.

Honnêtement ? Le marché est pléthorique. La demande est énorme. Au moins aussi importante qu’en data science. Sauf qu’aujourd’hui, j’ai envie de voir autre chose que du web. Et pour cela, il faut des connaissances scientifiques et mathématiques. Donc aujourd’hui, j’ai un besoin et une envie incommensurable d’acquérir de nouvelles connaissances. De les structurer. J’ai envie d’apprendre des bases universelles qui m’ouvriront les portes d’un nouveau monde. Celui dans lequel je pourrai travailler dans l’environnement, la santé, l’innovation.

Bref, je souhaite me reconvertir. Le mot est peut-être un peu fort. Car souvent quand on entend « reconversion », on imagine le cadre parisien trentenaire qui a fait une grande école de commerce, travaille dans le conseil dans une tour à La Défense et plaque tout pour ouvrir un Food Truck sur les côtes normandes. Ok j’ai moi-même travaillé dans une tour à La Défense. Mais la ressemblance s’arrête là, car je souhaite pour l’instant continuer à travailler avec de la donnée, derrière mon ordinateur 🤓

On a la chance immense d’être dans une époque où retourner sur les bancs de l’école n’est pas mal vu, quel que soit son âge. Le mot « reconversion » est dans toutes les bouches. Alors si vous y songez, un conseil : foncez. Il n’est jamais trop tard.

(Ré)apprendre les fondamentaux des mathématiques (200 heures)

Le piège en data science est qu’il existe des librairies super bien faites aujourd’hui. Ces librairies permettent de réaliser des analyses puissantes sans vraiment comprendre ce qu’il se passe sous le capot. Mais c’est à mon sens très dangereux. Tous les algorithmes que l’on peut facilement utiliser en quelques lignes de Python sont sous-tendus par des concepts mathématiques. On ne peut donc pas les ignorer.

Les fondamentaux appris au lycée sont une base indispensable. Je pense principalement aux statistiques, aux probabilités et aux intégrales. Mais en réalité, tout ce qu’on apprend durant les deux années de 1ère et Tle S est imbriqué. Même si certains mathématiciens reprochent au programme d’aborder trop de sujets différents durant ces deux année et de ne pas aller assez en profondeur.

Il est vrai qu’on peut facilement passer à côté de la beauté et de la puissance de certains outils et concepts, surtout dans un contexte de lycée. Mais le fait est qu’on ne peut que constater que ces bases sont indispensables et incroyablement liées les unes aux autres.

C’est la raison pour laquelle j’ai décidé de reprendre entièrement le programme de 1ère S et de terminale S. Pour cela j’ai articulé mon travail autour de trois supports :

1. Yvan Monka

N’allons pas par quatre chemins : qu’aurais-je fait sans lui ? Pas grand chose. Yvan est prof de maths en lycée et il anime une chaîne YouTube qui est tout bonnement extraordinaire.

Sa pédagogie frôle la perfection, ses vidéos sont reconnaissables à la petite musique d’intro (jouée par sa fille) et à son « Bonjour ! » plein d’entrain. Yvan est d’ailleurs déjà très populaire auprès des jeunes lycéens qui ne cessent de le remercier dans les commentaires de ses vidéos.

Sa chaîne balaye entièrement tout le programme des mathématiques enseignées au collège et au lycée en France. Les vidéos sont rangées par playlists et par catégories de playlists. Voici les deux catégories que je vous conseille de suivre :

Catégorie Première S : ici
Catégorie Terminale S : ici

Cerise sur le gâteau, Yvan reverse l’intégralité des fonds générés avec sa chaîne aux Restos du Coeur. Encore merci à ce grand monsieur 🙂

Yvan Monka édite également un site web.

2. Les bouquins Kartable

Kartable.fr est un site proposant des aides à la révision dans toutes les matières du collège et du lycée. Le supports sont sous forme de fiches de cours, de méthodes et d’exercices.

J’ai opté pour ma part pour la version papier. J’ai donc acheté le bouquin de 1ère S et de Terminale S.

Ceci a structuré ma manière d’apprendre, car les bouquins sont complets. Ils sont découpés en plusieurs chapitres, les mêmes qu’on retrouve au programme. Chaque chapitre contient un cours, des méthodes et des exercices corrigés.

3. Lucien, mon prof de maths particulier

Bien que l’on se soit vus une petite dizaine d’heures tout au plus, je n’aurais pas pu avancer autant sans lui. Tout simplement car reprendre les maths après plus de dix ans, cela fait bizarre 🙂 Si vous habitez Paris, je peux vous communiquer en privé ses coordonnées (sur son accord préalable bien entendu). Astrophysicien de formation, Lucien m’a vraiment aidé à comprendre les maths sous un angle plus conceptuel, il m’a challengé, m’a permis de prendre confiance en moi.

Pour vous donner une idée, son état d’esprit c’est « Ben regarde, c’est facile, tu fais ça et ça, bim c’est terminé. Et pourquoi on a inventé ça ? Ben parce que cela sert à ceci. Et en combinant avec ça, on obtient ça, et voilà ! »

Méthode de travail

Mon workflow était grossomodo le suivant :

  1. Lorsque je décidais quel chapitre j’allais travailler, je commençais par feuilleter le cours et les méthodes du bouquin.
  2. Ensuite je travaillais entièrement le chapitre grâce à la playlist dédiée sur la chaîne d’Yvan Monka. Elles sont également structurées en cours / méthodes / exercices. A noter qu’en fonction des chapitres on ne retrouve pas systématiquement des vidéos de cours ou d’exercices.
  3. Enfin, je réalisais les exercices de fin de chapitre proposés dans mon bouquin Kartable.
  4. Si j’avais des questions, des doutes ou si quelque chose n’était pas clair, j’en discutai ensuite avec Lucien.

Programme Mathématiques 1ère S et Tle S

J’ai mis en gras les thèmes qui me semblent indispensables, même si c’est presque impossible de dissocier les chapitres les uns des autres.

Première S

Les trinômes du second degré
Généralités sur les fonctions
Les fonctions de référence
La dérivation
Les suites (géométriques et arithmétiques)
La trigonométrie
Les vecteurs
Les équations de droite
Le produit scalaire
Les statistiques
Les probabilités
La loi binomiale et les fluctuations d’échantillonnage

Terminale S

Les suites (étude d’une suite, raisonnement par récurrence)
Les limites de fonction
La dérivation
La continuité
La fonction exponentielle
La fonction logarithme népérien
Etudes de fonctions et fonctions trigonométriques
Les primitives
Les intégrales
Les nombres complexes
La géométrie dans l’espace
Les lois de probabilités discrètes
Les lois à densité
Intervalle de fluctuation et estimation
La divisibilité et congruence (spé maths)
Le PGCD, les théorèmes de Bézout et Gauss, résolution d’équation de type ax + by = 1 (spé maths)
Les nombres premiers (spé maths)
Les matrices et suites de matrices (spé maths)

Pour conclure, si je devais m’efforcer de donner des priorités, je dirais :

  • Les suites. Car on en rencontre souvent dans la vraie vie et qu’elles sont fondamentales dans la réflexion algorithmique.
  • Les statistiques et probabilités pour des raisons évidentes. Dans la vraie vie lycéenne, les profs s’y attardent peu. Mais le programme est vraiment bien : on y voit les notions de base telles que l’analyse univariée, la loi binomiale, les intervalles de confiance et de fluctuation, le théorème de Moivre-Laplace, les lois de probabilité discrètes et les lois à densité
  • Les intégrales : indispensables pour calculer des probabilités sur des lois à densité.
  • Les matrices : là aussi il s’agit d’un outil incontournable, puisqu’il s’agit de tableaux de nombres. Elles sont un outil central en algèbre linéaire.

Les MOOCs : technique vs data science

En parallèle des maths, j’ai consacré une grande partie de mon temps à suivre des MOOCs, principalement chez OpenClassrooms. Dans ma vision des choses, je les ai classés en deux grandes catégories : ceux consacrés à la technique et ceux consacrés à la data science.

Même si la frontière est parfois mince, ce que je considère dédié à la technique est tout ce qui touche au développement, sans mettre en jeu de dimension mathématique. Cela peut être par exemple l’apprentissage d’un langage de programmation comme Python ou C++, apprendre à administrer un serveur SQL. Ou bien encore apprendre à déployer un serveur web sur GCP ou AWS, savoir comment fonctionne une API-Rest, infogérer un serveur dédié chez OVH ou que sais-je encore. En fonction du métier, certaines de ces compétences pourront ne jamais servir ou à l’inverse devenir centrales. Le fait est que cela reste à mon avis des bases incontournables.

Puis, il y a les compétences propres au data scientist. Si l’on travaille avec Python, cela va être d’apprendre entre autres Numpy, Pandas et Matplotlib. Travailler avec des notebooks Jupyter. Savoir importer, nettoyer, analyser un jeu de données. Ensuite d’autres compétences viennent se greffer, mais qui dépassent de mon point de vue le stade des bases fondamentales.

Découvrir Python et ses librairies phares avec Martin Daniel et Le Wagon

Quand on pense data science, on pense souvent Python. Et on pense aussi souvent Pandas. Cette librairie permet à Python de « concurrencer » R puisqu’elle apporte un nouvel objet qu’on retrouve nativement dans R, nommé « dataframe ». Cet objet permet de modéliser une table relationnelle.

Son créateur, Wes McKinney, a écrit un premier bouquin en 2012 « Python for Data Analysis ». Il permet de découvrir le monde de la data science avec Python. Principalement le data wrangling, la lecture, le nettoyage et la visualisation de données.

Ce bouquin a grandement inspiré Martin Daniel (data scientist chez Airbnb), qui a créé un MOOC en plusieurs vidéos. C’est avec ces vidéos que j’ai découvert Pandas il y a plus d’un an. Ici on va droit au but et très rapidement on comprend la puissance de ces outils.

Voici le lien de la formation : ici 🙂

Attention en revanche, ici tout est réalisé en Python 2. Plus les mois passent et plus les vidéos vont devenir obsolètes, car Pandas évolue aussi. Mais je les recommande quand même chaudement, car en une petite dizaine d’heures vous aurez un overview de ce qu’il est possible de faire.

Je vous conseille d’avoir déjà des notions de base en Python et d’avoir déjà manipulé des données SQL pour être à l’aise dès le début.

A noter qu’en septembre 2017, Wes McKinney a sorti une nouvelle édition de son bouquin. Cette fois-ci celui-ci est basé sur Python 3.

MOOCs OpenClassrooms orientés données / statistiques

Initiez-vous à l’algèbre relationnelle avec le langage SQL : Permet de (re)découvrir le langage SQL sous un autre angle. A savoir sous un angle agnostique, où l’on oublie le langage spécifique SQL pour mettre à la place des mots sur des concepts. Je recommande chaudement 🙂

Décrivez et nettoyez votre jeu de données : Permet d’apprendre les bases des statistiques : vocabulaire, analyse univariée et analyse bivariée. Je vous conseille d’avoir déjà un niveau de terminale S avant de l’attaquer pour ne pas découvrir les bases des statistiques de but en blanc ici. Bien que cela puisse marcher 🙂

Initiez-vous à la statistique inférentielle : Permet de découvrir les bases des différentes outils rencontrés en statistiques inférentielles : les estimateurs, les intervalles de confiance et les tests permettant de rejeter ou valider une hypothèse. Ici, tout est illustré avec R et non Python.

Découvrez les librairies Python pour la Data Sience : Un peu dans le même esprit que le MOOC de Martin Daniel, vous découvrirez ici en quelques heures tous les fondamentaux : Python, Numpy, Pandas, Scikit-Learn, Jupyter-Notebook.

Se (re)faire une base en développement back-end

Il s’agit toujours de MOOCs OpenClassrooms. Mais ceux-là ne sont rattachés à aucun parcours. Ils sont donc plus complets car sont censés se suffir à eux-même. Et ils sont aussi plus difficiles. Ils ont l’avantage de proposer des activités de haut niveau qui vous demanderont une certaine implication. Si vous partez de zéro sur ces sujets, vous pouvez prévoir 120 heures de travail à minima, si vous creusez un peu et faites les choses bien 🙂 Ceci est valable pour le second et le troisième, le premier étant une introduction à Git / Github réalisable en une journée.

Gérez votre code avec Git et Github : Vous découvrirez en quelques heures l’essentiel à savoir pour commencer à utiliser Git et Github dans vos projets.

Apprenez à programmer en Python Ici, le but est d’apprendre Python pour réaliser du développement logiciel. On n’y parle pas de Pandas ni de Jupyter-Notebook. En revanche on y apprend la programmation orientée objet, la philosophie Python, on découvre une partie de sa librairie standard. Cela reste aujourd’hui pour moi le meilleur support francophone pour découvrir Python. Si vous réalisez toutes les activités et que vous prenez du temps pour creuser certains sujets, comptez à minima 70 heures de travail.

Administrez vos bases de données avec MySQL Ici aussi, l’apprentissage est orienté développeur. Le fait est que c’est la ressource la plus complète que j’ai pu trouver sur le sujet. Les activités sont super intéressantes et ne concernent pas uniquement la partie utilisateur (requêtes). On y apprend aussi la partie administration (vues, triggers, procédures stockées, etc). Ceci permet à la sortie d’avoir un bel overview. Comptez à minima 50 heures de travail pour réaliser le MOOC entièrement.

Vous pouvez également suivre les MOOCs Python rattachés au parcours « Développeur d’application Python« . L’approche est complètement différente.

Au final, vous pouvez compter 200 heures sur les sujets Python / MySQL en creusant un peu.

Quelques MOOCs supplémentaires

Concevoir un site avec Flask : Flask est un mini framework Python. Sa philosophie est à l’opposé à celle de Django. Aujourd’hui Flask est populaire notamment dans le déploiement d’API Rest, mais aussi pour monter de petits sites web.

Toujours sur Flask, je vous conseille également l’excellente vidéo de Honoré Hounwanou. En deux heures, vous verrez comment déployer un blog Flask from scratch. Bien entendu vous pouvez doubler ce temps si vous souhaitez pratiquer en même temps que la vidéo.

Découvrez le cloud avec Amazon Web Services : Ici on retrouve Matthieu Nebra qui nous présente les trois services phares d’AWS : EC2, RDS et S3. Les pré-requis sont les connaissances de base en développement web : être à l’aise sous Linux et avec la console, savoir déployer un environnement Apache / MySQL / PHP.

Modélisez, implémentez et requêtez une base de données relationnelle avec UML et SQL. : Si vous êtes déjà familiarisé à SQL, seule la première partie du MOOC vous intéressera : elle explique comment modéliser une base de données à partir d’un domaine fonctionnel.

Conclusion

Voilà, vous savez à peu près tout 🙂 J’ai fait l’impasse sur certains sujets, car le billet est déjà trop long et trop dense. J’espère avoir suffisamment structuré l’ensemble pour que vous vous y retrouviez. Bien entendu, cette publication est avant tout l’occasion pour moi d’ouvrir le dialogue avec toute personne désireuse d’échanger sur le sujet.

Quelles que soient votre expérience et votre position actuelle, toute remarque, suggestion, critique ou question sont les bienvenues 🙂

A très vite !

3 réponses sur “Devenir Data Scientist : travail préparatoire en 500 heures”

  1. Bonsoir. Article très intéressant. En ce moment, j’essaie d’apprendre un peu la data science pour le seo notamment avec R. Me conseille-tu les cours de maths mentionnés dans ton article pour me sentir plus à l’aise avec des notions scientifiques. J’ai des bases de PHP / MySQL mais je suis vraiment une bille en maths : bac L + licence d’histoire + maîtrise de journalisme et des notes catastrophiques en maths en seconde.
    Merci pour ton témoignage et ta réponse.
    Bonne soirée.
    Véro.

  2. Bonjour Véro,

    Pour ma part je dirais que c’est une base incontournable si tu souhaites t’orienter de manière sérieuse vers la data science, même orientée SEO. Tu peux même repartir des bases de seconde, Yvan Monka et d’autres youtubeurs proposent d’excellents supports. Avec un peu de rigueur et quelques heures de travail par semaine, tu pourras d’ici quelques mois te sentir à l’aise et mieux comprendre les outils que tu pourrais être amenée à manipuler avec R.

    Bonne continuation !

    Nicolas

  3. Bonjour Nicolas,
    Génial, super article, merci merci beaucoup et surtout bravo 😊 très inspirant.
    Si je prends tous les sujets (env. 30) cela représente 6 à 7 heures par sujet. Quel était ton rythme et volume de travail ?
    Arrives-tu à définir le moment tu décidais de passer au sujet suivant et quels ont été les sujets qui ne passaient pas ? Je suis (juste) un peu perfectionniste… du coup intéressé par ta répartition par sujet en math comme jalon
    Une ressource incroyable est la Khan Academy. J’ai refait le parcours algèbre de base avec. C’est super intégré car tu as des vidéos très ciblée comme pour Yvan, des exercices pour te driller avec des aides des indices sur le processus (https://fr.khanacademy.org)
    Et as-tu démarré la formation sur OpenClassroom (ou autre) ? Si oui, es-tu à l’aise grâce aux compétences acquise ci-dessus?
    Encore bravo et continue

Répondre à Nicolas Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *