Développement logiciel
Des formations pratiques en ingénierie logicielle pour les équipes qui conçoivent, testent et exploitent des systèmes réels. 4D couvre le développement Python et Java, les tests automatisés, l'architecture et la conception de systèmes, les chaînes de livraison, ainsi que les pratiques de gestion de versions et de qualité du code.
Formations
Formations dans Développement logiciel
Fondamentaux de la programmation Python
Une introduction pratique à Python pour les ingénieurs et analystes qui ont besoin de code opérationnel plutôt que d'extraits de tutoriel. Les participants acquièrent de l'aisance avec les types, les collections, les fonctions, les fichiers et la gestion des erreurs, puis construisent un programme complet.
View coursePython intermédiaire et pratiques de code propre
Conçue pour les développeurs dont le code Python fonctionne mais résiste au changement. Le programme couvre dataclasses, générateurs, décorateurs, gestionnaires de contexte et annotations de types, puis applique les refactorings qui transforment un module interminable en unités testées contrôlées par black, ruff et mypy.
View courseAutomatisation et scripting Python pour les tâches métier
Destinée aux équipes qui perdent chaque semaine des heures en manipulations de fichiers, de tableurs et de rapports. Les participants automatisent ces tâches avec Python : traitement de fichiers en lot, Excel et CSV, appels d'API REST, alertes par e-mail et tâches planifiées qui signalent clairement toute défaillance.
View coursePython avancé : concurrence et performance
Pour les ingénieurs dont les services et pipelines Python atteignent leurs limites. La formation part de la mesure — cProfile, py-spy, tracemalloc — puis traite le GIL, les threads, les pools de processus et asyncio, avant d'aborder la vectorisation NumPy, la mise en cache et l'accélération native des chemins encore trop lents.
View coursePython en production : packaging et dépendances
Tout ce qui sépare un code fonctionnel d'un artefact déployable. Les participants configurent pyproject.toml, construisent des wheels, verrouillent les dépendances avec pip-tools, uv ou Poetry, publient sur un index privé, conteneurisent en builds Docker multi-étapes et auditent la chaîne d'approvisionnement logicielle.
View courseTester du code Python avec pytest
Une suite de tests opérationnelle sépare un changement livré d'un changement en attente. Cette formation en construit une avec pytest : fixtures et portées, cas paramétrés, monkeypatch et mocks, seuils de couverture non contournables, exécutions CI rapides et méthode de diagnostic des tests instables.
View coursePréparation de données avec Python et pandas
Une formation pandas pratique pour les équipes qui passent plus de temps à réparer leurs données qu'à les analyser. Les participants traitent les dtypes et la mémoire, les opérations vectorisées, la sémantique des jointures, les valeurs manquantes, le remodelage et l'alignement temporel, jusqu'à un code de nettoyage réexécutable tel quel.
View coursePython pour la visualisation de données et le reporting
Les graphiques sont le point de rencontre entre l'analyse et le décideur. Cette formation couvre le choix raisonné du graphique, la maîtrise des figures matplotlib, la visualisation statistique avec seaborn, les vues interactives Plotly et l'automatisation qui transforme un support manuel en livrable PDF ou Excel planifié.
View courseMachine learning avec Python et scikit-learn
Construire un modèle est simple ; faire confiance au score annoncé l'est moins. Ce programme couvre les pipelines scikit-learn, la validation croisée honnête, les fuites de données qui gonflent les résultats, le déséquilibre de classes, le choix du seuil, la calibration des probabilités et l'interprétation qui permet d'agir.
View courseDeep learning avec Python et PyTorch
Pour les ingénieurs qui entraînent des réseaux de neurones plutôt que d'appeler une API hébergée. Le programme couvre tenseurs et autograd, architectures nn.Module, boucle d'entraînement et signatures d'échec, régularisation et optimisation, transfer learning vision et texte, précision mixte et export vers un runtime de service.
View coursePipelines de données Python avec Apache Airflow
Les tâches cron et les scripts lancés à la main cessent de tenir dès qu'un chargement dépend d'un autre. Cette formation aborde Airflow comme une discipline d'orchestration : écriture de DAG, tâches idempotentes, intervalles de données et backfills, capteurs, politique de reprise et de SLA, tests et exploitation d'un scheduler fiable.
View courseConception de bases relationnelles et optimisation SQL
Une formation pour ingénieurs sur les deux décisions qui déterminent la performance d'une base : la modélisation du schéma et la façon dont l'optimiseur exécute les requêtes. Elle couvre normalisation et dénormalisation raisonnée, clés et contraintes, stratégie d'index, plans d'exécution, cardinalité et réécriture de requêtes.
View coursePage 1 sur 3
Aperçu du domaine
Développer les compétences en Développement logiciel
Le développement logiciel est devenu une capacité opérationnelle centrale plutôt qu'une fonction de spécialistes. On demande aux équipes de livrer plus vite, d'intégrer davantage de systèmes, d'absorber les outils d'IA et de maintenir un code encore modifiable des années après le départ de ceux qui l'ont écrit. Cette combinaison révèle l'écart entre des développeurs capables de produire du code fonctionnel et des équipes capables de produire du code que d'autres peuvent modifier sans risque. Les programmes de développement logiciel de 4D sont construits autour de cet écart. Le parcours Python va des fondamentaux du langage à l'automatisation, au traitement de données, aux tests, au packaging et aux API de production, avec des programmes appliqués pour les équipes finance, ingénierie, maintenance, sécurité et cloud. Le parcours Java couvre le Java moderne, la conception orientée objet, les microservices Spring Boot, le développement piloté par les tests, la performance de la JVM et la modernisation du legacy. Autour des deux se trouvent les pratiques qui décident si une organisation d'ingénierie progresse ou stagne : gestion de versions, revue de code, refactoring et dette technique, architecture et conception de systèmes, tests automatisés et chaînes de livraison. Chaque programme est animé à partir des dépôts, de la stack et des contraintes réelles du client, et se conclut par un livrable exploitable plutôt que par une attestation de présence.
