Apprenez à programmer en langage C++ en 3 jours, jusqu’au niveau intermédiaire ou avancé
Informaticiens
À Paris Campus Cyber, dans vos locaux ou en ligne
3 jours (21 heures)
CERTIFICATION : Attestation d’Acquisition des Compétences de l’EPITA
La formation en C++ en 2 mots
Avec notre formation de programmation C++, apprenez à maîtriser les dernières techniques du C++ moderne en 3 jours. Ainsi vous pourrez assurer la sécurité, la maintenance, la portabilité et la performance de vos applications.
Nous avons conçu cette formation en langage C++ grâce aux 40 ans d’expertise de l’EPITA en informatique.
Elle est dispensée par des experts en informatique et enseignants-chercheurs des plus grandes institutions du domaine.
Nous proposons 2 niveaux de formation selon vos besoins et capacités : intermédiaire et avancé.
Objectifs de la formation
- Formation C++ intermédiaire : apprentissage du C++ moderne et des bonnes pratiques du développement en C++
- Formation C++ avancée : apprentissage des techniques avancées du C++ moderne
- Pour les 2 niveaux : comprendre le développement C++ dans un monde où la sécurité, la maintenance, la portabilité et la performance sont des enjeux critiques
Cette formation vous intéresse ? Remplissez ce court formulaire
La formation en C++ est-elle pour vous ?
- Les outils de développement et l’écosystème C++
- L’utilisation efficace de la bibliothèque standard C++
- Les bonnes pratiques pour un développement simple, performant et sécurisé
Développeurs.
Formation C++ intermédiaire :
- Être à l’aise avec un langage de programmation
- Une connaissance basique du C/C++ est recommandée
Formation C++ avancée :
- Avoir un bon niveau en C++
- Avoir une connaissance du modèle objet et de l’héritage, des lambdas et des templates
Vous devrez être munis d’un ordinateur portable avec un environnement de développement C++ préinstallé compatible C++17. Un support sera fourni uniquement sur ces configurations :
- Unix : GCC 8+/Clang 6+/CMake
- Windows : Visual Studio 2019/MSVC
- Mac : XCode/Clang
Quiz d’évaluation des connaissances et cas pratiques transmis durant la formation.
Une attestation d’acquisition des compétences de l’EPITA vous est délivrée si vous validez l’ensemble des compétences visées par la formation.
Pour les personnes en situation de handicap
La formation en C++ est accessible aux personnes en situation de handicap. Nous vous invitons à préciser dans le formulaire de renseignement si vous avez besoin d’un accompagnement particulier.
En savoir plus sur l’accessibilité PSH, les modalités et les délais d’accès à nos formations.
Programme de la formation en C++ intermédiaire
- Mise en place d’un projet en (Moderne) CMake
- Phase de compilation d’un projet C++ (sources, objets, bibliothèque statique, bibliothèque partagée)
- Mode de compilation et bonnes pratiques (Debug Release et flags)
- Considération des outils de qualité (Coverage, Sanitizers)
- Types et expressions
- Fonctions et surcharge de fonctions
- Sémantiques *valeur> vs *référence*
- Type *automatique*
- Promesse de cohérence : encapsulation de données et visibilité
- Promesse de constance : la *const*-qualification
- Le {scope}
- Allocation statique vs dynamique
- RAII
- Gestion des ressources dynamiques avec la bibliothèque standard : les pointeurs intelligents et les conteneurs
- Déplacement de ressources avec *std::move*
- Classes abstraites et héritage
- Méthodes abstraites
- Co-variance et contre-invariance
- Application au patron objet *composition*
- Pièges de la POO (héritage multiple et hiérarchie profonde…)
- Types paramétriques
- Algorithmes génériques
- De l’algorithme au concept
- Fonction générique et lambdas
- Les différents styles de gestion d’erreurs
- Les exceptions en C++
- Conteneurs, Itérateurs & Algorithmes
- Les flux
- Mathématiques
- Système de fichiers
- [[Annotation]]
- Programmation par contrat (assertions)
- Type-safety
- Goods API
Programme de la formation en C++ avancée
- Polymorphisme d’héritage et fonctions virtuelles
- Effacement de type avec « std::function » and « std::any »
- Comparaison avec le polymorphisme statique des templates et des lambdas
- Déduction automatique de type
- Perfect forwarding et r-values références
- Programmation asynchrone à base de *futures* et *promesses*
- « Outils de synchronisation « std::atomic » « std::mutex » « std::condition_variable »
- Modèle mémoire C++
- Revue des algorithmes parallèles de la Bibliothèque Standard et ouverture vers TBB et HPX
- Coroutines et le parallélisme en C++2y
- Classes abstraites et héritage
- Méthodes abstraites
- Co-variance et contre-invariance
- Application au patron objet *composition*
- Pièges de la POO (héritage multiple et hiérarchie profonde…)
- Dispatch à base de tag, de traits et SFINAE
- Concepts en C++20
- Types somme, option : « variant » « optional » « tuple » et continuations
- Expression compile-time « constexpr » vs
métaprogrammation à base de type
- Small-buffer optimisation
- Optimisation mémoire et allocateurs
Acquisition des compétences de manière interactive en s’appuyant sur des exemples réels et sur des ateliers de réflexion. Apports théoriques et mise en œuvre pratique dans un environnement Unix.