Formation Python, perfectionnement
La programmation en Python est l'une des compétences les plus demandées aujourd'hui sur le marché du travail informatique. En effet, la croissance du secteur des développeurs ne cessent de croître.
Cette formation Python perfectionnement s'adresse aux développeurs qui ont déjà des bases de connaissances en Python. À l’issue de la formation, le participant sera en mesure d'implémenter de manière rigoureuse des Design Patterns reconnus, d'utiliser les techniques avancées du langage Python telles que Contexte Manager, méta classes, closures, fonctions avancées.
Le participant pourra optimiser les performances de son programme grâce au monitoring et au parallélisme dont il aura une parfaite maîtrise.
À l’issue de la formation, le participant sera en mesure de :
- Implémenter de manière rigoureuse des Design Patterns reconnus
- Utiliser les techniques avancées du langage Python : Context Manager, métaclasses, closures, fonctions avancées
- Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme
- Packager et déployer ses artefacts Python
- Exploiter des librairies contribuant au succès du langage : calcul scientifique, Intelligence Artificielle, XML, réseau
Evaluation de la formation et de votre progression vers vos objectifs
Avant le début de la formation, un questionnaire vous permettra d’exprimer vos objectifs personnels et d’évaluer votre degré de maîtrise des principales thématiques abordées dans la formation.
Pendant la formation, le formateur observera vos pratiques afin de pouvoir vous donner des conseils personnalisés quant aux points forts sur lesquels vous pourrez vous appuyer et aux points de vigilance sur lesquels il doit axer ses efforts.
À la fin de la formation, vous aurez à remplir un questionnaire (QCM et/ou des ateliers et des exercices pratiques) pour évaluer vos nouvelles compétences et votre progression vers vos objectifs. Un questionnaire supplémentaire vous permettra d'indiquer votre niveau de satisfaction à l'égard de la formation.
Un questionnaire d’auto-évaluation à froid vous sera proposé 6 à 9 mois après la fin de formation. Celui-ci vous permettra de prendre du recul sur
les bénéfices acquis, les efforts restant à déployer et votre degré de satisfaction vis à vis de la formation.
Cette formation s'adresse aux Ingénieurs et développeurs.
4 JOURS
Rappels importants sur le langage
- Affectation par référence et types de données modifiables, non modifiables (mutable).
- Passage d'arguments, valeurs par défaut et variables locales.
- Variables de classe et d'instances.
- Les slices et structures de données avancées.
- L'introspection.
- Eléments avancés des structures de contrôle : la clause else des instructions for, while, try/except.
Travaux pratiques
Optimisation : intersection de listes et calcul de complexité d'algorithmes.
Fonctions avancées
- Utilisation avancée de décorateurs (de la génération à la consommation, pipeline de consommateurs).
- Les décorateurs et Design Patterns.
- Fermeture/closure.
Travaux pratiques
Chaînage de consommateurs de données. Abonnement à des événements via les décorateurs.
Programmation Orientée Objet avancée
- Les propriétés (property).
- Les itérateurs.
- L'héritage multiple et ses travers.
- Les Context Managers.
- Les classes et méthodes abstraites (ABC).
- Les métaclasses.
Travaux pratiques
Implémenter une métaclasse pour créer des classes de type singleton.
Déploiement et qualité
- Installer des librairies tierces (pip, easy_install).
- Le Python Package Index (PyPI).
- Packager ses librairies (distutils, setuptools).
- Déployer un environnement autonome (virtualenv et buildout).
Travaux pratiques
Packager une librairie et la déposer sur PypI.
Le parallélisme : optimiser les performances de vos programmes
- Profilez vos programmes avec Timeit et cProfile.
- Parallélisation : évitez le multithreading et foncez avec le multiprocessing.
- Calcul distribué avec la librairie Celery.
Travaux pratiques
Répartition et consolidation (Map Reduce) de calculs avec Celery.
Les librairies contribuant au succès du langage
- Calcul scientifique et statistiques avec Numpy, Scipy, Matplotlib et Pandas.
- Intelligence Artificielle et algorithmes d'apprentissage avec Scikit-Learn.
- Recherche d'informations dans des fichiers XML avec ElementTree.
- Réseau : relay tcp avec Twisted et supervision SNMP avec PySNMP.
Travaux pratiques
Extraction d'informations dans des fichiers de log XML, filtres et statistiques sur les données collectées puis représentation à l'aide de graphiques des tendances des informations.
Méthodes et moyens
Cette formation repose sur une combinaison de constructions participatives, de mises en perspectives par des apports théoriques et méthodologiques, et de mises en situation (simulation et jeux de rôle) permettant de mettre en évidence les difficultés et de découvrir progressivement les méthodes et techniques appropriées.
Bonnes connaissances en développement Python, ou connaissances équivalentes à celles apportées par les stages THO ou PYT. Expérience requise.
- Rugosité
- Consciencieux