Faut-il être bon en maths pour être développeur ?

À venir...

Publié le par Thibault houdon (mis à jour le )
13 minutes

Dans cet article, nous allons aborder une des questions qui revient le plus souvent : faut-il être bon en maths pour être développeur ?

Vous avez peut-être vous même répondu à la question

  • « Pourquoi tu ne ferais pas des études dans la programmation ? »

Par :

  • « Nan je suis nul en maths. »

Cette dernière réponse, je l’ai moi-même donné à mes proches lorsqu’ils me posaient la question après le BAC.

Et j’ai décidé, 17 ans plus tard, de reprendre mes études sur Docstring pour devenir développeur.

À l’époque j’avais tort : être mauvais en maths n’est pas un frein, même s’ils peuvent être fortement utiles dans certains cas.

Retour d'expérience

Quand on le peut, il est important d’avoir des retours d’expérience sur le parcours de développeurs.

On a un très bon exemple : Thibault, créateur de la plateforme Docstring à qui une conseillère a dit qu’il fallait être très bon en mathématiques pour travailler dans le domaine du jeu vidéo. Alors que le domaine du jeu vidéo est vaste.

Il a repris les mathématiques à l’intérieur d’un logiciel 3D, Houdini. Un plongeon dans les maths des années plus tard donc, grâce à une utilisation très concrète.

Pourquoi vous raconter ça ? Car beaucoup de personnes ont besoin de choses concrètes pour apprendre et avancer. Les mathématiques peuvent parfois paraître bien trop abstraites pour certaines personnes et des choses concrètes peuvent faire toute la différence.

Alors si vous lisez cet article, vous faites sûrement partie de la team « Besoin de concret » ? Non ?

De la logique plus que des mathématiques

Un bon développeur doit écrire du code qui fonctionne tout en étant optimisé. Il doit aussi avoir une bonne logique. J’ai dit logique, pas mathématiques.

Et pour illustrer cela je vais vous parler d’un petit retour d’expérience avec mes étudiants.

C’est l’histoire d’une personne nulle en mathématiques mais qui comprenait bien la logique de Python, à l’inverse d’étudiants en prépa qui avaient du mal à comprendre les boucles. En fait ils avaient du mal à comprendre pourquoi on devait les utiliser et se posaient trop de questions.

Le mot boucle vous a fait peur ? Et si je vous dis algorithme ?

Il ne faut pas avoir peur des mots et des concepts, je vais vous prouver que vous pouvez comprendre simplement une boucle et un algorithme.

Une boucle

nombre = 1

while nombre <= 3:
    print("Nombre :", nombre)
    nombre += 1

# Résultat attendu :
# Nombre : 1
# Nombre : 2
# Nombre : 3

La variable nombre est égale à 1. Tant que (while) nombre est inférieur ou égal à 3 j’affiche la valeur de nombre avec print, et on incrémente nombre de 1 à chaque itération.

Vous voyez, les concepts mathématiques utilisés dans cet exemple sont de niveau collège : comparaisons, additions...

Tout le monde est capable de comparer deux nombres avec un symbole plus grand ou égal, ou ajouter 1 à un nombre avec un symbole d'addition.

Par contre, certaines personnes ont du mal à comprendre la logique et le fonctionnement de la boucle while.

Un super algorithme

# Définition du nombre
nombre = 5

# Vérifie si le nombre est positif
if nombre > 0:
    print("Le nombre est positif.")

Ici, si le nombre est positif, on affiche « Le nombre est positif ». Alors évidemment, je caricature, mais c’est vraiment pour vous montrer qu’on n’a pas eu besoin d’avoir un gros niveau en mathématiques pour cet algorithme.

On va même se payer le luxe d’écrire un algorithme sans un seul chiffre !

# Demande à l'utilisateur d'entrer un nom d'utilisateur
nom_utilisateur = input("Entrez votre nom d'utilisateur : ")

# Vérifie si le nom d'utilisateur est "gabriel"
if nom_utilisateur == "gabriel":
    print("Salut Gabriel, tu peux continuer à écrire ton article.")
# Si c'est bien "gabriel" alors j'affiche "Salut Gabriel, tu peux continuer à écrire ton article."

Encore une fois, juste de la logique. Bon, pour être honnête, il y a plein de mathématiques qui sont utilisés pour produire ce résultat, dans votre ordinateur et tout ce qui permet d’exécuter ce script. Mais vous n’avez pas besoin de savoir comment tout ça fonctionne pour apprendre la programmation.

Diversité des rôles

Tous les développeurs ne font pas la même chose. Il est possible de travailler sur des applications mobiles, des applications web, de l’analyse de données, de l’intelligence artificielle etc…

Quand le développement web ne vous demandera pas de compétences en mathématique, certains domaines nécessiteront des compétences de matheux ! On peut évoquer le domaine de l’intelligence artificielle, certains postes dans le jeu vidéo ou bien même le domaine de l’analyse de données.

Comme dit précédemment, si les mathématiques sont abstraites, vous pouvez très bien acquérir des compétences mathématiques tout au long de votre carrière du fait de problèmes concrets.

Abstraction et outils modernes

Simplifier des concepts complexes, créer des modèles compréhensibles et exploitables par l’humain, ici on touche au concept de l’abstraction.

Très concrètement, les développeurs utilisent des bibliothèques et des frameworks qui abstractisent des concepts plus compliqués à comprendre, notamment avec Python.

À noter

Les bibliothèques et frameworks offrent un cadre de travail avec des éléments prêts à l’emploi.

Par exemple, imaginons que vous vouliez créer une application web en Python. Gérer les utilisateurs, leur donner la possibilité de créer un compte, se connecter et se déconnecter.

class UtilisateurLogin(LoginView):
    template_name = "accounts/login.html"
    next_page = reverse_lazy("index")


class UtilisateurLogout(LogoutView):
    next_page = reverse_lazy("index")

Ici, l’utilisateur peut se connecter et se déconnecter. Je simplifie car il faut penser à définir les urls, mais ça ne représente que 2 lignes de plus.

Nous avons un frameworks (Django) qui va gérer beaucoup d’actions et de concepts pour nous en arrière plan. Vous n’avez pas à écrire des centaines de lignes de code pour tout faire de A à Z.

Dans le domaine pur des mathématiques, il existe plusieurs bibliothèques dont NumPy. NumPy possède des fonctions prêtes à l’emploi pour effectuer différentes opérations mathématiques (même complexes !).

Compétences interpersonnelles et créativité

Le développement ne se résume pas uniquement à écrire du code. L’ordinateur est une machine, pas vous. Votre personnalité, vos compétences interpersonnelles, vos qualités… Autant de facteurs à prendre en compte.

Le développement est rarement une activité solitaire. Les projets sont bien souvent le fruit d’une collaboration entre plusieurs membres d’une équipe, et chacun apporte sa compétence.

Dans un chapitre précédent, on parlait de logique, une compétence importante… Tout comme la créativité !

Résoudre des problèmes et trouver des solutions nécessitent une approche créative. Par exemple, plusieurs exercices sont proposés sur Docstring. Le but est d’arriver à un résultat, mais les solutions peuvent varier en fonction des étudiants.

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.