L'informatique n'est pas une simple pratique d'outils numériques.
C'est une science bâtie sur deux seules valeurs: Vrai et Faux, et pourtant capable de modéliser le monde entier.
C'est une science du raisonnement, de la modélisation et de la formalisation de solutions exécutables.
On y apprend par exemple à:
- Expliquer à un processeur comment additionner deux nombres en n'utilisant que des 0 et des 1. Un octet représente un entier d'une façon précise, et 256 + 1 ne donne pas 257 : ça déborde silencieusement.
- Organiser un million de contacts pour que la recherche d'un nom prenne autant de temps que d'en chercher un parmi dix. C'est ce que permet un arbre binaire de recherche.
- Faire communiquer deux ordinateurs à l'autre bout du monde sans que personne au milieu ne puisse lire le message. Le chiffrement asymétrique et le découpage TCP en paquets numérotés ne sont pas des boîtes noires.
- Concevoir une base de données où supprimer un client ne supprime pas accidentellement toutes ses commandes. L'intégrité référentielle n'est pas un détail.
- Choisir entre deux programmes qui font théoriquement la même chose, dont l'un met une seconde et l'autre six heures et même parfois des milliards d'années. La complexité algorithmique se mesure avant d'exécuter.
- Comprendre ce qui se passe réellement quand on clique sur un bouton
d'une page web. Une requête quitte l'ordinateur, traverse des routeurs,
arrive sur un serveur, déclenche une réponse — et tout cela en moins
d'une seconde, grâce à des protocoles que les humains ont conçus et que
les machines suivent à la lettre.
Ces raisonnements (invisibles à l'écran, mais décisifs en coulisses) font de l'informatique une science à part entière.
L'intelligence artificielle est aujourd'hui capable de produire du code rapidement et efficacement, comme une calculatrice produit des résultats numériques. Mais cette automatisation ne supprime pas le besoin de comprendre, de concevoir et de vérifier.
Sans culture dans un domaine, on ne sait pas quoi demander et on ne sait pas non plus si ce que répond l'IA est juste.
On peut très bien demander à une IA de faire ça :
Prompt
Génère un fichier Terraform qui provisionne un VPC sur AWS avec deux subnets (un public et un privé), un internet gateway attaché au public, une NAT gateway dans le public pour le privé, et deux security groups distincts : l'un qui autorise le trafic entrant HTTP/HTTPS depuis 0.0.0.0/0, l'autre qui n'autorise que le trafic entrant depuis le premier security group sur le port 5432.
Le code n'est que la traduction d'un besoin formulé à la machine. Encore faut-il savoir le formuler.
Prompt
Implémente une fonction qui trouve les k plus proches voisins dans une liste de n points 2D, sans calculer toutes les distances deux à deux. Utilise un k-d tree pour ramener la complexité de O(n²) à O(n log n) en construction et O(log n) par requête.
Sans cette seconde requête, l'IA produit du code correct, qui passe en production et qui s'effondre sous la charge.
L'IA est un exécutant rapide et relativement fiable pour qui sait challenger ses réponses. Mais elle attend des ordres, et donner le bon ordre suppose de maîtriser le métier.
Il est par ailleurs fondamentalement démontré qu'aucun système automatique (IA comprise) ne peut garantir de manière générale la correction, la sécurité ou l'optimalité de tous les programmes. Un système probabiliste peut proposer des solutions plausibles, mais ne fournit pas de garanties universelles.
On ne lance pas une fusée dans l'espace sur la base d'une estimation probabiliste.
En entreprise, cette part de risque devient rapidement inacceptable. C'est pourquoi, malgré l'IA, apprendre à raisonner, à programmer et à analyser les algorithmes reste nécessaire. L'IA transforme la manière de coder, elle ne remplace pas l'ingénierie informatique. Le code reste le fondement opérationnel de la discipline : l'outil par lequel les idées sont rendues précises, testables et vérifiables.