#programmation
101 tutoriels
YAML : comprendre et écrire un fichier de configuration
La syntaxe YAML utilisée par Docker Compose, GitHub Actions, Netplan ou Home Assistant : clés et valeurs, indentation en espaces, listes, objets imbriqués, chaînes multilignes, et pièges courants.
VS Code : les raccourcis et le multi-curseur qui font gagner des heures
Les raccourcis clavier essentiels de Visual Studio Code : palette de commandes, ouverture rapide de fichiers, multi-curseur, déplacer et dupliquer des lignes, renommer un symbole et formater le code.
VS Code : les extensions indispensables (et les réglages utiles)
Une sélection d'extensions VS Code utiles (Python, ESLint, Prettier, Live Server, GitLens, Error Lens, traduction française), les réglages formatOnSave et autoSave, et la synchronisation des paramètres.
VS Code : trouver un bug avec le débogueur et les points d'arrêt
Utiliser le débogueur de Visual Studio Code (Python, JavaScript) : poser un point d'arrêt, exécuter pas à pas, inspecter les variables, la console de débogage et les points d'arrêt conditionnels.
TypeScript : premiers pas (types, interfaces, erreurs détectées)
Découvrir TypeScript : annoter les types de variables et de fonctions, décrire des objets avec type et interface, types union, et laisser l'éditeur détecter les erreurs avant l'exécution.
SQL : interroger une base avec SELECT, WHERE, ORDER BY et LIMIT
Les bases du langage SQL pour lire des données : SELECT de colonnes, filtrer avec WHERE (AND, OR, LIKE, IN, BETWEEN), trier avec ORDER BY, limiter avec LIMIT, et DISTINCT.
SQL : relier des tables (JOIN) et faire des statistiques (GROUP BY)
Combiner deux tables SQL avec INNER JOIN et LEFT JOIN, puis regrouper et calculer avec GROUP BY, COUNT, SUM, AVG, et filtrer les groupes avec HAVING.
SQL : ajouter, modifier et supprimer des données (INSERT, UPDATE, DELETE)
Créer une table avec CREATE TABLE, ajouter des lignes avec INSERT, les modifier avec UPDATE et les supprimer avec DELETE, sans oublier le WHERE, et utiliser les transactions.
SQL : accélérer une requête lente avec un index (EXPLAIN)
Comprendre les index SQL : pourquoi une requête est lente sur une grande table, lire le plan avec EXPLAIN, créer un index simple ou composé, et quand ne pas en abuser.
Référencement (SEO) : les bases techniques d'une page
Les éléments techniques du référencement naturel : balise title, meta description, titres, URL lisibles, balises Open Graph, sitemap.xml, robots.txt, vitesse et données structurées.
Les expressions régulières (regex) pour débuter
Comprendre les expressions régulières : caractères, classes \d \w, quantificateurs, ancres, groupes de capture, et les utiliser en Python (re.findall, re.sub) et dans VS Code pour rechercher-remplacer.
La récursivité expliquée simplement (factorielle, dossiers)
Comprendre la récursivité : une fonction qui s'appelle elle-même, le cas de base, la pile d'appels, exemples de la factorielle et du parcours de dossiers, et les limites (RecursionError).
React : créer son premier composant avec Vite
Créer un projet React avec Vite, comprendre les composants, le JSX, les props et l'état avec useState, et afficher une liste avec map et key.
Apprendre à programmer : par quel langage commencer ?
Choisir son premier langage selon son objectif (sites web, automatisation, jeux, applications mobiles, électronique), les outils pour démarrer gratuitement, et une méthode pour progresser.
Python sur Windows : créer un environnement virtuel (venv)
Créer un environnement virtuel Python sous Windows avec python -m venv, l'activer dans PowerShell (et corriger l'erreur d'exécution de scripts), installer des paquets et l'utiliser dans VS Code.
Python : créer une petite application avec fenêtre (tkinter)
Créer une interface graphique en Python avec tkinter, inclus d'office : fenêtre, étiquettes, champ de saisie, bouton et fonction appelée au clic, avec l'exemple d'un convertisseur.
Python : manipuler du texte (f-strings, split, replace, format des nombres)
Les opérations courantes sur les chaînes de caractères en Python : f-strings et formatage des nombres, majuscules, découper avec split, joindre avec join, remplacer, chercher et nettoyer.
Python : une base de données SQLite en quelques lignes
Créer une base de données SQLite avec le module sqlite3 de Python : créer une table, insérer avec des paramètres (sans injection SQL), interroger, et fermer proprement.
Python : extraire des informations d'une page web (BeautifulSoup)
Récupérer une page web avec requests et en extraire des données avec BeautifulSoup (sélecteurs CSS), les enregistrer en CSV, et respecter les règles (robots.txt, conditions d'utilisation, rythme).
Python : automatiser le rangement et le renommage de fichiers
Écrire un script Python qui trie automatiquement le dossier Téléchargements par type de fichier et renomme des photos avec leur date, avec pathlib et shutil, en mode simulation d'abord.
Python : tester son code automatiquement avec pytest
Écrire des tests automatiques en Python avec pytest : fonctions test_, assert, tester une exception avec pytest.raises, lancer les tests et lire le rapport d'échec.
Python : premiers pas (print, variables, input)
Écrire et lancer son premier programme Python : afficher du texte avec print, stocker des valeurs dans des variables, demander une information avec input, et convertir avec int.
Projet Python pour débutants : coder le jeu du pendu
Un petit projet complet pour pratiquer Python : le jeu du pendu avec random, listes, ensembles, boucle while, conditions et fonctions, étape par étape.
Python : analyser un fichier Excel avec pandas
Lire un fichier Excel ou CSV avec pandas, filtrer, trier, regrouper et calculer des totaux avec groupby, puis exporter le résultat vers un nouveau fichier Excel.
Python : importer des modules et installer des paquets avec pip
Utiliser la bibliothèque standard de Python (random, datetime, math), créer son propre module, installer un paquet externe avec pip (requests) et lister les paquets installés.
Python : les listes (ajouter, trier, découper)
Manipuler les listes Python : créer, accéder par index, ajouter avec append, retirer, trier avec sort, découper avec les slices, et les compréhensions de liste.
Python : tracer un graphique avec matplotlib
Créer des graphiques en Python avec matplotlib : courbe, barres, titre et légendes, plusieurs séries, enregistrement en PNG, à partir de données d'un fichier CSV.
Python : écrire ses propres fonctions (def, return, paramètres)
Créer des fonctions en Python avec def : paramètres, valeurs par défaut, return, arguments nommés, et pourquoi découper son code en fonctions.
Python : créer un premier site web avec Flask
Installer Flask, créer une application web minimale avec des routes, renvoyer du HTML avec un modèle Jinja, recevoir un formulaire et lancer le serveur de développement.
Python : lire et écrire des fichiers texte (open, with)
Lire un fichier texte ligne par ligne, écrire et ajouter du texte avec open et with en Python, préciser l'encodage UTF-8, et manipuler les chemins avec pathlib.
Python : transformer son script en programme .exe (PyInstaller)
Créer un exécutable Windows à partir d'un script Python avec PyInstaller : fichier unique, sans console, avec une icône, où le trouver, et les fausses alertes antivirus.
Python : gérer les erreurs avec try / except (et lire un message d'erreur)
Lire un message d'erreur Python (Traceback), intercepter les exceptions avec try/except, gérer plusieurs types d'erreurs, et utiliser else, finally et raise.
Python : envoyer un e-mail automatiquement (smtplib)
Envoyer un e-mail depuis Python avec smtplib et EmailMessage : serveur SMTP, connexion chiffrée, mot de passe d'application, pièce jointe, et précautions contre le spam.
Python : les dictionnaires (clé → valeur)
Utiliser les dictionnaires Python : créer, lire avec une clé ou get, ajouter et modifier, parcourir avec items, et compter des occurrences.
Python : manipuler les dates et les heures (datetime)
Utiliser le module datetime de Python : date du jour, formater en français avec strftime, lire une date avec strptime, calculer des écarts avec timedelta, et gérer les fuseaux horaires.
Python : lire et écrire des fichiers CSV (Excel, LibreOffice)
Lire un fichier CSV exporté d'Excel avec le module csv de Python (DictReader, séparateur point-virgule), calculer des totaux, et écrire un nouveau CSV avec DictWriter.
Python : les conditions if, elif, else
Faire prendre des décisions à un programme Python avec if, elif et else : comparaisons, opérateurs and/or/not, et l'importance de l'indentation.
Python : les classes et les objets, simplement
Comprendre la programmation orientée objet en Python : créer une classe, le constructeur __init__, les attributs et méthodes, self, l'héritage et les dataclasses.
Python : les boucles for et while
Répéter des actions en Python : boucle for sur une liste ou avec range, boucle while tant qu'une condition est vraie, et les mots-clés break et continue.
Python : créer un vrai outil en ligne de commande (argparse)
Transformer un script Python en commande avec arguments et options grâce à argparse : arguments positionnels, options, valeurs par défaut, drapeaux, et aide automatique --help.
Python : interroger une API web avec requests (météo, JSON)
Appeler une API web en Python avec la bibliothèque requests : requête GET avec paramètres, lecture de la réponse JSON, gestion des erreurs HTTP et des délais, et clé d'API dans une variable d'environnement.
PHP : les bases pour débuter (variables, formulaires, sécurité)
Écrire ses premiers scripts PHP : afficher avec echo, variables, tableaux, boucles, traiter un formulaire avec $_POST, échapper l'affichage avec htmlspecialchars, et lancer le serveur intégré.
npm : comprendre package.json, les dépendances et les scripts
Initialiser un projet Node.js avec npm init, installer des dépendances (et de développement), comprendre package.json et package-lock.json, lancer des scripts npm run, et mettre à jour en sécurité.
Markdown : écrire un README et de la documentation (syntaxe complète)
La syntaxe Markdown pour écrire un README GitHub, des notes ou de la documentation : titres, gras, listes, liens, images, blocs de code, tableaux, cases à cocher et citations.
Programmation : bien lire un message d'erreur et trouver la solution
Méthode pour comprendre un message d'erreur de programmation (Python, JavaScript, compilateur) : type d'erreur, fichier et ligne, pile d'appels, et comment chercher efficacement la solution.
Le format JSON expliqué (et le lire en Python et JavaScript)
Comprendre le format JSON (objets, tableaux, types), lire et écrire du JSON en Python (json.load, json.dump) et en JavaScript (JSON.parse, JSON.stringify), et éviter les erreurs de syntaxe.
JavaScript : les tableaux et les méthodes map, filter, find, reduce
Manipuler les tableaux en JavaScript : ajouter avec push, parcourir avec for...of, transformer avec map, filtrer avec filter, chercher avec find, et calculer avec reduce.
JavaScript : premiers pas dans la console du navigateur
Écrire ses premières lignes de JavaScript dans la console du navigateur (F12) puis dans une page HTML : console.log, variables let et const, types, et opérations de base.
JavaScript : les objets, la déstructuration et l'opérateur ...
Créer et modifier des objets JavaScript, accéder aux propriétés, parcourir avec Object.entries, déstructurer, copier et fusionner avec l'opérateur de décomposition, et le chaînage optionnel ?.
JavaScript : les modules (import / export) et un premier script Node.js
Découper son code JavaScript en modules avec export et import, les utiliser dans le navigateur (type=module) et dans Node.js, et lire un fichier avec le module fs.
JavaScript : sauvegarder des données dans le navigateur (localStorage)
Enregistrer des préférences ou une liste dans le navigateur avec localStorage : setItem, getItem, stocker des objets en JSON, gérer l'absence de données, et les limites (taille, sécurité).
JavaScript : les fonctions (classiques et fléchées)
Écrire des fonctions en JavaScript : déclaration function, paramètres par défaut, return, fonctions fléchées, et passer une fonction en argument (callback).
JavaScript : récupérer des données avec fetch, async et await
Appeler une API depuis le navigateur ou Node.js avec fetch, comprendre les promesses, écrire avec async/await, gérer les erreurs avec try/catch et vérifier response.ok, et envoyer du JSON en POST.
JavaScript : réagir aux clics et aux formulaires (addEventListener)
Réagir aux actions de l'utilisateur en JavaScript avec addEventListener : clic sur un bouton, saisie au clavier, envoi d'un formulaire avec preventDefault, et délégation d'événements.
JavaScript : modifier une page web (DOM, querySelector)
Sélectionner des éléments d'une page avec querySelector, changer leur texte et leurs classes CSS, créer et ajouter des éléments, et éviter innerHTML avec des données utilisateur.
JavaScript : afficher dates, prix et nombres au format français (Intl)
Formater correctement en français avec JavaScript : dates avec toLocaleDateString et Intl.DateTimeFormat, prix en euros avec Intl.NumberFormat, durées relatives (« il y a 3 jours ») et pièges de l'objet Date.
JavaScript : les classes (constructor, méthodes, héritage)
Créer des classes en JavaScript moderne : constructor, méthodes, propriétés privées avec #, getters, méthodes statiques, et héritage avec extends et super.
JavaScript : coder un mini-jeu dans le navigateur (canvas)
Créer un petit jeu en JavaScript avec l'élément canvas : boucle de jeu avec requestAnimationFrame, dessin, déplacement au clavier, collision et score.
Java : premiers pas (classe, main, types, compilation)
Écrire et lancer un premier programme Java : installer un JDK, classe et méthode main, types, Scanner pour lire au clavier, ArrayList, et exécution avec java Fichier.java.
Programmer avec un assistant IA : bonnes pratiques et pièges
Utiliser un assistant de code IA (Claude, Copilot, ChatGPT) efficacement : bien formuler la demande, donner le contexte, relire et tester le code produit, protéger ses secrets, et continuer à apprendre.
Le web expliqué : HTTP, HTTPS, cookies et sessions
Comprendre ce qui se passe quand on ouvre une page : requête et réponse HTTP, rôle de HTTPS et du certificat, cookies et sessions de connexion, et les attributs de sécurité des cookies.
HTML : créer un tableau de données (table) lisible et accessible
Construire un tableau HTML correct : table, caption, thead, tbody, th avec scope, fusion de cellules, mise en forme CSS en bandes, et défilement horizontal sur mobile.
HTML : créer sa première page web (structure, titres, liens, images)
Écrire une page HTML complète : doctype, head (titre, encodage, viewport), body, titres, paragraphes, listes, liens et images avec texte alternatif, puis l'ouvrir dans le navigateur.
HTML sémantique : header, nav, main, article, footer
Structurer une page avec les balises sémantiques HTML5 (header, nav, main, section, article, aside, footer) pour l'accessibilité et le référencement, au lieu de div partout.
HTML : créer un formulaire (input, label, validation intégrée)
Construire un formulaire HTML accessible : form, label associé, types d'input (email, number, date), select, textarea, attributs required, minlength, pattern, et bouton d'envoi.
Rendre un site accessible : les 8 règles essentielles
Les bases de l'accessibilité web : texte alternatif des images, labels de formulaires, contraste des couleurs, navigation au clavier et focus visible, titres hiérarchisés, liens explicites, et outils de test (Lighthouse, WAVE).
GitHub : proposer une modification avec une pull request
Le flux de travail GitHub : créer une branche, pousser ses commits, ouvrir une pull request, répondre à la relecture, fusionner, et contribuer à un projet qui n'est pas le sien avec un fork.
Publier un site gratuitement avec GitHub Pages
Mettre en ligne un site HTML/CSS gratuitement avec GitHub Pages : pousser le dépôt, activer Pages dans les paramètres, obtenir l'adresse github.io, et ajouter un nom de domaine personnalisé.
GitHub Actions : lancer ses tests automatiquement à chaque push
Créer un workflow GitHub Actions qui installe Python ou Node.js et lance les tests à chaque push et pull request, lire le résultat, et ajouter un badge au README.
Git : marquer une version avec un tag (et créer une release GitHub)
Créer des tags Git annotés pour marquer les versions (v1.0.0), comprendre le versionnage sémantique, pousser les tags, revenir à une version, et publier une release sur GitHub.
Git : mettre son travail de côté avec git stash
Utiliser git stash pour mettre de côté des modifications en cours, changer de branche pour une urgence, puis récupérer son travail avec stash pop, et gérer plusieurs stashs.
Git : explorer l'historique (log, diff, show, blame)
Consulter l'historique d'un projet Git : git log en graphe et filtré, git diff pour voir les changements, git show pour un commit, git blame pour savoir qui a modifié une ligne.
Git : ignorer des fichiers avec .gitignore (et retirer un fichier déjà suivi)
Écrire un fichier .gitignore pour exclure node_modules, .env, les fichiers de build et de l'éditeur, comprendre les motifs, et retirer de Git un fichier déjà commité avec git rm --cached.
Git : cloner un dépôt et travailler à plusieurs (clone, pull, push)
Récupérer un projet existant avec git clone, se mettre à jour avec git pull, envoyer ses commits avec git push, et comprendre l'erreur « rejected » quand quelqu'un a poussé avant vous.
Git : résoudre un conflit de fusion (merge conflict)
Comprendre pourquoi Git signale un conflit lors d'un merge, lire les marqueurs <<<<<<< ======= >>>>>>>, choisir la bonne version dans VS Code, puis terminer la fusion.
Git bisect : trouver le commit qui a introduit un bug
Utiliser git bisect pour retrouver rapidement, par dichotomie, le commit responsable d'une régression : marquer un commit bon et un mauvais, tester, et automatiser avec git bisect run.
Git : annuler une modification (restore, revert, reset, amend)
Les bonnes commandes Git pour revenir en arrière : annuler des modifications non commitées (restore), corriger le dernier commit (amend), annuler un commit publié (revert), revenir en arrière en local (reset).
Node.js : créer une petite API avec Express
Créer un serveur web et une API REST avec Node.js et Express : routes GET et POST, lecture du JSON envoyé, paramètres d'URL, codes de réponse, et fichiers statiques.
Garder ses clés secrètes hors du code : variables d'environnement et fichiers .env
Ne jamais écrire de mot de passe ou de clé d'API dans le code : utiliser les variables d'environnement, un fichier .env avec python-dotenv ou Node.js, et l'exclure de Git avec .gitignore.
Les accents s'affichent mal (é, �) : comprendre l'encodage UTF-8
Pourquoi les accents deviennent é ou � : comprendre UTF-8 et Windows-1252, préciser l'encodage en Python, HTML et dans VS Code, et réparer un fichier mal encodé.
Docker : mettre son application dans un conteneur (Dockerfile)
Écrire un Dockerfile pour une application Python ou Node.js : image de base, copie des fichiers, installation des dépendances, commande de lancement, construire l'image et lancer le conteneur.
Les outils de développement du navigateur (F12) expliqués
Utiliser les DevTools de Chrome, Edge ou Firefox : inspecter et modifier le HTML et le CSS, lire la console, analyser le réseau (requêtes, codes, temps), le stockage, et simuler un mobile.
CSS : variables (custom properties) et mode sombre automatique
Définir des variables CSS dans :root, les réutiliser avec var(), et ajouter un mode sombre automatique avec prefers-color-scheme, plus un bouton pour forcer le thème.
CSS : un site adapté aux téléphones (responsive, media queries)
Rendre un site responsive : balise viewport, approche mobile d'abord, media queries min-width, images fluides, unités relatives et clamp() pour les tailles de texte, et tester avec les outils du navigateur.
CSS : utiliser une belle police (Google Fonts, @font-face)
Changer la police d'un site : piles de polices système, Google Fonts, auto-hébergement avec @font-face et WOFF2, font-display swap, et bonnes pratiques de lisibilité.
CSS Grid : créer une grille et une mise en page complète
Utiliser CSS Grid : définir colonnes et lignes avec grid-template-columns, l'unité fr, repeat et minmax pour une galerie responsive sans media query, et les zones nommées pour une mise en page.
CSS Flexbox : aligner et répartir des éléments facilement
Utiliser Flexbox pour aligner des éléments en ligne ou en colonne : display flex, justify-content, align-items, gap, flex-wrap et flex: 1, avec l'exemple d'une barre de navigation.
CSS : les bases (sélecteurs, couleurs, polices, marges)
Relier une feuille de style CSS à sa page, cibler les éléments avec les sélecteurs (balise, classe, id), régler couleurs, polices, tailles, et comprendre le modèle de boîte (margin, padding, border).
CSS : transitions et animations (sans JavaScript)
Animer une page en CSS : transitions au survol, transformations (translate, scale, rotate), animations avec @keyframes, et respecter prefers-reduced-motion pour l'accessibilité.
Écrire du code lisible : nommer, découper, commenter
Les bonnes pratiques pour un code lisible : noms explicites, fonctions courtes à une seule responsabilité, constantes au lieu de nombres magiques, commentaires utiles (le pourquoi), et formateurs automatiques.
Python : utiliser une IA (l'API Claude) dans son programme
Appeler un modèle d'IA depuis Python avec le SDK officiel d'Anthropic : clé d'API dans une variable d'environnement, envoyer un message, lire la réponse, et utiliser une consigne système.
Langage C : premier programme, compilation avec gcc
Écrire un premier programme en C (main, printf, scanf, variables typées, boucle), le compiler avec gcc et l'exécuter, et comprendre ce qu'est la compilation.
Arduino : premiers pas (faire clignoter une LED, lire un capteur)
Débuter avec Arduino : installer l'IDE, brancher la carte, comprendre setup et loop, faire clignoter une LED, lire un bouton ou un capteur et afficher des valeurs dans le moniteur série.
Comprendre les API REST : méthodes, codes HTTP et tests avec curl
Ce qu'est une API REST : ressources et URL, méthodes GET, POST, PUT, DELETE, codes de réponse HTTP (200, 404, 500), en-têtes et authentification, et tester une API avec curl.
Algorithmes : comprendre les tris (sélection, insertion, fusion)
Comprendre comment un ordinateur trie une liste : tri par sélection, tri par insertion, tri fusion, leur efficacité (complexité), et pourquoi utiliser le tri intégré du langage en pratique.
Algorithmes : la recherche dichotomique (diviser pour trouver vite)
Comprendre la recherche dichotomique (binaire) dans une liste triée : principe du « plus grand, plus petit », implémentation en Python, nombre d'étapes logarithmique, et le module bisect.
Installer Python sur Mac et créer un environnement virtuel
Installer une version récente de Python sur Mac (python.org ou Homebrew), vérifier python3 et pip, créer un environnement virtuel venv et y installer des paquets proprement.
Bien démarrer avec Visual Studio Code
Installer VS Code en français, ouvrir un projet, ajouter les bonnes extensions, et adopter les réflexes qui font gagner du temps : palette de commandes, terminal intégré, multi-curseur et sauvegarde automatique.
Installer Python sur Windows 11 et lancer son premier script
Installer Python depuis python.org ou avec winget, sans oublier la case « Add python.exe to PATH », puis utiliser pip, créer un environnement virtuel et exécuter un premier script.
Installer Node.js et npm sur Windows 11
Installer la version LTS de Node.js avec winget, vérifier node et npm, créer un projet avec npm init, ajouter des paquets, utiliser npx et les scripts de package.json, et débloquer npm dans PowerShell.
Débuter avec Git sur Windows : init, commit, branches et GitHub
Installer Git, se présenter avec git config, puis suivre l'historique d'un projet : init, status, add, commit, log, branches, et envoi sur GitHub avec git push.