Aller au contenu

Et ensuite ? Continuer à apprendre Rust

Si vous avez suivi les sujets de ce cours, vous en savez déjà assez en Rust pour écrire de vrais programmes : variables, structures de contrôle, fonctions, ownership (possession), borrowing (emprunt), collections, modules, gestion des erreurs, traits, génériques, et même threads, pointeurs intelligents, unsafe et macros. C’est vraiment l’essentiel de ce que vous utiliserez au quotidien. Ce qui reste, c’est surtout de la pratique, et des connaissances propres à certaines bibliothèques, que vous apprendrez au fur et à mesure de vos besoins.

À partir d’ici, le meilleur moyen de progresser, c’est de choisir un petit projet et de rester bloqué quelques fois. Ce site propose cinq projets guidés pour commencer :

Une fois ceux-là terminés, lancez-vous seul dans l’un de ces projets :

  • Une calculatrice simple : pour pratiquer match, Result et la gestion des erreurs quand l’entrée est invalide.
  • Un lecteur de configuration JSON : charger des paramètres depuis un fichier avec Serde.
  • Un petit scraper web ou client d’API : récupérer une URL avec reqwest, en s’appuyant sur async/await.

Vous ne savez pas encore quel genre de programme vous voulez créer ? Les pages « Ce que vous pouvez créer » montrent où Rust excelle et quelles crates on utilise : le réseau, les bases de données, les applications graphiques de bureau, les jeux et les microcontrôleurs.

Vous préférez d’abord vous entraîner sur plus petit ? Faites les Exercices, ou testez-vous avec les Questions d’entretien.

L’écosystème de paquets de Rust (les crates, distribuées sur crates.io) couvre presque tout ce pour quoi vous voudriez une bibliothèque. En voici quelques-unes qui reviennent sans arrêt :

Pour ajouter l’une d’elles à un projet, il suffit de cargo add <nom de la crate>, sans gestionnaire de paquets à part. La page Cargo et les crates explique comment cela fonctionne et comment choisir une bonne crate.

Ce cours est allé plus loin que la plupart des tutoriels pour débutants : pointeurs intelligents, threads et canaux, async/await, Rust unsafe, appel de code C (FFI), WebAssembly, et même l’écriture de vos propres macros macro_rules!. Quelques sujets plus poussés ont leur propre page, pour le moment où vous serez prêt :

  • Les macros procédurales : la cousine plus puissante (et plus complexe) des macros macro_rules! de la page Les macros en Rust. Ce sont elles qui font fonctionner #[derive(Debug)] et compagnie en coulisses.
  • no_std / Rust embarqué : écrire du Rust sans la bibliothèque standard, pour des microcontrôleurs et d’autres environnements aux ressources limitées.

Vous n’avez besoin d’aucun de ces sujets pour écrire du Rust utile. Il est bon de savoir qu’ils existent, et de les apprendre le jour où vous tomberez sur un problème qui les demande vraiment.

  • The Rust Book (en anglais) : relisez-le maintenant que les bases sont acquises ; beaucoup de passages seront plus clairs la deuxième fois.
  • Rust by Example (en anglais) : encore plus de code commenté à lire.
  • Rustlings (en anglais) : de petits exercices à corriger, directement dans votre terminal.
  • This Week in Rust (en anglais) : une newsletter hebdomadaire pour voir ce que construit la communauté.

Vous tomberez encore sur des erreurs du compilateur qui vous laisseront perplexe, et c’est normal. Cela arrive aussi à des gens qui écrivent du Rust depuis des années, pas seulement aux débutants. Avec l’expérience, les erreurs ne disparaissent pas : vous apprenez simplement à les lire plus vite. Continuez à écrire du code, continuez à lire ce que le compilateur vous dit, et ça deviendra de plus en plus facile.

Bonne chance, et merci d’avoir tenu jusqu’ici. 🦀

Petit quiz

1. Quelle crate cette page recommande-t-elle pour lire et écrire du JSON ?

2. Quelle crate est citée pour la programmation asynchrone ?

3. Lequel de ces sujets la page cite-t-elle comme NON abordé dans le cours ?

Score : 0 / 3