Formation Rust

Notée : (61)*

Maîtrisez Rust en 3 jours pour développer des applications fiables et performantes, avec un focus sur l’écosystème et les outils.

Formation Rust

Cette formation Rust vous permettra de découvrir et maîtriser les fondamentaux du langage Rust.

En trois jours, vous apprendrez à écrire, débugger, tester et maintenir vos programmes tout en explorant les outils incontournables de l’écosystème Rust.

Cette formation Rust se concentre sur la pratique avec des ateliers concrets qui incluent la gestion de la mémoire, la concurrence, et les collections.

Elle s'adresse aux développeur·euse·s expérimenté·e·s et souhaitant apprendre un langage de programmation moderne.


Vous souhaitez renforcer vos compétences en programmation système ?

La formation C avancé vous permettra de maîtriser les bonnes pratiques du langage C !

Les objectifs

  • Comprendre et écrire du code Rust
  • Se repérer dans l'écosystème Rust et découvrir quelques bibliothèques populaires

Pré-requis

  • Expérience solide dans au moins un langage de programmation
  • Familiarité avec l’utilisation du terminal
  • Ordinateur portable à apporter

Le programme de la formation Rust

Jour 1 : Comprendre et utiliser Rust

  • Historique et positionnement de Rust ​
  • Les Bases du langage
    • Commentaires
    • Types primitifs (simples et composés)
    • Fonctions
    • Variables (typage, muabilité, constantes)
    • Blocs et shadowing
    • Structures de contrôle
    • Les types structurés (exemple : Duration)
    • Les types énumérés (exemple : Option)
    • Filtrage par motif (pattern matching)
    • Écrire dans la console
  • Possession (ownership) et emprunt (borrowing)
    • Enjeux, contraintes et avantages de la possession (ownership)
    • Fonctionnement de la possession
    • Emprunt (borrowing) grâce aux références
    • Les slices de chaînes de caractères
  • Créer des types
    • Créer des alias de type
    • Créer des types structurés
      • structs
      • tuple structs
      • unit structs
    • Créer des types énumérés (enum)
    • Fonction et méthodes associées
  • Généricité et durée de vie (lifetime)​
    • Types de données génériques
    • Créer et implémenter des traits
    • Traits courants de la bibliothèque standard
      • Display, Clone, Add
    • Traits vs. énumération
    • Principe de la durée de vie (lifetime)
    • Manipuler les durées de vie
  • Les Collections
    • Fonctions anonymes (closures)
    • Vec
    • Slices
    • HashSet
    • HashMap
    • Itérateurs

Jour 2 : Écosystème et outillage

  • Modules et crates
    • Paquets et crates
    • Modules (déclaration, import, …)
    • Visibilité des entités
    • Arborescence des modules et des fichiers de code
  • Outillage
    • rustup (toolchain, cibles, …)
    • Cargo
      • gestion des dépendances
      • déclarer et utiliser des features
    • rustfmt
    • Clippy
  • Tests et documentation
    • Qualité et tests
    • Écrire et lancer des tests (unitaires et d'intégration) avec Cargo
    • Écrire et générer de la documentation avec Cargo
    • Autres facilités de Cargo : les exemples et les benchmarks
  • Gestion des erreurs
    • Recoverable vs. unrecoverable
    • Faire planter le programme
    • Option
    • Result
    • Gérer les erreurs dans une application
      • unwrap(), expect(), pattern matching, anyhow
    • Créer un type d'erreur structuré dans une bibliothèque
      • String
      • std::error::Error
      • thiserror
  • Concurrence et asynchronisme
    • Créer des threads
    • Partager des données entre threads (Arc, Mutex, MPSC)
    • Les traits Sync et Send
    • Futures et async/await (et Tokio) ​

Jour 3 : Pratique dirigée

  • Sérialisation et désérialisation
    • Fonctionnement et écosystème de Serde
    • Utiliser serde_json en pratique
    • Écrire un parser avec nom

Exploration et pratique à la carte


Suivant le temps restant et les envies des stagiaires, nous explorons des thèmes liés à Rust.

Cette exploration peut prendre la forme de discussions, de démonstrations ou de travaux pratiques en semi-autonomie, seul ou en binôme.

Exemples de mises en pratique :

- Gérer les traces d'exécution avec log et env_logger
- Écrire un programme CLI grâce à clap
- Gérer les dates et le temps avec Chrono
- Écrire une API HTTP avec actix-web
- Faire des requêtes HTTP avec reqwest
- Dialoguer avec une base de données grâce à SQLx
- Passer en mode manuel avec unsafe
- Interfaçage avec C/C++ (FFI)
- Écrire des macros simples
- Continuer à apprendre : quelques sources de veille
- Astuces diverses :
- Choisir un meilleur linker
- Compiler pour un type de CPU précis
- Garder ses dépendances à jour

Télécharger le programme

Le(s) formateur(s)

David SFERRUZZA

David SFERRUZZA

Passionné depuis toujours par l'informatique au sens large, David Sferruzza est propulsé par sa curiosité. Celle-ci l'a poussé à faire des études d'ingénieur généraliste pour ensuite se recentrer sur le développement logiciel et ses nombreux domaines connexes.
Notamment adepte de programmation fonctionnelle (Rust, Haskell, Scala, Nix, ...), d'administration système, de pédagogie et de différents mélanges de ces trois ingrédients, il s'est régulièrement lancé des challenges pour continuer à apprendre : homme à tout faire d'une équipe de développeurs (PHP/Laravel, JavaScript), orateur dans des conférences internationales, docteur en génie logiciel, et parfois même rédacteur de contenus absurdes !

Jamais très éloigné de son éditeur de code, il accompagne des startups sur les aspects techniques depuis plusieurs années chez Startup Palace et écrit des logiciels (web, réseau, embarqué, …) pour Le Palace.

Voir son profil détaillé

7 témoignages

Formation bien structurée, dynamique et riche en exemples. Cela fait une belle entrée dans la matière.

Formation bien structurée, dynamique et riche en exemples. Cela fait une belle entrée dans la matière.

Bonne idée d'avoir inclus une partie de travaux pratiques "à la carte".

Bonne idée d'avoir inclus une partie de travaux pratiques "à la carte".

L'ensemble du programme était bien conçu, mais ce qui a véritablement retenu mon attention, ce sont les exemples et exercices présentés sous u...

L'ensemble du programme était bien conçu, mais ce qui a véritablement retenu mon attention, ce sont les exemples et exercices présentés sous un format RPG. Cette approche ludique et immersive a grandement facilité l'assimilation des concepts abordés. De plus, le temps alloué en fin de formation pour travailler sur des projets personnels était particulièrement appréciable. Cette opportunité de mettre directement en application nos acquis dans un contexte pratique a été un véritable atout pour consolider nos apprentissages !

Voir plus

Formateur passionné. Donne envie de continuer à travailler en RUST.

Formateur passionné. Donne envie de continuer à travailler en RUST.

Excellente formation, tout comme son formateur. Rust est le langage d'avenir : sobre, sûr et efficace.

Excellente formation, tout comme son formateur. Rust est le langage d'avenir : sobre, sûr et efficace.

Génial ! David est hyper impliqué et à distance ce n'est pas simple donc bravo ! Ses compétences et sa maîtrise de RUST en font un excellent ...

Génial ! David est hyper impliqué et à distance ce n'est pas simple donc bravo ! Ses compétences et sa maîtrise de RUST en font un excellent pédagogue sur le sujet.

Voir plus

Très bon intervenant, très compétent, travaux pratiques peu nombreux au vu des trop nombreuses notions a acquérir, rythme trop rapide.

Très bon intervenant, très compétent, travaux pratiques peu nombreux au vu des trop nombreuses notions a acquérir, rythme trop rapide.

FAQ

Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié Qualiopi, ce qui permet la prise en charge par des organismes comme Pôle emploi, votre OPCO ou encore le CPF (Compte Personnel de Formation) pour certaines formations.

Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?

Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.

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

Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.

Voici une journée type :

  • 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
  • 9h30 : la formation commence
  • 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
  • 14h : reprise de la formation
  • 18h : fin de la journée

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...
  • 162 formations au catalogue, 1640 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • 99% des participants qui se disent satisfaits de nos formations
  • la possibilité de vous proposer un accompagnement personnalisé, du conseil ou un suivi après la formation

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