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.