🧠
Fondations indispensables (à maîtriser à 100%)
Informatique & génie logiciel
Algorithmique & structures de données (listes, maps, arbres, complexité Big-O)
Programmation orientée objet (SOLID, encapsulation, héritage, polymorphisme)
👉
Design patterns courants
Singleton, Factory, Builder, Strategy, Observer
👉
Architecture logicielle
MVC, couche service / repository, architecture hexagonale (bonus)
2️⃣ Java moderne (Java 11 → 17)
À maîtriser vraiment, pas juste connaître :
Syntaxe Java moderne (var, records, switch amélioré)
Collections (List, Set, Map) et performances associées
Streams & Lambda
Gestion de la mémoire (GC, heap, stack)
Exceptions (checked vs unchecked)
Multithreading & concurrence (bases)
Maven ou Gradle
👉 Objectif : être capable d’écrire du code propre, lisible et performant.
3️⃣Spring & Spring Boot (cœur du métier)
Spring Core
Injection de dépendances
Annotations (@Component, @Service, @Autowired, etc.)
Cycle de vie des beans
Spring Boot
Configuration ([Link])
Profils (dev, test, prod)
Auto-configuration
Packaging & déploiement
Spring Data JPA
Entités JPA
Relations (OneToMany, ManyToOne, etc.)
Repositories
JPQL / requêtes natives
Pagination & tri
Transactions (@Transactional)
👉 Objectif : créer une API complète et robuste sans magie incomprise.
4️⃣ API REST (incontournable)
Principes REST (GET, POST, PUT, DELETE)
Codes HTTP (200, 201, 400, 401, 403, 404, 500)
DTOs & mapping
Validation (@Valid, @NotNull, etc.)
Gestion des erreurs globales
Sécurité de base (JWT, OAuth2 – bonus)
Outils
Postman / Insomnia : tests d’API
Documentation : Swagger / OpenAPI
5️⃣ Front minimal (mais maîtrisé)
Pas besoin d’être frontend expert, mais :
HTML / CSS / JS
Bases solides
Manipulation du DOM
Requêtes HTTP (fetch)
Bootstrap
Grilles
Composants UI
HTMX
Requêtes AJAX sans JS lourd
Intégration avec Spring MVC
👉 Objectif : construire une UI simple connectée à ton backend.
6️⃣ Bases de données (SQL sérieux)
Modélisation relationnelle
SQL avancé :
JOIN
Index
Transactions
Contraintes
PostgreSQL ou SQL Server
Optimisation de requêtes
Migration de schéma (Flyway / Liquibase – bonus)
7️⃣Tests (très important en senior)
Tests unitaires
JUnit 5
Mockito
Tests de services & repositories
Tests d’intégration
SpringBootTest
Base de données embarquée ou Testcontainers
👉 Objectif : sécuriser le code et éviter les régressions.
8️⃣Performance & montée en charge
Tests de charge (au moins un)
Gatling ou Locust (gros plus)
Comprendre :
Latence
Throughput
Bottlenecks
Optimisation
Index SQL
Cache (Ehcache, Redis – bonus)
Pagination
Pool de connexions
9️⃣ Monitoring & observabilité (profil expérimenté)
Prometheus : métriques
Grafana : dashboards
Logs structurés
Health checks (/actuator/health)
👉 Très apprécié en entreprise moderne.
🔟 Outils professionnels
IntelliJ IDEA (debugger, refactoring, shortcuts)
Git
Branches
Rebase / merge
Pull requests
CI/CD (GitHub Actions, GitLab CI – bonus)