En recrutement, je me demande souvent ce qui fait que je conseillerai à un candidat de se positionner comme data scientist, comme data engineer ou comme développeur spécialisé en algorithmie parallèle et distribuée.
En effet, sur le papier ces profils sont assez proches : les trois doivent avoir des compétences en développement et algorithmie, en statistiques et mathématiques appliquée et en manipulation de données. Bien sûr, les niveaux de compétences requis ne seront pas exactement les mêmes selon les profils comme l’illustre le tableau ci-après.
Graphique compétences / métier
Toutefois, s’agissant de jeunes candidats, ils ont encore tout à apprendre et monteront en compétence avec l’expérience. Ce sont en réalité leurs compétences humaines (soft-skills) qui feront avant tout la différence. Pour bien comprendre ce qui fait leurs spécificités, il convient d’analyser leurs environnements et les différentes interactions qu’ils doivent avoir. De ces interactions, nous pourrons identifier les critères qui légitiment leurs actions et leur expertise.
- Data Scientist
Le rôle de Data Scientist est le plus simple à expliquer : il s’agit avant tout de concevoir des algorithmes permettant de transformer les données de l’entreprise ou publiques en informations voire en décisions utiles vis-à-vis des enjeux métier. De ce fait, il doit interagir avec le métier afin de bien comprendre ses enjeux mais aussi de bien faire comprendre la valeur, les contraintes et les limites de ses solutions. Il doit donc savoir faire preuve d’écoute, de pédagogie et être capable de faire du storytelling. - Data Engineer
Le Data Engineer a pour rôle l’industrialisation des systèmes conçus par le Data Scientist. Il mettra en œuvre les solutions permettant un fonctionnement en conditions industrielles. Pour cela, il pourra être amené à adapter les algorithmes conçus par les Data Scientists. Outre ces derniers, le Data engineer intéragit également avec les services de support aux infrastructures et les utilisateurs en support technique pour les problèmes suffisamment complexes. Compte tenu des enjeux de production auxquels est souvent confronté le Data Engineer, il doit savoir garder son sang-froid, prendre du recul par rapport aux problèmes et faire preuve d’écoute. - Algorithmicien parallèle et distribué
Moins connu, le rôle de l’algorithmicien parallèle et distribué rôle est pourtant assez simple à appréhender : il doit faire en sorte que les modèles mis au point par les Data Scientists puissent répondre aux enjeux de performances requis par le métier. Il peut être considéré comme une sous spécialité du Data Engineer, même si la plupart n’ont pas ce parcours : ce sont généralement déjà des développeurs experts en algorithmes et système parallèles et distribués. Par exemple, un expert HPC est généralement de fait un algorithmicien parallèle et distribué. Il interagira principalement avec les Data Scientists et les Data Engineers. A l’intersection des métiers de Data Scientist et de Data Engineer mais sans l’interaction avec l’utilisateur, l’algorithmicien parallèle et distribué doit montrer une forte aptitude d’abstraction et de rigueur intellectuelle, une forte capacité de pédagogie et une capacité à prendre du recul.
Dans de nombreux projets, les deux premiers profils suffisent. Toutefois, dès que la problématique des performances se fait sentir, l’algorithmicien parallèle et distribué devient indispensable. On parle alors de problématiques HPDA (High Performance Data Analytics).
Data scientist | Data engineer | Algorithmicien parallèle et distribué | |
---|---|---|---|
Développement et algorithmie | - | = | + |
Statistiques et mathématiques appliquées | + | - | = |
Manipulation des données | = | + | - |