Des livres qui nourrissent ma façon de concevoir, coder et maintenir un logiciel.
Cette sélection rassemble des lectures utiles en développement, architecture et qualité logicielle.
Chaque ressource m’a aidé à structurer mes décisions techniques au quotidien.
- Référence incontournable pour adopter et scaler le DevOps à l’échelle de l’entreprise
- Application des pratiques DevOps au-delà de l’IT (toute l’organisation)
- Transformation digitale centrée sur la technologie et la performance
- Études de cas réels (entreprises comme Adidas, American Airlines, etc.)
- Bonnes pratiques pour améliorer la collaboration, la livraison et la qualité
- Insights basés sur la recherche et des données récentes (Accelerate)
-
Secure by Design pour intégrer la sécurité dès la conception
- Domain-Driven Design (DDD) et bonnes pratiques pour développer des logiciels sécurisés
- Détection des failles dans le code legacy et correction des vulnérabilités
- Utilisation de constructions de code sécurisées : validation, gestion d’erreurs, primitives métier
- Sécurité dans les architectures modernes (microservices, cloud-native)
- Intégration de la sécurité dans tout le cycle build-test-deploy
- Identification des défauts de design et des failles de sécurité courantes
- Compréhension approfondie des fondamentaux JavaScript
- Maîtrise du scope lexical et de l’organisation des variables et fonctions
- Étude des closures et de leurs cas d’usage avancés
- Amélioration de la structure du code via les modules
- Meilleure compréhension de la maintenabilité et de l’architecture JavaScript
-
Capture, analyser et rejouer des paquets réseau
- Développer des outils pour disséquer le trafic et faire de la rétro-ingénierie de protocoles réseau
- Identifier et exploiter des vulnérabilités : corruption mémoire, contournement d’authentification, déni de service (DoS)
- Utiliser des outils comme Wireshark et créer des proxies réseau personnalisés pour manipuler le trafic
- Introduction aux algorithmes indépendante du langage de programmation
- Approche des algorithmes gloutons (greedy) : ordonnancement, arbres couvrants minimaux, clustering, codes de Huffman
- Maîtrise de la programmation dynamique : sac à dos (knapsack), alignement de séquences, plus courts chemins, arbres de recherche optimaux
- Introduction aux algorithmes indépendante du langage de programmation
- Compréhension de l’analyse asymptotique et de la notation Big-O
- Maîtrise des techniques divide and conquer et du master method
- Apprentissage des algorithmes classiques de tri et de sélection
- Compréhension du protocole HTTP et de son rôle central sur le Web
- Maîtrise des bases : syntaxe, fonctionnement et requêtes/réponses HTTP
- Gestion des connexions réseau (TCP, performance et fiabilité)
- Architecture Web : proxies, caches et redirections
- Sécurité HTTP : authentification (Basic, Digest) et transactions sécurisées
- Optimisation des performances Web et gestion du trafic
- Traitement des données et contenus (internationalisation, bodies, etc.)
- Interaction avec les robots et règles (robots.txt)
- Compréhension approfondie du fonctionnement du Web moderne (design et protocoles)
- Introduction au langage OCaml : expressivité, sécurité et performance
- Programmation fonctionnelle pour écrire du code système rapide et lisible
- Maîtrise des outils et techniques de l’écosystème OCaml
- Compréhension du compiler toolchain et du runtime
- Approfondissement des concepts avancés : GADTs, tests et tooling
- Mise à jour des pratiques modernes de l’écosystème OCaml
- Compréhension des bases de données NoSQL et de leurs avantages/inconvénients
- Principes clés : architecture distribuée, interface client, MapReduce
- Étude des principales solutions : MongoDB, Cassandra, Hadoop, Couchbase, etc.
- Cas d’usage : quand et pourquoi passer au NoSQL
- Choix et migration des données vers des bases NoSQL : les grandes familles de BD NoSQL
- Déploiement, maintenance et supervision des bases de données
- Panorama des tendances modernes : ScyllaDB, InfluxDB et évolutions des moteurs NoSQL
- Maîtrise des fonctionnalités de TypeScript : types, modules, décorateurs, génériques, asynchrone et types avancés
- Compréhension des paradigmes de programmation : POO et programmation fonctionnelle
- Développement d’une application Node.js avec Fastify étape par étape
- Extension de bibliothèques grâce à TypeScript
- Utilisation de patterns de conception : MVC, Repository, injection de dépendances
- Méthode en 4 étapes pour résoudre les questions de system design
-
16 cas réels avec solutions détaillées
-
188 diagrammes pour comprendre les architectures système
- Concepts clés : scalabilité, estimation de charge, systèmes distribués
- Design de systèmes classiques à grande échelle : rate limiter, key-value store, URL shortener
- Architectures complexes : chat, news feed, notification system
- Systèmes à grande échelle : YouTube, Google Drive, web crawler
- Recherche et UX : autocomplete, moteurs de recherche
- Bases des SGBD et du langage SQL
- Requêtes pour lire et manipuler des données (MySQL, SQL Server)
- Création et gestion de tables et vues
- Concepts avancés : indexation, normalisation, types de données
- Utilisation de procédures stockées et fonctions
- SQL pour l’analyse de données
- Intégration avec ODBC/JDBC et formats XML/JSON
- Optimisation et tuning des performances
- Compréhension du serveur web Apache et de son rôle historique sur Internet
- Installation et configuration avancée d’Apache 2.4 selon des besoins spécifiques
- Mise en place d’hébergement de sites dynamiques avec PHP
- Utilisation d’Apache en tant que Reverse Proxy et Load Balancer
- Optimisation des performances et renforcement de la sécurité serveur
- Gestion de configurations avancées (industrialisation, variables, traitement de données)
- Déploiement et administration d’une stack LAMP complète
- Intégration et hébergement de CMS open source comme WordPress et eZ Publish
- Compréhension des bases de la programmation : syntaxe, contrôle et données
- Structuration et amélioration du code avec la POO et la programmation fonctionnelle
- Création de scripts pour le navigateur et développement de web apps simples
- Manipulation du DOM pour interagir efficacement avec les navigateurs
- Utilisation de Node.js pour construire des serveurs et des outils backend
- Compréhension du langage Java et de l’implémentation de la programmation orientée objet (POO)
- Utilisation de Java pour accéder et manipuler des données externes
- Création d’applications avec des interfaces graphiques (GUI) accessibles aux utilisateurs
- Optimisation des workflows grâce aux design patterns orientés objet
- Introduction au paradigme de programmation fonctionnelle et ses avantages face à l’impératif
- Compréhension des expressions : syntaxe, types et sémantique, et fonctionnement des langages (parsing, compilation, interprétation)
- Construction d’abstractions avec les fonctions (lambda calculus, currying, récursion, higher-order functions)
- Manipulation de types de données complexes (tuples, listes, algebraic data types, pattern matching)
- Maîtrise des patterns de calcul courants (map, filter, fold, zip)
- Programmation dataflow basée sur la composition de fonctions
- Application du functional programming à des cas réels (web, mobile, backend, JSON, etc.)
Notions de bases utiles en Mathématiques Appliquées :
- Matrices et applications linéaires
- Déterminants
Pour faire court : PowerShell !!