XD blog

blog page

algorithme, ensae, informatique, mathématique


2013-03-26 L'informatique, une matière moins noble

Quand j'ai soutenu ma thèse, j'ai découvert que mon doctorat m'offrirait moins de portes académiques tout simplement parce celui-ci me désignait comme docteur en informatique et non en mathématiques. Je ne sais pas si c'est toujours le cas mais l'informatique a toujours eu en France un côté moins noble parce que très appliqué. Aujourd'hui, des phénomènes comme Big Data, Data Scientist prennent de l'ampleur et avec eux l'utilisation de l'informatique. Il est pratiquement impossible de se passer des ordinateurs, dès qu'on aborde un sujet un tant soit peu appliqué, il faut savoir coder, ce que j'ai très peu fait dans un cadre scolaire, ce que j'ai beaucoup fait en dehors de l'école et surtout au travail. On peut prétendre que cela s'apprend facilement, que comprendre les maths est plus difficile, et qu'avec un peu de pratique, on saura faire. Il me serait difficile de réfuter ça, c'est comme ça que j'ai appris. Toutefois, c'est un peu comme les gammes au piano, plus on en fait, plus on est à l'aise.

Cette division math/info est beaucoup moins présente dans les pays anglosaxons où les mathématiques appliquées et l'informatique s'appellent computer science. Lors des entretiens d'embauche, il est rare de passer au travers d'exercices de codes. C'est parfois même le premier filtre écrit préalable au premier entretien. Entre quelqu'un que cela ne rebute pas et quelqu'un qui prend la chose de haut, les sociétés n'hésitent pas longtemps. Même s'il est prétendument facile de devenir programmeur, de nombreuses compagnies ont tendance à rejeter des candidats qui n'ont jamais beaucoup programmé si c'est un élément important du poste à pourvoir.

Les smartphones sont aussi de petits ordinateurs programmables. Il est probable que d'autres objets du quotidien gagneront en complexité et deviendront à leur tour pilotables à l'aide un langage de programmation. Je pense que c'est un outil dont il faudrait commencer l'apprentissage plus tôt. Il en serait moins rébarbatif et, accessoirement, n'en limiterait plus l'usage aux seuls geeks. C'est d'ailleurs le cas dans certains pays de l'est comme la Roumanie. Maîtriser la programmation pourrait faire gagner beaucoup de temps à quiconque se sert d'Excel au quotidien.

Lorsqu'on doit pondre un algorithme qui doit tourner en production 24h sur 24, savoir coder est très important. Il peut y avoir des facteurs 10 ou 100 sur le même algorithme programmé de façon plus ou moins efficace. Savoir programmer n'est pas tout, il est utile d'apprendre les tournures de phrases les plus fréquentes, d'acquérir une sorte de culture générale du domaine, savoir ce que sont des tableaux, des arbres, savoir quand il est préférable d'utiliser l'un plutôt que l'autre, savoir pourquoi quand on divise un problème en deux, on passe d'un coût en O(n) à un coût en O(ln(n)), comprendre pourquoi il vaut mieux utiliser un index lorsqu'on fait une jointure sur deux tables SQL...

En ce qui concerne l'informatique, j'ai quasiment tout appris en pratiquant, parce que terminer un programme signifie aussi l'avoir compris. La pratique permet aussi de comprendre qu'il existe rarement un programme optimal en toute circonstance et qu'on choisira une façon de coder plutôt qu'une autre en fonction du volume, de la nature des données qu'on manipule. De ce fait, beaucoup de programmes sont une compilation complexe de recettes simples. On s'aperçoit aussi parfois qu'on retrouve le même algorithme sous différents visages, plus court chemin dans un graphe de Djikstra, distance d'édition de Levenstein, séquence la plus probable de Viterbi.

Je manipule tellement de données qu'en regarder quelques-unes ne suffit plus à donner une vue d'ensemble. Il faut sans cesse agrégrer, classifier, régresser. Ce travail est quasiment impossible si on ne sait pas programmer. Cette culture algorithmique me permet bien souvent d'aller plus vite, d'obtenir les mêmes résultats en un temps moindre avec, parfois, une certaine élégance.

Pour finir, je conseille l'écoute d'une émission de radio que j'ai découverte après avoir écrit ceci : L'éloge du savoir, Algorithmes, machines et langages (entretien avec Gérard Berry) L'informatique est train de changer la façon d'organiser nos vies et il est mal enseigné aujourd'hui et surtout trop tard. Que sera notre monde dans les prochaines années (et non les prochaines décennies) ? Nos dirigeants ne prennent la mesure des changements que l'informatique n'a pas fini d'apporter comme le dit Michelle Volle dans cet article : Pour comprendre l'iconomie.


<-- -->

Xavier Dupré