Formation Langage C Avancé

Approfondissez vos connaissances et bonnes pratiques avec le langage C grâce à cette formation C Avancé de 2 jours !

Prix (Formation inter-entreprise)

1200€ HT / personne

Durée

2 jours

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Durant ces 2 jours de formation, vous étudierez les mécanismes avancés vous permettant de gérer des projets complexes sur des environnements multi-cibles. Vous apprendrez également à mettre en place des tests unitaires de qualité et serez initier à la programmation des threads ‘Posix’.

Le langage C est encore à ce jour le langage de référence dans de nombreux domaines de l’informatique comme les pilotes de matériels informatiques, les applications en temps réel, les systèmes d’exploitation, les compilateurs ou interpréteurs.
Ce langage procédural de bas niveau permet une gestion fine de la mémoire à travers une palette réduite de types de bases et une arithmétique solide des pointeurs.

Cette formation Langage C Avancé s‘adresse à des programmeurs et programmeuses expérimentées maîtrisant déjà le langage C et étant à l’aise avec l’utilisation d’un IDE pour gérer un projet conséquent en langage C (plusieurs fichiers sources, avec des bibliothèques externes).

Si vous débutez avec C, jetez un oeil à notre formation Langage C : Les Bases.

Cette formation se répartira avec environ 35% de théorie et 65% de pratique, qui auront lieu seul et parfois en binôme.

Installations nécessaire sur votre machine :
- un PC sous Windows ou Linux, Mac
- Visual C de Microsoft, CLion de Jetbrains
- un Compilateur C propre à chaque OS (msvc, gcc ou clang)

Covid-19: Nous restons ouverts. Cette formation est disponible à distance.

Les objectifs

  • Maîtriser la gestion et la production d’une application multi-cibles
  • Maîtriser et organiser la mise en place de tests unitaires
  • Manager son projet à travers les entrées des fichiers « makefile »
  • Concevoir et maintenir une application « multi-threadée » simple

Pré-requis

  • Ordinateur portable à apporter

Le programme de la formation Langage C Avancé

Jours jour 1 : Rappel et tests

Les types de base en langage C
  • Les tableaux, les structures de données, les unions et énumérations
  • Les fichiers en langage C
  • La portée des variables
  • L’allocation dynamique
  • Les pointeurs en langage C

Mises en pratique :
- Ecrire et définir en langage C des structures et fonctions pour gérer une table de ‘hashage’
- Création des structures et fonctions permettant de manipuler une pile de chaînes de caractères
- Mise en œuvre de la fonction interne C qsort

Les tests unitaires et le TDD
  • Les tests unitaires avec la fonction interne C assert
  • Les tests unitaires avec une bibliothèque externe
  • Etude et mise en œuvre du TDD

Mises en pratique :
- Création des tests unitaires pour une fonction de recherche d’un élément dans un tableau de nombres flottants
- Mise en œuvre de TDD sur une fonction de recherche dichotomique sur un tableau ordonné

La chaîne de fabrication d’un programme C
  • Rappel sur la chaîne de fabrication d’un programme : pré-processeur, compilation, éditions de liens
  • Rappel sur l’organisation interne d’un programme en C, les sources, les librairies
  • La fabrication des programmes cibles : le fichier "makefile" et son utilitaire make
  • La production d’une bibliothèque en langage C : fichier d’entête, fichier binaire, fichier de liens, fichier de fabrication
  • Interagir avec le programme source à travers les paramètres en ligne de commande du compilateur

Mises en pratique :
- Mettre en place de 2 chaînes de fabrication séparées, l’une pour les tests, l’autre pour produire le programme final
- Produire une bibliothèque en langage C

Jour 2 : Threads et préprocesseur

Introduction aux threads « Posix » en langage C
  • Présentation des cas d’usage
  • Etude de la bibliothèque pthread.h
  • Lancer et contrôler un thread
  • Les mécanismes de synchronisation entre threads

Mises en pratique : Mise en place d’une chaîne de traitements unitaires avec des threads

Le préprocesseur
  • Rappel sur l’inclusion des fichiers de définition avec #include
  • Rappel sur l’utilisation des macros définies dans les bibliothèques standards
  • Définir et gérer des propres macros avec #defineet #undef
  • Définir des macros avec des paramètres
  • Mise en œuvre des opérateurs internes # et ##
  • La compilation conditionnelle : #if, #ìf defined, #ifdef, #ifndef, #elif, #endif
  • La directive #pragma

Mises en pratique : Mise en place de la compilation conditionnelle en fonction de l’OS cible

Télécharger le programme

Le(s) formateur(s)

Yannick Cadin

Yannick Cadin

Sollicité par une maison d'édition, Yannick a prématurément quitté les bancs de l'école pour commencer à développer professionnellement. C'était en des temps très reculés, ce qui lui vaut d'être parfois traité (affectueusement) de dinosaure.

Alternant les emplois salariés (dans des secteurs d'activité très divers), la création d'entreprise et le statut libéral, il est à son compte depuis plus d'une vingtaine d'années et répartit son temps entre la programmation, l'administration système et la formation.

Il a également été relecteur, pigiste et conférencier occasionnel. (Et même prof durant un semestre à l'IUT de Laval.)

Certifié Red Hat Linux, Ubuntu, Suse, LPI, *BSD et Apple. Essentiellement pour pouvoir former, soit directement pour le compte de Red Hat Europe, soit pour intervenir au sein d'un organisme de formation agréé Canonical (l'éditeur de la distribution Ubuntu).

Il a fait sienne cette citation de Gandhi, « Vis comme si tu devais mourir demain. Apprends comme si tu devais vivre éternellement. ».
Avec toutefois l'idée que l'accumulation de connaissances est vain si l'on n'a pas à cœur de les partager. Ce qui explique un engagement sans faille dans la formation depuis presque 30 ans.

Voir son profil détaillé

Yves Duprat

Yves Duprat

Yves est développeur Python freelance depuis 15 ans. Son activité professionnelle Python se répartit à part égale, entre du développement et de la transmission de savoir aussi bien en écoles d'ingénieur qu'en formation auprès des entreprises. Il intervient aussi sur des sessions de formation en C, C++ et SQL.

Ses principales missions Python en développement concernent soit de l'écriture de script backoffice, soit des missions d'audit en vue de refactoring et/ou d'optimisation de code.

Yves est aussi créateur et organisateur du meetup Python de Lille (Lille.py)

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 92 formations au catalogue, 1137 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Boursorama
FNAC
Decathlon
Meetic
Voyage SNCF
La Poste

Formation Langage C Avancé

Approfondissez vos connaissances et bonnes pratiques avec le langage C grâce à cette formation C Avancé de 2 jours !

Durant ces 2 jours de formation, vous étudierez les mécanismes avancés vous permettant de gérer des projets complexes sur des environnements multi-cibles. Vous apprendrez également à mettre en place des tests unitaires de qualité et serez initier à la programmation des threads ‘Posix’.

Le langage C est encore à ce jour le langage de référence dans de nombreux domaines de l’informatique comme les pilotes de matériels informatiques, les applications en temps réel, les systèmes d’exploitation, les compilateurs ou interpréteurs.
Ce langage procédural de bas niveau permet une gestion fine de la mémoire à travers une palette réduite de types de bases et une arithmétique solide des pointeurs.

Cette formation Langage C Avancé s‘adresse à des programmeurs et programmeuses expérimentées maîtrisant déjà le langage C et étant à l’aise avec l’utilisation d’un IDE pour gérer un projet conséquent en langage C (plusieurs fichiers sources, avec des bibliothèques externes).

Si vous débutez avec C, jetez un oeil à notre formation Langage C : Les Bases.

Cette formation se répartira avec environ 35% de théorie et 65% de pratique, qui auront lieu seul et parfois en binôme.

Installations nécessaire sur votre machine :
- un PC sous Windows ou Linux, Mac
- Visual C de Microsoft, CLion de Jetbrains
- un Compilateur C propre à chaque OS (msvc, gcc ou clang)

Covid-19: Nous restons ouverts. Cette formation est disponible à distance.

Les objectifs

  • Maîtriser la gestion et la production d’une application multi-cibles
  • Maîtriser et organiser la mise en place de tests unitaires
  • Manager son projet à travers les entrées des fichiers « makefile »
  • Concevoir et maintenir une application « multi-threadée » simple

Pré-requis

  • Ordinateur portable à apporter

Le programme de la formation Langage C Avancé

Jours jour 1 : Rappel et tests

Les types de base en langage C
  • Les tableaux, les structures de données, les unions et énumérations
  • Les fichiers en langage C
  • La portée des variables
  • L’allocation dynamique
  • Les pointeurs en langage C

Mises en pratique :
- Ecrire et définir en langage C des structures et fonctions pour gérer une table de ‘hashage’
- Création des structures et fonctions permettant de manipuler une pile de chaînes de caractères
- Mise en œuvre de la fonction interne C qsort

Les tests unitaires et le TDD
  • Les tests unitaires avec la fonction interne C assert
  • Les tests unitaires avec une bibliothèque externe
  • Etude et mise en œuvre du TDD

Mises en pratique :
- Création des tests unitaires pour une fonction de recherche d’un élément dans un tableau de nombres flottants
- Mise en œuvre de TDD sur une fonction de recherche dichotomique sur un tableau ordonné

La chaîne de fabrication d’un programme C
  • Rappel sur la chaîne de fabrication d’un programme : pré-processeur, compilation, éditions de liens
  • Rappel sur l’organisation interne d’un programme en C, les sources, les librairies
  • La fabrication des programmes cibles : le fichier "makefile" et son utilitaire make
  • La production d’une bibliothèque en langage C : fichier d’entête, fichier binaire, fichier de liens, fichier de fabrication
  • Interagir avec le programme source à travers les paramètres en ligne de commande du compilateur

Mises en pratique :
- Mettre en place de 2 chaînes de fabrication séparées, l’une pour les tests, l’autre pour produire le programme final
- Produire une bibliothèque en langage C

Jour 2 : Threads et préprocesseur

Introduction aux threads « Posix » en langage C
  • Présentation des cas d’usage
  • Etude de la bibliothèque pthread.h
  • Lancer et contrôler un thread
  • Les mécanismes de synchronisation entre threads

Mises en pratique : Mise en place d’une chaîne de traitements unitaires avec des threads

Le préprocesseur
  • Rappel sur l’inclusion des fichiers de définition avec #include
  • Rappel sur l’utilisation des macros définies dans les bibliothèques standards
  • Définir et gérer des propres macros avec #defineet #undef
  • Définir des macros avec des paramètres
  • Mise en œuvre des opérateurs internes # et ##
  • La compilation conditionnelle : #if, #ìf defined, #ifdef, #ifndef, #elif, #endif
  • La directive #pragma

Mises en pratique : Mise en place de la compilation conditionnelle en fonction de l’OS cible

Télécharger le programme

Le(s) formateur(s)

Yannick Cadin

Yannick Cadin

Sollicité par une maison d'édition, Yannick a prématurément quitté les bancs de l'école pour commencer à développer professionnellement. C'était en des temps très reculés, ce qui lui vaut d'être parfois traité (affectueusement) de dinosaure.

Alternant les emplois salariés (dans des secteurs d'activité très divers), la création d'entreprise et le statut libéral, il est à son compte depuis plus d'une vingtaine d'années et répartit son temps entre la programmation, l'administration système et la formation.

Il a également été relecteur, pigiste et conférencier occasionnel. (Et même prof durant un semestre à l'IUT de Laval.)

Certifié Red Hat Linux, Ubuntu, Suse, LPI, *BSD et Apple. Essentiellement pour pouvoir former, soit directement pour le compte de Red Hat Europe, soit pour intervenir au sein d'un organisme de formation agréé Canonical (l'éditeur de la distribution Ubuntu).

Il a fait sienne cette citation de Gandhi, « Vis comme si tu devais mourir demain. Apprends comme si tu devais vivre éternellement. ».
Avec toutefois l'idée que l'accumulation de connaissances est vain si l'on n'a pas à cœur de les partager. Ce qui explique un engagement sans faille dans la formation depuis presque 30 ans.

Voir son profil détaillé

Yves Duprat

Yves Duprat

Yves est développeur Python freelance depuis 15 ans. Son activité professionnelle Python se répartit à part égale, entre du développement et de la transmission de savoir aussi bien en écoles d'ingénieur qu'en formation auprès des entreprises. Il intervient aussi sur des sessions de formation en C, C++ et SQL.

Ses principales missions Python en développement concernent soit de l'écriture de script backoffice, soit des missions d'audit en vue de refactoring et/ou d'optimisation de code.

Yves est aussi créateur et organisateur du meetup Python de Lille (Lille.py)

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 92 formations au catalogue, 1137 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012