Chemins d’apprentissage vers Rust
Il y a plusieurs manières d’apprendre et de maîtriser Rust, et une myriades de parcours possibles en fonction de qui nous sommes et de nos parcours de vie.
Par exemple, nous pouvons apprendre Rust
- en lisant des livres,
- en écoutant des conférences,
- en assistant à des interventions ;
- en codant du code neuf,
- en comparant à d’autres langages,
- en réécrivant du code depuis d’autres langages,
- en nous imprégnant,
- en dupliquant,
- etc.
Aucune n’est meilleure ou plus mauvaise a priori.
Par contre, nous pouvons
- être exposé·e·s à de mauvais supports (les supports qui implémentent de réelles approches pédagogique et didactique qualitatives et progressives sont rarissimes, voire inexistants) ;
- mal vivre ou ne pas réussir à nous adapter à l’un ou l’autre des interlocuteurs et des outils à notre disposition ;
- apprendre de travers en nous laissant influencer par des pratiques inappropriées ou insuffisamment réfléchies et mûries (comme, par exemple, ces gens qui n’ont pas la rigueur d’esprit de distinguer des nombres entiers naturels et relatifs, voire ne savent pas ce que c’est, à l’image de l’exemple que nous avons vu avec notre fonction de calcul du périmètre d’un carré)
- etc.
Je vais tenter ici d’explorer quelques possibilités qui s’offrent à nous et de vous proposer des parcours et approches qui reposent sur un principe simple et, selon moi, essentiel : transmettre progressivement des savoir-être (attitude, posture et état d’esprit) et des savoir-faire (réflexion et action) en travaillant sur des cas pratiques.
Nous veillerons le plus possible à proposer une progression structurée sans faire des bonds de géant qui polluent la transmission et déroutent les apprenant·e·s.
Nous utiliserons ici
- des processus de transmission de savoirs et de savoir-faire ainsi que des
- des processus d’amélioration continue que j’affectionne
si et seulement si les uns et les autres sont là pour servir un objectif pédagogique et didactique.
Tout ceci est extrêmement complexe et difficile à réaliser sur un support comme un livre ou un site web statique.
Qui a dit que tout devrait être facile, dans la vie ?
Il y a une chose dont je suis sûr, c’est que Rust n’est ni
- « un langage parmi d’autres » ni
- « un langage comme les autres » ni
- « un langage différent des autres ».
La meilleure manière d’apprendre à maîtriser Rust est de le faire en nous focalisant sur lui et sur lui seul.
Bref, en sachant que nous ne savons rien.
Bien sûr, nous savons des choses essentielles et qui sont gravées dans le marbre de la manière dont les machines fonctionnent. Cela peut nous servir à mieux comprendre Rust et à mieux nous en servir.
Restons toutefois prudent·e·s, ouvert·e·s et à l’écoute. Pensons à l’avènement des unités de stockage et interfaces type NVMe qui ont révolutionné bien des choses dans la manière d’écrire des codes informatiques de programmes opérant de gros volumes d’entrées sorties (Input/Output = I/O) — sauf bien sûr pour ceux·celles qui n’ont toujours pas compris que le monde a changé —.
Enfin, nous conserverons un regard critique, et parfois acerbe, à l’égard de Rust comme du reste. Il faut savoir s’offusquer de la bêtise qui mène parfois à de la dette technique sinon insurmontable du moins très pénible et qui, pourtant, avec un peu plus de jugeote, aurait pu être évitée très facilement et très simplement.