Sur le code qui génère ce site / Est-il encore utile d'apprendre à coder ?

By Grégoire Lits 2024-04-16

Dans un souci de sobriété numérique, j'ai construit ce blog en reprenant le template de Ploum.net (merci à lui pour le partage !). Ce site est donc un site statique composé uniquement de pages simples écrites au langage HTML (le contenu n'est pas stocké dans une base de données et affiché sur une page web grâce à un script, le site n'utilise pas de PHP, pas de JavaScript, ce qui limite les ressources utilisées pour son affichage).

Dans un premier temps, je voulais continuer de rédiger et coder en html l'ensemble des pages "à la main". Je rédigeais les postes du blog dans un éditeur de texte markdown (Obsidian ou Zetllr en fonction de mon humeur du moment), puis je convertissais ce texte au format html grâce à un convertisseur disponible en ligne. Une fois cela réalisé, il me suffisait d'intégrer manuellement mon texte codé en html dans mon template de post de blog réalisé au préalable, puis d'ajouter dans la page d'accueil (index.html) du site et dans la page blog.html une ligne de code avec le lien vers le nouveau post.

J'aime faire cela à la main car cela me donne un sentiment de maitrise technique et de simplicité. De plus ça ne prend vraiment pas beaucoup de temps (quelques minutes tout au plus).

Par contre, le processus est un peu répétitif et très clairement, il pourrait être automatisé facilement. Autre problème, je voulais que mon site soit doté d'un flux RSS (qui est ici) et coder un flux RSS à la main est, après expérience, quelque chose d'assez fastidieux, pas sûr d'avoir envie de consacrer du temps à cela...

Apprendre à coder en python ?

Mais pour automatiser ce processus (convertir le texte en html. Intégrer le texte dans le template d'un post de blog. Modifier la page d'accueil du site et celle du blog, et surtout créer le flux RSS), il faut savoir coder dans un langage de programmation tel que Python.

Le problème, c'est que malgré le fait que j'ai inscrit "apprendre à coder en python" sur ma to-do list depuis au moins 5 ans, je n'ai jamais pris le temps de m'y mettre. Il serait bien possible de reprendre des scripts existants et de les adapter, mais même cela est au-dessus de mes capacités à ce stade.

C'est là que les IA génératives entrent en jeu. Et si je demandais à ChatGPT de réaliser ce code pour moi ?

C'est ce que j'ai fait. Je lui ai d'abord demandé de réaliser un script en python permettant de créer le fichier atom.rss de mon blog. En gros lui demandant d'aller visiter le dossier contenant l'ensemble des fichiers HTML qui composent le blog du site, de classer les pages dans l'ordre chronologique, puis d'écrire un fichier intitulé atom.xml qui reprend la liste des articles de manière lisible par un lecteur de flux RSS.

Je lui ai aussi demandé que ce scripte puisse fonctionner sur Google Collab, un service de Google qui permet d'exécuter du code en python.

À ma grande surprise, après une petite heure d'allers-retours avec ChatGPT (surtout pour résoudre un problème lié à la manière dont le script Python pouvait accéder aux fichiers de mon blog stockés sur Google Drive), j'avais un code qui fonctionnait et qui en un clic générait un fichier RSS fonctionnel (même si clairement pas parfait.)

Et si j'automatisais l'ensemble du blog ?

Vu la rapidité du processus, j'ai poussé l'expérience plus loin. Je me suis plongé dans le code source du blog de Ploum.net pour voir l'ensemble des étapes qu'il réalise et j'ai tenté de répliquer toutes ces étapes avec des scripts séparés permettant de :

Au final, il m'aura fallu à peu près quatre heures de travail pour avoir quatre scriptes en python réalisant l'ensemble de ces tâches (dont au moins deux heures pour faire trois versions du script du flux RSS pour qu'il soit de plus en plus simple).

Le workflow de ce site est maintenant le suivant :

Il reste quelques petites choses que je pourrais corriger dans le script qui crée le fichier atom.rss, mais à part cela, l'ensemble fonctionne très bien.

Quelques réflexions suite à cette expérience

Est-il donc encore utile d'apprendre à coder ?

Cet exercice me renvoie à ma to-do list. Devrais-je y garder la ligne "apprendre le python" ? De manière plus générale, cela rejoint des débats que nous avons avec quelques collègues sur une réforme des programmes du bac en communication que nous sommes en train de mener. Devrions-nous inclure dans la formation de Bac en communication et information un cours d'introduction à ce langage ??

Ma réponse est oui, cela reste intéressant, ne fut-ce que parce que la génération de code sans compréhension par l'IA nous rend complètement dépendants de l'outil, mais surtout parce que si je n'avais pas eu cette connaissance et expérience préalable en informatique (fonctionnement d'un ordinateur, qu'est ce qu'un fichier .txt, comment fonctionne un site web, comment coder en HTML, base générale de programmation, etc.) je n'aurais pas su construire des prompts efficaces.

Cela étant dit, et cela a été la surprise de l'exercice, l'utilisation d'une IA générative pour réaliser un premier projet en Python s'est révélée pour moi une très bonne aide à l'apprentissage. Parce qu'elle fonctionne de manière assez didactique, mais aussi parce que j'ai pu lui poser au fil du projet toutes les questions qui me passaient par la tête (ce qui n'est par exemple pas le cas sur les plateformes d'auto-apprentissage comme CodeAcademy).

Une dernière interrogation...

Les scripts que j'ai rédigés avec ChatGPT sont ici.

Je suis parfaitement incapable de savoir s'il s'agit de "bons" scripts ou non. Vont-ils durer dans le temps ou boguer dans deux semaines ? Aucune idée... Si des spécialistes veulent y jeter un œil, je suis preneur :-)

Quelques ressources intéressantes

Mon nom est Grégoire Lits. Je suis sociologue des médias à l'UCLouvain où je dirige l'Observatoire de recherche sur les médias et le journalisme (ORM). Je poste sur ce blog des billets au sujet des recherches que je mène et qui portent principalement sur la circulation de l'information dans la société en période de crise, mais aussi sur d'autres sujets en lien avec l'évolution et la place des médias d'information dans la société.

#code #python


Permalink:
http://gregoirelits.eu/fr/2024-04-16-Apprendre-a-coder.html