Portfolio d'apprentissage
Cette page présente mon bilan d'apprentissage concernant les 3 compétences de niveau 3 du BUT Informatique. Pour chaque compétence, j'identifie les apprentissages critiques et les composantes essentielles, et j'explique comment je les ai travaillés, validés et intégrés dans mes projets professionnels.
Ce portfolio documente ma trajectoire de développement en mobilisant et analysant des traces issues de l'ensemble de mes mises en situation professionnelle (SAÉ, stages, alternance et projets personnels).
Compétences de Niveau 3 — BUT 3
1. Réaliser — Adapter des applications sur un ensemble de supports
Apprentissages critiques
- Élaborer et implémenter les spécifications fonctionnelles et non fonctionnelles à partir des exigences client
- Appliquer des principes d'accessibilité, d'ergonomie et de qualité dans la conception et la programmation
- Choisir les ressources techniques appropriées selon le contexte (plateforme, contraintes de performance, etc.)
- Adapter des applications sur plusieurs supports tout en maintenant la cohérence fonctionnelle
Composantes essentielles
- Respecter les besoins décrits par le client et les contraintes du système cible
- Appliquer les principes algorithmiques et les patterns de conception appropriés
- Veiller à la qualité du code, à la documentation et à la maintenabilité
- Vérifier et valider la qualité par des tests exhaustifs
Comment j'ai travaillé et validé cette compétence
J'ai développé cette compétence à travers plusieurs projets académiques et professionnels. En entreprise, lors de mon alternance chez Dwarf Animation Studio, j'ai travaillé sur le projet NightCrawler, une application d'automatisation des rendus nécessitant une adaptation précise à l'écosystème technique complexe (Python, Flask backend, Vue.js frontend, intégrations API multiples). De plus, j'ai également développé DW Deadline Tray, une application système de monitoring utilisant PyQt5, qui démontre ma capacité à adapter une application à un support spécifique (Windows system tray) tout en maintenant une architecture MVCS robuste et maintenable. Cette architecture garantit une séparation claire des responsabilités (Model, View, Controller, Service) permettant une évolution future sur d'autres plateformes.
En cours, j'ai également travaillé sur des projets de création de sites web avec des objets critiquables en Vue.js et en PHP Symfony, ce qui m'a permis de maîtriser les frameworks modernes et de comprendre les bonnes pratiques de conception d'applications web responsives et maintenables. Les SAE réalisées à l'IUT, notamment le site de gestion des stages en PHP/MySQL, m'ont enseigné à respecter les principes d'accessibilité et d'ergonomie en adaptant l'interface à différents navigateurs et écrans.
Traces de validation
- ✓ Projet NightCrawler — Architecture multi-couches avec adaptation aux APIs Perforce, Unreal Engine, Deadline
- ✓ DW Deadline Tray — Application système MVCS adaptée au tray Windows (alternance)
- ✓ Projets de cours : Sites web avec objets critiquables en Vue.js et Symfony
- ✓ SAE Web — Site responsif avec respect des bonnes pratiques WEB
- ✓ Tests unitaires et fonctionnels pour valider la qualité
2. Optimiser — Analyser et optimiser des applications
Apprentissages critiques
- Analyser et profiler le code pour identifier les goulots d'étranglement et inefficacités
- Anticiper les résultats de diverses métriques (temps d'exécution, occupation mémoire, charge réseau)
- Choisir des structures de données et algorithmes adaptés pour optimiser les performances
- Justifier les choix optimisation et valider les résultats via des mesures et benchmarks
Composantes essentielles
- Formaliser et modéliser les situations complexes (algorithmes, structures de données)
- Recenser les solutions pertinentes et appliquer des schémas de raisonnement
- Utiliser des techniques algorithmiques appropriées (recherche, tri, graphes, programmation dynamique)
- Valider les résultats et apporter des justifications solides aux choix
Comment j'ai travaillé et validé cette compétence
J'ai développé cette compétence d'optimisation lors de projets en alternance et à l'IUT, notamment en analysant et améliorant les performances d'applications existantes. Lors de mon stage chez Dwarf Animation Studio, j'ai optimisé des scripts Python de traitement de fichiers 3D, en choisissant des structures de données appropriées (dictionnaires, sets) et en réduisant les itérations inutiles, ce qui a significativement amélioré les temps de traitement. Cette expérience m'a appris à quantifier l'impact des optimisations via des métriques concrètes.
En alternance, lors du développement de NightCrawler, j'ai appliqué des techniques d'optimisation pour gérer efficacement les requêtes API vers Perforce, Unreal Engine et Deadline. J'ai implémenté du caching, du polling périodique optimisé et du threading pour éviter les blocages UI — démontrant ma capacité à anticiper les problèmes de performance et à proposer des solutions architecturales élégantes. À l'IUT, les cours d'algorithmique m'ont formé aux structures de données (arbres, graphes) et aux algorithmes fondamentaux (tri, recherche).
Traces de validation
- ✓ Optimization du traitement des fichiers LookDev sur Unreal Engine (stage)
- ✓ Gestion efficace des requêtes asynchrones dans NightCrawler via threading
- ✓ Implémentation de caching et polling optimisé pour les APIs Deadline
- ✓ Conception d'algorithmes performants en projets académiques
3. Administrer — Faire évoluer et maintenir un système informatique en conditions opérationnelles
Apprentissages critiques
- Créer des processus de traitement automatisé (CI/CD, gestion de configuration, intégration continue)
- Configurer et sécuriser les services réseaux selon les normes et bonnes pratiques architecturales
- Appliquer une politique de sécurité au niveau de l'infrastructure et des données
- Assurer la disponibilité et la continuité d'activité du système cible
Composantes essentielles
- Concevoir et développer des applications communicantes et interopérables
- Appliquer les normes et bonnes pratiques architecturales (séparation des couches, patterns de communication)
- Sécuriser les accès, les données et les communications (authentification, chiffrement, autorisation)
- Offrir une qualité de service optimale avec monitoring et alerting
Comment j'ai travaillé et validé cette compétence
J'ai travaillé cette compétence principalement à l'IUT et en entreprise, en étudiant les architectures système, les réseaux et la sécurité informatique. Dans mes projets d'alternance, j'ai conçu des applications communicantes : NightCrawler et DW Deadline Tray communiquent via REST API avec plusieurs systèmes externes (Perforce, Unreal Engine, Deadline), nécessitant une intégration robuste, une gestion d'erreurs solide et un logging détaillé. J'ai appliqué des principes de séparation des couches (backend Flask, frontend Vue.js pour NightCrawler ; architecture MVCS pour DW Deadline Tray) et de communication asynchrone pour assurer la stabilité opérationnelle.
En tant que développeur en alternance, j'ai appris l'importance de la documentation technique, de la gestion des versions (Git), et de la communication avec l'équipe de production. Mes deux projets d'alternance — NightCrawler et DW Deadline Tray — ont été conçus avec une architecture pensée pour la production : gestion des configurations via fichier .env, gestion des erreurs réseau, reconnexion automatique et logging pour le débogage. À l'IUT, les cours de réseaux et sécurité m'ont formé aux principes de sécurisation des systèmes, de chiffrement, et de bonnes pratiques d'administration.
Traces de validation
- ✓ Architecture communicante de NightCrawler (REST API, intégrations multiples)
- ✓ Gestion robuste des erreurs et retry logic dans DW Deadline Tray
- ✓ Configuration externalisée et logging détaillé pour la transition vers production
- ✓ Utilisation de Git et gestion des versions pour la collaboration en équipe
- ✓ Documentation technique complète pour faciliter la maintenance