Journal
De la place des mathématiques dans la programmation
J'entends souvent les développeurs débutants dire que les mathématiques ne sont pas utiles pour programmer.
En un sens ce n'est pas totalement faux, les mathématiques ne sont pas strictement nécessaires pour écrire des programmes. Toutefois, c'est uniquement car les programmes que nous écrivons font appel à des librairies qui résolvent la plupart des problèmes véritablement complexes que nous pourrions rencontrer. Ces librairies sont des boîtes noires qui nous masquent les détails mathématiques et algorithmiques sous-jacent, mais hélas ce n'est pas parce que nous ne manipulons pas ces détails qu'ils n'existent pas ;)
En fait, on retrouve des fondements mathématiques dans quasiment tous les domaines de l'informatique.
Retrouver des données "intéressantes" dans de grands ensembles (data mining, moteur de recherche) ? Des statistiques, des filtres, etc.
Les bases de données ? Théorie des ensembles, fonctions de hachage, etc.
L'encodage audio/vidéo ? Analyse numérique, mathématiques du signal, DFT, échantillonnage, statistiques, ...
La 3D ? Alors là c'est le pire je pense ; géométrie dans l'espace, physique, calcul vectoriel, calcul matriciel, calcul intégral, espaces, analyse numérique, algèbre, ...
Le chiffrement ? La compression ? La détection des erreurs ? Arithmétique modulaire, théorie des ensembles, théorie de l'information, ...
OCR ? Reconnaissance vocale ? Statistiques, réseaux bayésiens, réseaux de neurones, ...
Les réseaux ? Théorie de l'information, théorie des graphes, statistiques, ...
Ce n'est pas parce que nous ne manipulons pas toutes ces choses au quotidien qu'elles n'existent pas. Les ignorer revient à s'en remettre à des boîtes noires prétendument magiques, et à mal les utiliser.
En un sens ce n'est pas totalement faux, les mathématiques ne sont pas strictement nécessaires pour écrire des programmes. Toutefois, c'est uniquement car les programmes que nous écrivons font appel à des librairies qui résolvent la plupart des problèmes véritablement complexes que nous pourrions rencontrer. Ces librairies sont des boîtes noires qui nous masquent les détails mathématiques et algorithmiques sous-jacent, mais hélas ce n'est pas parce que nous ne manipulons pas ces détails qu'ils n'existent pas ;)
En fait, on retrouve des fondements mathématiques dans quasiment tous les domaines de l'informatique.
Retrouver des données "intéressantes" dans de grands ensembles (data mining, moteur de recherche) ? Des statistiques, des filtres, etc.
Les bases de données ? Théorie des ensembles, fonctions de hachage, etc.
L'encodage audio/vidéo ? Analyse numérique, mathématiques du signal, DFT, échantillonnage, statistiques, ...
La 3D ? Alors là c'est le pire je pense ; géométrie dans l'espace, physique, calcul vectoriel, calcul matriciel, calcul intégral, espaces, analyse numérique, algèbre, ...
Le chiffrement ? La compression ? La détection des erreurs ? Arithmétique modulaire, théorie des ensembles, théorie de l'information, ...
OCR ? Reconnaissance vocale ? Statistiques, réseaux bayésiens, réseaux de neurones, ...
Les réseaux ? Théorie de l'information, théorie des graphes, statistiques, ...
Ce n'est pas parce que nous ne manipulons pas toutes ces choses au quotidien qu'elles n'existent pas. Les ignorer revient à s'en remettre à des boîtes noires prétendument magiques, et à mal les utiliser.
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.