Introduction
Au cours des six dernières années, j’ai consacré la majeure partie de mon temps professionnel au lancement de logiciels et à l’analyse de la manière dont la technologie peut améliorer les performances des entreprises. Issu d’une formation en droit, loin de l’univers de l’ingénierie, je me suis progressivement fait une place dans le secteur de la « transformation digitale », aux côtés de personnes venant d’horizons très variés.
De nombreuses personnes dans notre industrie (qui est en forte demande depuis 10 ans et le restera probablement encore pendant les 10 prochaines années) sont autodidactes et ne possèdent pas de diplôme technique. Cette réalité entraîne deux conséquences intéressantes :
- Les générations Y et Z ont accès à des métiers stimulants et prometteurs sans diplôme spécifique (la plupart des métiers du digital n’ont pas de parcours académique dédié), mais nécessitent une réelle motivation, de l’auto-apprentissage et 1 à 3 ans d’expérience professionnelle. Ces compétences peuvent être acquises de nombreuses façons accessibles, que je détaillerai dans un autre article.
- Beaucoup de personnes sans formation technique hésitent ou se sentent mal à l’aise face à des termes comme « SQL », « API call » ou « instance ». À l’inverse, certains utilisent volontairement du jargon pour impressionner leurs pairs. Il n’existe pas de référentiel clair définissant ce qu’un professionnel de la transformation digitale devrait connaître en développement logiciel — c’est précisément l’objectif de cet article.
AVERTISSEMENT I : Les concepts présentés ici sont, selon moi, les notions fondamentales. Une sélection a été nécessaire, et je limiterai volontairement le jargon technique.
AVERTISSEMENT II : Je suis moi-même en apprentissage continu. Si certaines informations sont inexactes ou peu claires, je m’en excuse par avance et reste ouvert à tout retour constructif.
AVERTISSEMENT III : Cet article est court au regard de la richesse des sujets abordés. J’encourage tous les chefs de projet digital à approfondir les notions qui leur semblent utiles.
Une bonne analogie pour comprendre Internet est celle d’un client qui commande dans un drive McDonald’s.
Un serveur est un programme centralisé qui communique via un réseau (comme Internet) pour répondre aux demandes des clients. Il existe différents types de serveurs, mais concentrons-nous sur les applications web, où deux serveurs principaux interviennent :
- le serveur web, qui reçoit la demande ;
- le serveur de base de données, qui fournit les données.
Dans notre analogie, l’employé qui prend votre commande est le serveur web, et celui qui récupère votre Big Mac en cuisine est le serveur de base de données.
Un client est un programme (comme Chrome ou Firefox) qui demande des informations à un serveur. Dans ce cas, vous êtes le client qui passe commande.
Le client peut effectuer plusieurs requêtes : poser des questions, commander, modifier une commande, etc.
Lorsque vous ouvrez une page web, votre navigateur (client) envoie une requête au serveur web, qui peut lui-même interroger le serveur de base de données pour récupérer les informations.
Par exemple, rechercher « Napoléon » sur Wikipédia consiste techniquement à demander toutes les données associées à ce mot-clé sur les serveurs de Wikipédia.
Il est important de noter qu’un serveur peut aussi devenir client d’un autre serveur. Dans la chaîne : client → serveur web → serveur de base de données, le serveur web agit comme client du serveur de base de données.
Les bases de données : l’endroit où vos données sont stockées
La principale raison pour laquelle nous utilisons Internet est d’accéder à des informations. La base de données est, pour un site web, ce que la cuisine est pour un restaurant : l’endroit où les données sont stockées.
La plupart des bases de données modernes sont des bases de données relationnelles SQL, ce qui signifie :
- qu’elles utilisent des tables liées entre elles ;
- qu’elles utilisent le langage SQL pour interroger les données.
Tables et relations
Une base de données SQL est organisée en tables. Chaque table contient des objets identifiés par un ID unique.
Par exemple, un restaurant pourrait avoir :
- une table « Menus »
- une table « Plats »
Chaque menu peut être lié à plusieurs plats via leurs ID respectifs.
Requêtes SQL
SQL est le langage utilisé pour communiquer avec une base de données.
Par exemple :
SELECT * FROM Menu
Cette requête demande à la base de données de retourner tous les menus.
Le schéma de base de données
Le schéma définit la structure de la base de données.
Un mauvais schéma peut limiter les fonctionnalités futures ou rendre les évolutions complexes et risquées.
C’est ce qu’on appelle la dette technique : des décisions passées qui ralentissent les évolutions futures.
Les bases de données SQL les plus utilisées sont :
Les serveurs cloud : des serveurs à la demande
Un serveur est composé de deux éléments principaux :
CPU (processeur)
Il exécute les programmes et effectue les calculs.
Stockage
Il permet de conserver les données.
Serveurs physiques vs cloud
Historiquement, les entreprises utilisaient des serveurs physiques (« on-premise »).
Aujourd’hui, des fournisseurs comme :
- AWS
- Google Cloud
- Microsoft Azure
proposent des serveurs cloud accessibles à la demande.
Avantages du cloud
- Mise en place rapide
- Maintenance réduite
- Scalabilité (augmentation ou réduction des ressources)
- Paiement à l’usage (OPEX)
Malgré un coût initial parfois plus élevé, le cloud offre une meilleure flexibilité et fiabilité.
Une API permet à un logiciel de communiquer avec un autre.
Par exemple :
- connexion avec Google
- paiement avec Stripe
- cartes avec Google Maps
Une API agit comme un intermédiaire.
Types de requêtes API
Il existe quatre types principaux :
- POST / PUT → créer une donnée
- GET → lire une donnée
- PATCH → modifier une donnée
- DELETE → supprimer une donnée
Ces actions sont appelées CRUD :
- Create
- Read
- Update
- Delete
Permissions et sécurité
Les API utilisent des tokens pour vérifier l’identité et les permissions des utilisateurs.
Cela garantit que seuls les utilisateurs autorisés peuvent effectuer certaines actions.
Front-end vs Back-end
Back-end
Le back-end correspond à la logique serveur et aux bases de données.
Langages courants :
Front-end
Le front-end correspond à ce que l’utilisateur voit dans son navigateur.
Langages principaux :
Le front-end permet :
- d’afficher les pages
- de créer des interactions
- d’afficher les données du serveur
Pipeline de production et CI/CD
Le développement logiciel passe par plusieurs étapes :
1. Environnement local
Le développeur travaille sur sa machine.
2. Staging (pré-production)
Environnement de test.
3. Production
Version utilisée par les utilisateurs.
Des outils comme :
permettent de gérer les versions du code.
Le CI/CD automatise le déploiement du code.
UX / UI
Avant le développement, les designers UX/UI conçoivent :
- l’interface utilisateur
- les maquettes
- l’expérience utilisateur
Ces designs sont ensuite transformés en code par les développeurs front-end.
Conclusion
J’espère que cet article vous a aidé à mieux comprendre les bases du fonctionnement des logiciels et d’Internet.
Même si rien ne remplace l’expérience, comprendre ces concepts fondamentaux vous permettra de mieux collaborer avec les équipes techniques et de piloter vos projets digitaux efficacement.
Et maintenant que vous avez compris tout cela, vous avez bien mérité ce burger 😉