Portes ouvertes développement web (04/04/2024 à 12h) : inscrivez-vous !

Le développeur web doit-il être un professionnel de l’algorithme ?

2021-04-01
Le-developpeur-web-doit-il-etre-un-professionnel-de-l-algorithme
 « Mmmm… » [bruit d’une école qui réfléchit].
On pourrait se demander pourquoi on parle d’algorithmie alors que l’école n’en propose que très peu dans ses formations. D’ailleurs, ce choix suscite énormément de questions car il est parfois jugé comme une anomalie. On aurait donc pu faire un article « Pourquoi O’clock ne forme que très peu
à la science de l’algorithme ? ». Sauf que cette question en appelle fatalement une autre, un peu plus profonde, à savoir « Le développeur doit-il nécessairement faire de l’algo pour être un développeur ? ».Si vous le voulez bien, on va plutôt répondre à cette question.

C’est quoi un algorithme ?

Alors, un algorithme c’est une formule ou une procédure qui permet de résoudre un problème. Un programme informatique peut être considéré comme un algorithme sophistiqué, par exemple. C’est pourquoi on va s’y intéresser. Dans le développement web, l’algorithme ressemble à une suite d’instructions et de lignes de code faisant une tâche précise.

Il existe des ensembles d’algorithmes que l’on nomme parce qu’on s’en sert souvent ou parce qu’il y en a de nombreuses variantes. Comme les algorithmes de tri, par exemple. On va rester sur l’algo de tri pour mieux t’expliquer de quoi il en retourne.

algorithmes de tri
Coucou, on est les algorithmes de tri, on se revoit dans la vidéo juste en bas.

Si on a une liste de nombres que l’on veut trier du plus petit au plus grand ou de mots que l’on doit ranger par ordre alphabétique, l’algorithme de tri sera notre ami. Tu pourras compter sur lui pour trier la complexité des données qui se trouvent sur ton ordinateur. C’est le principe de l’algorithme de tri.

Il y en a des plus efficaces que d’autres, ça dépend du contexte. Si tu veux un exemple, tu peux regarder cette petite vidéo.

Si t’as regardé, tu as dû remarquer que la vitesse de tri n’est pas toujours la même. Si tu as simplement écouté la musique, on espère que tu as passé un bon moment de danse derrière ton écran. Et si tu n’as même pas cliqué sur cette vidéo, bah, on ne le saura jamais, donc passons à la suite.

À ce stade, on a compris qu’un algorithme, c’est l’ensemble des instructions pour faire quelque chose comme trier, mais pas uniquement. On peut concevoir des algorithmes pour l’optimisation de tout un tas d’autres choses, comme enregistrer les dernières modifications apportées à ton profil utilisateur sur un site ou encore lister les derniers mails que tu as reçus. Les algorithmes font donc partie de ton quotidien.

Pourquoi ils ont la cote ?

Les plus célèbres, ou du moins ceux qui font le plus parler d’eux, ce sont les algorithmes du moteur de recherche Google, du site web YouTube ou encore ceux utilisés par Amazon. Pourquoi ? Parce qu’ils sont secrets, influents et semblent à la fois très rapides et complexes.

Pour te donner un exemple de ce qu’ils sont capables de faire : lorsque tu reçois dix pop-ups en même pas une minute sur les chaussons en forme de batmobile que tu as regardé hier, ça ne s’appelle pas de la coïncidence, c’est l’algorithme de recherche qui a bien fait son boulot.

Les algorithmes de 3,00001 X plus près

Regardons les algorithmes d’un peu plus près :loupe_droite:, il y a ceux qui réalisent des fonctionnalités, comme ce qui se passe quand on clique quelque part sur une page web, par exemple. Et puis, il y a ceux qui vont structurer des données de bas niveau, faire des choses complexes comme chiffrer un fichier, trier une liste ou encore faire de la prédiction et te dire le temps qu’il fera demain.

Ces derniers sont étudiés à la loupe par des chercheurs en informatique ou des universitaires. Dans ces métiers, on va connaître des choses très poussées sur le cœur des machines et de la logique, mais ça ne veut pas dire qu’on sait faire un site web ou développer une application. Écrire un algorithme et écrire avec un langage de programmation pour créer une interface web, ce n’est pas tout à fait la même chose.

En gros, le chercheur est spécialisé dans la recherche et le développeur dans le développement.

Retour vers le début de l’informatique

Au tout début, l’informatique servait aux calculs. On a donc laissé naturellement cette branche aux experts en mathématiques. Ce sont eux qui ont créé les premiers algorithmes et élaboré les premières théories sur des algorithmes efficaces. Cependant, les années ont passé et il n’est plus nécessaire d’être mathématicien, ni même bon en maths pour travailler dans l’informatique. Laissons-les donc s’amuser avec leurs calculs bien complexes et tout ce qui touche à l’algorithmie pure et dure. Le développeur crée des fonctionnalités et ce n’est pas tout à fait la même chose.

Les algorithmes et O’clock

En cours, on fait des “algos”, tout le temps ! Mais, on ne vient pas de dire le contraire ? Qu’il fallait laisser les calculs complexes de côté pour coder ? Ouais, mais ça ne nous empêche pas de travailler avec, sans faire nous-mêmes le calcul. Pour appliquer un algorithme de tri dans une liste, ou encore pour déterminer si le 12 janvier dernier était un dimanche ou non, il y a des fonctions et des librairies toutes prêtes et très efficaces pour faire ces calculs. On ne va tout de même pas implémenter (recoder) un algorithme de tri sur la base d’un modèle de calculs complexes, alors que ça se code toujours de la même manière et qu’on a plus important à faire. Avec une librairie de code déjà prête à être utilisée, on préfère faire confiance à ceux qui aiment les calculs et se concentrer sur la finalité de notre projet.

Chacun son truc

On ne va pas se mentir, les algorithmes, ce n’est pas pour tout le monde. De la même manière que certains préfèrent développer côté back-end et d’autres le côté front-end, certains préfèrent développer des choses concrètes et d’autres aiment manipuler de l’abstrait. Cette nuance permet de mettre d’un côté ceux qui aiment créer et veulent que ton panier sur un site soit joli, clair et bien rangé et de l’autre côté, ceux qui aiment évaluer la complexité des algos et chercher comment on peut trouver en 0.1 seconde des produits similaires à te proposer. Ce sont deux tâches différentes, deux niveaux de réflexions différents. On peut aimer les deux, on peut être bon dans les deux, mais on ne demande pas à un développeur junior de maîtriser les subtilités du second cas.

Mais quand même, pourquoi on en fait si peu chez O’clock ?

Tout simplement parce qu’on se base sur les réelles pratiques qui s’appliquent en entreprise. Et vu le temps qu’on a pour enseigner un métier tout entier, on a préféré enseigner comment créer des sites et applications web plutôt que comment construire des algorithmes. Pour nous, le développeur web doit être assez créatif et être en mesure de trouver les algorithmes adéquats aux fonctionnalités de son application ou site web. C’est d’ailleurs ce à quoi on forme nos étudiants.

On n’attend pas du développeur web qu’il sache coder un algorithme complexe ou qu’il connaisse ce qu’utilisent ses bases de données préférées pour retrouver l’information rapidement. Ça serait un peu comme demander à une hôtesse de l’air de tout connaître du turboréacteur. Ce n’est pas impossible, ça pourrait être utile, mais ce n’est pas indispensable.

Chez O’clock, on se sert d’algorithmes qui font des tâches très simples et très unitaires pour construire des fonctionnalités complexes. On ne demande donc pas au développeur d’avoir un niveau d’ingénieur, surtout pas dès la sortie de la formation. On enseigne plutôt à fouiller la documentation, à décortiquer un problème et trouver la bonne librairie pour le résoudre, puis à apprendre à s’en servir.

Finalement, on en fait quand même !

Bah ouais, on n’a jamais dit qu’on n’en faisait pas du tout. En S00 (la saison de cours avant de commencer la formation), O’clock donne des ressources pour que les futurs apprenants (peut-être toi, qui lis ces lignes) puissent entrevoir ce qu’est un “algo”. Pendant le Socle, on aborde le sujet et on leur demande de réaliser quelques algorithmes simples. En spé Data, on aborde un peu plus en profondeur les algorithmes de tri.

Donc, oui, finalement on fait des algorithmes chez O’clock et on en utilise énormément. On a simplement choisi de former des développeurs, plus précisément des développeurs web, et pas des as de l’algorithmie.