Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

« Programmer c'est appliquer des concepts mathématiques », d'après un ingénieur chez Facebook
Qui regrette d'avoir négligé les maths à l'université

Le , par Patrick Ruiz

276PARTAGES

21  0 
Dans plusieurs systèmes éducatifs, on conseille à des tiers désireux de poursuivre des études en programmation informatique de s’assurer de disposer d’un socle de connaissances conséquent en mathématiques. Il arrive souvent que certains des étudiants qui s’engagent dans cette filière n’en saisissent pas le bien-fondé et négligent les mathématiques au cours de leurs études. En effet, il y a que dans l’imagerie populaire, programmer se résume à s’asseoir devant un clavier et un écran pour saisir des lignes de code.

Dans un récent billet de blog, un ingénieur chez Facebook tire la sonnette d’alarme sur la dangerosité de telles postures. En fait, Walter Schulze commence par regretter d’avoir négligé les mathématiques pendant son cursus universitaire avant d’expliquer pourquoi ceux qui, comme lui, on fait pareil pourrait être rattrapés dans la vie professionnelle.


De façon brossée, Schulze souligne que l’on peut recevoir un bon salaire en tant que travailleur dans la filière de la programmation informatique sans que le niveau en mathématiques ne soit interpellé. Toutefois, son propos laisse filtrer que le champ d’activités de tiers dans cette situation serait limité à la programmation d’applications qui ne touchent pas à des domaines spécialisés. « Les mathématiques sont l’outil [incontournable] pour la résolution des problèmes spécialisés », indique-t-il.

Walter Schulze illustre son propos avec une liste d’au moins trois domaines hors de portée de tiers sans un niveau conséquent en mathématiques. De la programmation des jeux vidéos à l’intelligence artificielle en passant par le classement de pages web, il souligne comment certains concepts mathématiques sont mis en œuvre pour arriver à résoudre des problèmes.

« De toute évidence, la programmation graphique dans les jeux et les films nécessite des connaissances en physique, mais comme la physique exacte peut être trop coûteuse à simuler correctement, nous utilisons généralement des méthodes numériques issues des mathématiques. Par exemple, l'intégration par la méthode de Verlet pour simuler les poupées de chiffon », précise-t-il.


« L'apprentissage machine, une petite partie de l'intelligence artificielle, est un domaine que j'ai trouvé très intriguant lors de mes études. Suivre les gestes au sein d'un jeu de danse, trouver des films qui pourraient vous plaire sur Netflix, reconnaître la chanson qui est en cours de lecture, etc. Si vous voulez aider à construire l'un de ces systèmes, vous aurez besoin au moins d'une bonne compréhension des dérivées, de la théorie des probabilités et de l'algèbre linéaire », ajoute-t-il.


C’est moins évident, mais d’après Walter Schulze, l’algorithme de recherche sur le Web de Google est concerné. « L'algorithme de classement de pages prend en compte le nombre de liens vers et depuis une page web et les place dans une matrice, puis il utilise une approximation d'un vecteur propre de l'algèbre linéaire pour calculer un classement plus pertinent », note-t-il encore.


Programmer c’est manger les mathématiques

En fait, le développement de Walter Schulze laisse filtrer qu’en tant que travailleur dans la filière de la programmation informatique on ne peut faire sans les mathématiques. « Programmer c’est appliquer des concepts mathématiques, c’est manger les mathématique », lance-t-il.

On a beaucoup discuté sur la question de savoir si c’est une grosse erreur de considérer la POO comme standard de l’industrie pour l’organisation des bases de code. Qui dit programmation orientée objet (POO) dit abstraction et Schulze est d’avis qu’il s’agit d’une notion très importante dans le domaine. « Lorsque nous voyons un motif ou voulons cacher une certaine complexité nous créons une abstraction en utilisant par exemple des classes ou des interfaces abstraites », explique-t-il. Schulze relève que les développeurs peuvent puiser dans les conclusions des travaux en matière d’algèbre abstraite pour parvenir à résoudre certains problèmes d’abstraction en informatique. Une vidéo au sein de son billet permet de replonger dans la notion de groupes vue en mathématiques et d’établir les parallèles avec l’abstraction.


En sus, Walter Schulze cite la théorie des catégories comme une source d’inspiration valable pour ceux qui sont appelés à appliquer des techniques algorithmiques comme la décomposition de problèmes en sous-ensembles.

Grosso modo, l’ingénieur de Facebook est d’avis que les les travailleurs dans la filière de la programmation informatique qui ont négligé les mathématiques passent à côté d’une richesse énorme. Toutefois, il reconnaît que certains concepts mathématiques sont tellement abstraits qu’il faut du temps pour les maîtriser. « Plus tôt on se lance dans la maîtrise de ces concepts, mieux c’est », souligne-t-il. Le meilleur moment pour s’y pencher c’est pendant que l’on est sur les bancs. Sinon, il faudra avoir le courage de revenir sur ses pas alors que l’on est déjà dans le monde du travail.

Source : billet de blog

Et vous ?

Les mathématiques sont-elles le socle de la programmation ?

Avez-vous le sentiment que certaines des difficultés auxquelles vous faites face dans votre travail émanent de votre mauvais niveau en maths ?

Un excellent niveau en mathématiques est-il nécessaire pour être bon dans la filière du développement informatique ?

Quels sont les concepts mathématiques qui vous ont été les plus utiles jusqu’ici ?

Voir aussi :

France : en 20 ans, le niveau en maths des élèves de terminale S est en baisse de 20 %, une menace pour l'enseignement supérieur en informatique ?

Les professeurs des classes prépas alertent sur le faible niveau en sciences du bac S, une menace pour l'enseignement supérieur en informatique ?

Réforme du lycée : les maths ne sont-elles utiles que dans les domaines scientifiques et informatiques pour être reléguées au rang de spécialité ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de grunk
Modérateur https://www.developpez.com
Le 31/07/2019 à 16:38
Perso j'ai toujours été une bille en math , en partie parce que l'enseignement est à mon sens mauvais (que de la théorie , jamais de cas pratique) et que du coup j'ai jamais eu l'envie de m'y intéresser.
J'ai la chance en revanche d'avoir une capacité d'analyse importante et un bon sens logique.
De fait j'ai jamais été trop handicapé par mon piètre niveau en math , mais c'est parce que je n'ai quasi jamais besoin de notion avancée de mathématiques dans ce que je fais tous les jours.

En revanche ce que je constate assez régulièrement , c'est que là où il y'a besoin d'un gros niveau en maths , le niveau de programmation est en général pas folichon (c'est comme ça chez nous en tt cas).
En gros c'est plus des cursus scientifique qui font de la programmation parce que c'est l'outil incontournable sans forcément de connaissance pointue dans le langage ou les différents concepts de programmation.
10  1 
Avatar de 4bstract
Membre habitué https://www.developpez.com
Le 31/07/2019 à 13:41
Les mathématiques sont-elles le socle de la programmation ?
Un excellent niveau en mathématiques est-il nécessaire pour être bon dans la filière du développement informatique ?
Les mathématiques sont le socle de l'informatique mais pas de la programmation. Comme dit dans l'article, pas besoin de s'y connaître en mathématique pour être programmeur. Et selon le domaine d'activité, il est possible de très bien s'en sortir en étant une bille en mathématiques.
Avez-vous le sentiment que certaines des difficultés auxquelles vous faites face dans votre travail émanent de votre mauvais niveau en maths ?
Non, les universités qui proposent un cursus en informatique font en général attention à donner des cours en mathématiques.
10  2 
Avatar de pboulanger
Membre éclairé https://www.developpez.com
Le 31/07/2019 à 14:19
Non, les universités qui proposent un cursus en informatique font en général attention à donner des cours en mathématiques.
Aux US, majoritairement, soit tu fais des maths soit de l'info mais les cursus où les 2 sont proposés sont rares; et comme tout est payant, les étudiants vont au plus simple... En France, il y a beaucoup de formations informatiques où les maths sont très peu présents... Et les concepts mathématiques sont utiles: celui qui n'a pas compris la récursivité en math aura des difficultés à la comprendre en programmation, etc...
Les mathématiques m'ont été très utiles durant ses 21 années...
6  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 31/07/2019 à 15:51
Programmer, c'est écrire d'une manière formalisée pour que la machine les comprenne une suite de décisions. Ce n'est pas des maths. Mais l'habitude de penser en maths aide à formaliser ses suites de décisions. Le lien est indirect, mais mon expérience est qu'il est réel.
8  2 
Avatar de Sherif Das
Futur Membre du Club https://www.developpez.com
Le 02/08/2019 à 13:06
Bonjour. Mon niveau en maths a toujours été faible et je ne savais pas que ça pourrait me pénaliser plus tard. Aujourd'hui je suis grand passionné d'informatique et je remarque qu'une bonne dose en maths me serait utile dans les projets et visions que j'ai. Maintenant je passe beaucoup de temps pour maîtriser les mathématiques afin de mieux cerner un domaine informatique pointu. Merci.
4  0 
Avatar de Jay13mhsc
Membre du Club https://www.developpez.com
Le 08/08/2019 à 20:22
Après 15 ans d’expérience, d’un gars qui a négligé les maths en école d’ingé, j’ai petit à petit senti que j’étais passé à côté d’un truc qui m’a pénalisé dans la compréhension des langages.
Bon. Maintenant je n’en parle même pas, car je fais depuis peu du PureScript et du Haskell (en prod). Et là évidemment, mes lacunes en maths (que je ne pensais pas aussi complexes plus jeune) se font sentir. Et comme il dit, je rame pour rattraper mon retard 😅
Si j’ai un conseil : même si être un parfait mathématicien n’est pas utile pour être bon en prog, avoir appris quelques concepts clés (quelques uns de ceux cités) vous permettra de mieux appréhender quelques principes derrière les langages (système de type, abstraction, composition...). Pas besoin de maîtriser non plus la théorie des catégories sur le bout des doigts pour pouvoir produire de l’Haskell
3  0 
Avatar de pvincent
Membre confirmé https://www.developpez.com
Le 11/08/2019 à 8:00
Je trouve que limiter l'apport d'une bonne connaissance de la mathématique à la programmation est extrêmement réducteur: c'est vrai dans toutes les matières (y compris l'économie,...) et on devrai toujours regretter de ne pas en avoir appris un peu plus (c'est mon cas).

Aussi, la mathématique est un domaine tellement vaste que nécessairement, on ne peut en effleurer qu'une petite partie. N'oublions pas qu'Einstein a dû se faire aider par un mathématicien pour formuler le théorie de la relativité générale. Je pense aussi à une interview du grand mathématicien Alain Connes (https://fr.wikipedia.org/wiki/Alain_Connes) qui expliquai cela bien mieux que moi.

À mon avis la question est donc: compte tenu des aptitudes et des goûts personnels, sur quel partie des mathématiques doit-on faire porter ses efforts?
3  0 
Avatar de TJ1985
Membre confirmé https://www.developpez.com
Le 08/08/2019 à 21:48
Il est clair que l'IA dépend complètement de formulations mathématiques (calcul matriciel, calcul différentiel, statistiques), au point que sans cela s'y mettre est vraiment compliqué.
Mais dans les domaines traditionnels de la gestion, une bonne compréhension de la théorie des ensembles (bases de données relationnelles), de bonnes bases de logique formelle et une tête bien faite permette de faire du bon boulot.
2  0 
Avatar de niéslojni_oum
Futur Membre du Club https://www.developpez.com
Le 08/08/2019 à 23:17
Je ne pense pas qu'il faille être une flèche en maths mais nombre d'algorithmes reposent sur des théories ou des concepts mathématiques. La connaissance de l'algèbre xes nombres entiers semble un minimum. Exemple oublié dans l'article: les algorithmes de chiffrement, de hachage... les graphes, les algorithmes en général dès qu'il s'agit d'évaluer leur performance a priori (fonction. grand O de Landau), certains algorithmes de recherche (voir Matiassevitch)... enfin bref: ça aide un peu et c'est intéressant pour qui a l'esprit ouvert, parce que coder à tour de bras, c'est un peu régressif, non!?
1  0 
Avatar de tontonCD
Membre régulier https://www.developpez.com
Le 09/08/2019 à 10:30
C'est vrai, on peu programmer sans se servir de maths, ... mais c'est beaucoup moins intéressant.
Rappelons que le principal intérêt d'un "computer" (c.a.d. Calculateur) est d'effectuer des tâches laborieuses (voire même impossible à l'échelle humaine), et plus rapidement, et les maths sont justement le domaine où il excelle.
Après on peut se contenter de, par exemple, stocker des mots de passe pour faire des achats, mais ce n'est pas très valorisant (pour le développeur), et finalement pas tellement indispensable je dirais.
1  0