Hé, puisqu’on en est à remettre en question les canons du passé, il me vient également une réflexion qui m’a plusieurs fois traversé l’esprit.
La plupart des tutos du SdZ s’intitulaient "Apprenez à programmer en [langage]". Jusqu’à présent on s’est dit que ce serait bien de "factoriser" la partie "apprendre à programmer" pour ne plus avoir à écrire que "apprendre les spécificités de [langage]".
À la réflexion, je pense que ce n’est pas vraiment une approche séduisante pour les débutants que de les renvoyer vers un tuto qui ne saurait être que théorique, comme prérequis d’un second tuto qui va leur apprendre la pratique.
Je remarque également que beaucoup de technos modernes viennent avec des "batteries inclues". Je pense notamment (pour celles que je connais) à Python (pip, black, la bibliothèque standard, setuptools, virtualenv…), à Golang (et sa commande go
qui fait le café, go init
, go get
, go test
, go bench
, go fmt
…), et même à Rust (avec cargo
: cargo install
, cargo init
, cargo fmt
, cargo build
…). Je pense que personne ne me contredirait si je disais que ces outils devraient faire partie de l’apprentissage de base du langage : pour qu’un cours serve à quelque chose, il faut non seulement connaître le langage mais aussi ses outils associés.
J’aimerais pousser ce raisonnement encore plus loin : qu’en serait-il d’un cours pour apprendre à développer avec une techno donnée plutôt qu’à simplement "programmer" avec ce langage. C’est-à-dire qu’au bout d’un moment (raisonnable, hein) dans le plan, le tuto commencerait à parler de choses qui font partie de la réalité du développement, mais qu’on n’apprend dans aucun cours.
On y parlerait donc non seulement de bonnes pratiques (ce que font presque tous les tutos), mais on en profiterait aussi pour armer le lecteur en lui montrant :
- comment on écrit des tests,
- comment on commite,
- comment on pousse son code sur un repo GitHub,
- comment on devrait documenter son code et générer sa doc,
- comment on devrait packager son projet pour que les gens puissent l’installer,
Typiquement, ça ressemble pas mal à l’approche du Rust book depuis qu’il a été complètement refait. J’ai trouvé ça hyper raffraîchissant à la lecture.
Alors clairement, c’est un surcroît de boulot (en fait ça demande de penser son tuto différemment), mais pour moi, un tuto qui prendrait le lecteur par la main et qui lui ferait faire un tour d’horizon de la réalité du développement dans telle ou telle techno (plus que seulement le langage), aurait une valeur ajoutée inestimable par rapport à la "concurrence".