Home / Courses / Programming Languages
Programming Languages

Programmation Rust : de l'ownership à la concurrence sans crainte

Maîtrisez la syntaxe de Rust, le borrow checker, les traits, l'async et la concurrence avec du code pratique et idiomatique dès le premier jour.

6 sections 44 lectures All levels French Certificate on completion
What you'll learn
  • Écrire des programmes Rust idiomatiques avec des variables, des types, du flux de contrôle et des fonctions
  • Maîtriser l'ownership, le borrowing et les lifetimes sans vous battre avec le borrow checker
  • Utiliser les Vecteurs, HashMaps, Slices et itérateurs pour manipuler des données réelles efficacement
  • Modéliser votre domaine avec des structs, des enums, Option et Result pour une gestion sûre des erreurs
  • Comprendre comment fonctionnent réellement le borrow checker, la stack, le heap et les abstractions à coût zéro
  • Construire des programmes concurrents avec des threads, des channels, Arc, Mutex et Rayon
  • Écrire du code async avec Tokio pour des charges de travail réseau et d'E/S à haute performance
  • Appliquer des patterns avancés : closures, génériques, trait objects et dispatch dynamique
  • Concevoir des types d'erreur personnalisés avec thiserror et gérer proprement les ressources avec Drop et RAII
  • Reconnaître les patterns Rust idiomatiques comme Newtype, Typestate et RAII dans du code de production
Curriculum

What's inside

6 sections · 44 lectures. Expand each section to see what it covers.

1. Premier contact : sortie, variables et types 6 lectures
  • Ce qu'est Rust et pourquoi il existe Preview
  • · Hello, World et la Forme d'un Programme Rust
  • · Immuable par défaut : let et let mut
  • · Scalar Types : entiers, flottants, booléens et caractères
  • · Types composés : tuples et tableaux
  • · Chaînes de caractères : &str contre String
2. Opérateurs, flux de contrôle et fonctions 6 lectures
  • · Une chronologie de l'évolution de Rust
  • · Opérateurs arithmétiques, de comparaison et logiques
  • · If, Else et If comme Expression
  • · L'expression match et l'exhaustivité
  • · Boucles : loop, while et for
  • · Fonctions, paramètres et valeurs de retour
3. Collections et itération 6 lectures
  • · L'écosystème Rust et sa chaîne d'outils en un coup d'œil
  • · Vectors : le tableau redimensionnable
  • · HashMaps pour les données clé-valeur
  • · Les slices : une vue dans une collection
  • · Les itérateurs et la puissance de .iter()
  • · Les chaînes en tant que collections : itérer sur les caractères et les octets
4. Ownership, borrowing et lifetimes en pratique 7 lectures
  • · Philosophie de conception : sécurité, vitesse, concurrence
  • · Propriété : la sémantique de déplacement en action
  • · Emprunt : références partagées et mutables
  • · Un Premier Goût des Lifetimes
  • · Structs : définir vos propres types
  • · Enums et le Type Option
  • · Le type Result et l'opérateur ? pour la propagation d'erreurs
5. Concurrence, async et parallélisme 6 lectures
  • · Les compromis honnêtes et les défauts connus
  • · Threads avec std::thread::spawn
  • · Canaux pour le passage de messages
  • · État Partagé avec Arc et Mutex
  • · Itérateurs Parallèles avec Rayon
  • · Async/Await avec Tokio
6. Modèles de programmation avancés 13 lectures
  • · Benchmarks de performance et adoption en pratique
  • · Closures et fonctions d'ordre supérieur
  • · Map, Filter et Reduce sur les Iterators
  • · Generics and Trait Bounds
  • · Objets de trait et dispatch dynamique
  • · Types d'Erreur Personnalisés avec thiserror
  • · RAII et Gestion des Ressources avec Drop
  • · Le Borrow Checker en tant que système de preuve statique
  • · Disposition mémoire, la pile et le tas
  • · Traits, Monomorphisation et Abstractions à Coût Zéro
  • · Send, Sync, et la Concurrence sans peur
  • · Patrons idiomatiques : Newtype, Typestate et RAII
  • · Où Rust va là où les autres langages ne peuvent pas
About this course
Rust est devenu discrètement l'un des langages de programmation les plus déterminants de la décennie. Il fait aujourd'hui tourner des parties du noyau Linux, des composants de Windows, des moteurs de navigateurs, l'infrastructure cloud d'AWS et de Cloudflare, ainsi que la colonne vertébrale de l'outillage de développement moderne. La raison est simple : Rust vous offre la vitesse brute du C et du C++ sans les bugs de mémoire, les segfaults et les data races qui hantent la programmation système depuis cinquante ans. Si vous voulez écrire des logiciels rapides, sûrs et conçus pour durer, Rust n'est plus une connaissance optionnelle. C'est le langage que les recruteurs, les équipes d'infrastructure et les mainteneurs de projets open source attendent de plus en plus de vous. Ce cours est un parcours complet du langage Rust, depuis les fondations, et il est structuré pour garder le « pourquoi » au plus près du « comment ». Chaque section de code s'ouvre sur une courte leçon conceptuelle qui vous donne le contexte, l'histoire ou la réflexion de conception derrière ce que vous allez construire, avant de vous plonger directement dans le code. Vous écrirez votre premier programme et maîtriserez les variables, les types scalaires et composés, les chaînes de caractères, les opérateurs, le flux de contrôle et les fonctions. Vous aborderez ensuite les collections, les itérateurs, l'ownership, le borrowing, les lifetimes, les structs, les enums et les types Result et Option qui définissent la gestion idiomatique des erreurs en Rust. À mesure que le cours progresse, vous construirez des programmes concurrents avec des threads, des channels, Arc et Mutex, des itérateurs parallèles avec Rayon et async/await avec Tokio, puis vous passerez aux closures, aux génériques, aux trait objects, aux types d'erreur personnalisés avec thiserror et à la gestion des ressources fondée sur RAII. La dernière partie du cours est une série de leçons conceptuelles plus poussées qui rassemblent toute la vue d'ensemble : comment le borrow checker fonctionne réellement en tant que système de preuve statique, la disposition de la mémoire sur la stack et le heap, la monomorphisation et les abstractions à coût zéro, Send et Sync, les patterns idiomatiques Newtype, Typestate et RAII, et un tour d'horizon final des domaines où Rust va là où les autres langages ne peuvent pas. Ce cours est conçu pour les programmeurs qui connaissent déjà au moins un autre langage et veulent ajouter Rust à leur boîte à outils avec une réelle profondeur. Vous devez être à l'aise avec les variables, les boucles, les fonctions et les structures de données de base dans n'importe quel langage. À la fin, vous saurez lire et écrire du Rust idiomatique, raisonner sur l'ownership et les lifetimes sans vous battre avec le compilateur, choisir judicieusement entre les threads et les runtimes async, concevoir des API propres à l'aide des traits et des génériques, et livrer des outils en ligne de commande et des services backend robustes. Ce qui rend ce cours différent, c'est son honnêteté. Nous ne prétendons pas que Rust est magique. Vous découvrirez les compromis, les aspérités et les patterns que les Rustaceans expérimentés utilisent réellement en production. Chaque concept est enseigné avec le pourquoi qui se cache derrière, pas seulement le comment. Inscrivez-vous dès aujourd'hui et commencez à construire le type de logiciels sur lesquels tournera la prochaine décennie de l'informatique.
Who it's for
  • Les développeurs venant de Python, JavaScript, Java ou Go qui veulent apprendre un langage système rapide et sûr
  • Les ingénieurs backend et infrastructure qui construisent des services haute performance et des outils CLI
  • Les programmeurs C et C++ à la recherche d'une alternative moderne et sûre en mémoire sans perdre le contrôle
  • Les étudiants en informatique qui veulent une compréhension approfondie et pratique de la mémoire et de la concurrence
  • Les ingénieurs autodidactes qui se préparent à des postes dans des entreprises adoptant Rust en production
Prerequisites
  • Être à l'aise avec au moins un langage de programmation comme Python, JavaScript, Java, C ou Go
  • Une compréhension de base des variables, des boucles, des fonctions et de la logique conditionnelle
  • Une familiarité avec l'utilisation d'un terminal ou d'une ligne de commande pour exécuter des programmes
  • Un ordinateur sous Windows, macOS ou Linux avec l'autorisation d'installer des logiciels
  • Aucune expérience préalable en programmation système, C ou C++ n'est requise
Student reviews

No reviews yet

Reviews from enrolled students will appear here.