Gabriel Nelle vit dans le sud de l'Allemagne, près de Baden-Baden. Il partage son appartement avec sa compagne et deux chats. Il a étudié à l'université de Siegen pour devenir professeur de mathématiques et d'allemand, et il a terminé en 2008.
Jonathan : Bonjour à toutes et à tous. Je m'appelle Jonathan. C'est un plaisir d'être votre hôte ce soir. J'ai un invité que je suis très honoré de recevoir dans l'émission d'aujourd'hui. J'aimerais vous présenter Gabriel Nelle. Gabriel est l'un de nos principaux contributeurs chez Exercism. Il s'est beaucoup impliqué dans le parcours Go en particulier, mais je le laisserai se présenter plus en détail dans un instant. Mais je voulais juste dire, Gabriel, que c'est un plaisir de t'avoir parmi nous. Merci d'être venu, et nous espérons que tu t'amuseras autant que tous les auditeurs de l'émission d'aujourd'hui. Alors, Gabriel, à toi de jouer. Parle-moi un peu de tes origines et de comment tu es arrivé là où tu es aujourd'hui.
Gabriel : Ouais. Salut. Je suis Gabriel. Merci de m'avoir invité. Alors, je viens du sud de l'Allemagne, c'est là que j'ai grandi, et c'est là que je vis maintenant, pas au même endroit, mais toujours dans le sud de l'Allemagne. Ouais, j'ai grandi... alors, commençons par le début : je suis un enfant du début des années 80, je suis né en 81. Et je pense que mon histoire commence vers la fin des années 80, quand mon père a ramené son premier ordinateur à la maison. Je pense que c'est là que l'histoire commence. En tout cas, l'histoire côté tech.
Jonathan : Ouais.
Gabriel : Il y avait MS-DOS dessus, je ne suis pas sûr de la version exacte. Je crois que c'était une version assez ancienne, aussi parce que, si je me souviens bien, mon père l'a ramené parce que l'entreprise s'en débarrassait : ils avaient reçu de nouveaux ordinateurs, donc il a pu en rapporter un à la maison, et voilà, ça a été ma première rencontre avec l'informatique. MS-DOS. C'est intéressant et étrange.
Jonathan : les, les lignes, les lignes colorées sur l'écran noir ? C'était plutôt sympa ?
Gabriel : Ouais, c'était juste du blanc sur noir. Ouais, en gros. Et en fait, la plupart du temps, c'était juste la ligne de commande, que j'ai découverte en premier. Et puis plus tard, avec mon père, en 90, vers 1991, mon père nous a appris nos premières boucles for en QBasic. J'avais 10 ans à peu près à l'époque. Et il y avait aussi l'apprentissage du vocabulaire. Mon père avait acheté un programme pour apprendre le vocabulaire, et il était basé sur... peu importe, je crois qu'il fallait une souris pour cliquer, mais je n'en suis pas sûr à 100 %. C'était peut-être plus tard. Bref, c'était vraiment l'époque où j'ai commencé à faire de l'informatique, et je l'ai cassé quelques fois. Mon père a dû le réparer quelques fois. Donc j'étais vraiment intéressé par tout ça. Pas vraiment de la façon dont je me serais assis pour me dire : « il faut que j'apprenne ça ». Ce qui m'intéressait vraiment, c'était de comprendre ce qu'on pouvait faire avec, ça me fascinait.
Jonathan : Et, et ton père, il travaillait spécifiquement dans l'informatique, ou est-ce qu'il travaillait juste dans l'entreprise et il se trouve qu'il a ramené un ordinateur à la maison ? Ou y avait-il une raison précise à cela ? Des raisons informatiques ou techniques.
Gabriel : Ouais, en fait, il est électricien de métier, c'est ce qu'il a appris. Mais à l'époque, il travaillait chez Bosch, au département électronique, où on développait de nouvelles puces ou de nouveaux composants pour les voitures. Et là, bien sûr, il y avait des ordinateurs, et il a été assez vite responsable de tout ce qui tournait autour des ordinateurs, des imprimantes réseau et de ce genre de choses. C'est comme ça qu'il est entré dans le milieu. C'était en gros la personne qui s'occupait de tout pour que ça fonctionne là-bas. Et comme il n'avait pas de doctorat, contrairement à la plupart des autres de son département, il s'occupait de ce genre de choses, et il a beaucoup appris sur tout ça, sur les ordinateurs. Ouais.
Jonathan : Ouais. OK, super. Désolé, je t'ai coupé, je me suis un peu emballé. Donc tu disais que tu bricolais, que tu l'avais cassé quelques fois, et que c'était ça tes débuts avec les ordinateurs, le matériel et tout ce genre de choses. Et ensuite ? Que s'est-il passé à partir de là ? Quelle a été la progression ?
Gabriel : Alors, je pense que l'étape suivante, ça a été quand j'ai eu mon propre ordinateur, je dirais peut-être cinq ou six ans plus tard, quand j'étais jeune, pas encore adulte. Et je m'intéressais de plus en plus aux ordinateurs, et j'en faisais aussi un peu à l'école. J'ai commencé à écrire mes devoirs sur ordinateur et tout ce genre de choses. Et c'était déjà l'époque de Word, de MS Word et de ces années-là. Et je dirais que ça a commencé un jour : mon ordi... mon père faisait toujours du travail sur la littérature pour notre église. On a grandi dans une très petite église et on avait cette littérature qu'on utilisait, et mon père numérisait, ou aidait à numériser cette littérature. Au début, c'était un projet annexe, et ça a fini par devenir mon premier emploi à plein temps, à travailler pour... pour le... attends, tu peux regarder ça ? À travailler pour l'éditeur aux États-Unis qui était responsable de cette littérature.
Jonathan : Mm.
Gabriel : En gros, mon père m'a demandé : « Ouais, j'ai toutes ces macros. Je les ai écrites dans une sorte de script basé sur une version de Word, si tu veux, d'avant Word, et je veux passer à Word maintenant, et j'ai besoin de toutes mes macros sur Word. » Et j'ai dit en gros : « OK. OK. » Et c'est comme ça que j'ai commencé à programmer dans Word. Donc Visual Basic for Applications : on pouvait d'abord enregistrer les macros. On pouvait regarder le code, voir ce qu'il faisait, l'améliorer, et en gros améliorer tellement la macro qu'elles pouvaient faire le travail de base. Avant, ça ressemblait à : tu places le curseur ici, tu appuies sur une touche, et ça fait quelque chose sur les quelques lignes suivantes. Et à la fin, ça traitait tout le document Word de haut en bas, entièrement automatisé. Et en gros, ça a été le point de départ de beaucoup de macros que j'ai écrites pour cette cause... pour cette œuvre. Ça a fait pas mal de bruit, et la personne, les gens qui avaient confié ce genre de tâche à mon père pour qu'il la fasse sur son temps libre, ont dit : « Waouh, c'est génial. Faisons-en plus et automatisons ça de plus en plus. » Ouais. Voilà comment je suis entré dans...
Jonathan : lui... tu as fait gagner beaucoup de temps à ton père.
Gabriel : Ouais.
Jonathan : dans ce sens-là, à un jeune âge,
Gabriel : On peut le dire. Donc l'écriture de macros dans Word, puis plus tard dans Excel : j'ai écrit un système basé sur Excel pour... comment dire... un système de caisse pour un petit magasin. C'était un petit magasin de produits bio, et en gros ils notaient tous les prix puis les calculaient de tête ou sur papier. C'est comme ça que ça marchait au début. Et j'ai écrit un système pour ça, avec lecture de codes-barres et une balance où tu pouvais poser... peser quelque chose, et tu obtenais le ticket, puis tu le scannais quand tu allais payer, et tout ce genre de choses. Donc en gros, tout tournait autour d'Excel, c'était basé sur Excel. Voilà. Après, je ferais vraiment les choses différemment aujourd'hui. Excel servait à la fois de base de données et d'imprimante. Je mettais tout en forme dans Excel, dans une feuille Excel, et ça s'imprimait sur l'imprimante à tickets, ce genre de choses. Bien sûr. Ouais, je considérais que c'était le début de ma carrière, pour ainsi dire.
Jonathan : Tu avais quel âge quand tu, quand tu faisais tout ça, et, et, et qu'est-ce qui t'a mené de là à... ? C'était avant l'université, genre pendant le lycée, et est-ce que ça a orienté ton parcours professionnel, pour ainsi dire ? De façon assez significative.
Gabriel : Ouais, tout ça, c'était avant l'université. Le système pour le magasin, c'était vers mes 20, 21 ans, à l'époque où je faisais mon service civil.
Jonathan : Hein ?
Gabriel : L'écriture de macros, c'était vers mes 16 ans. Entre les deux, j'ai aussi écrit un système basé sur Access pour imprimer des étiquettes pour les courriers, pour pouvoir les envoyer. Donc des adresses, etc. Et puis sont venues les études, et surprise : je n'ai pas étudié l'informatique.
Jonathan : Okay.
Gabriel : J'ai en fait étudié pour devenir professeur de mathématiques et d'allemand, pour les âges... laisse-moi calculer. De 10 à 19, 20 ans. Donc voilà les âges. Donc de la 5e
Jonathan : donc tu
Gabriel : à la 13e année.
Jonathan : ton parcours professionnel commençait à prendre forme, et, et c'était quoi, sur quoi était basée cette décision, en quelque sorte,
Gabriel : En fait, j'aurais probablement pris la voie de la programmation. Mais pendant mon service civil, j'ai appris bien plus que des choses techniques, je dirais. J'étais responsable, ou plutôt je faisais partie d'une petite équipe qui s'occupait d'une maison de retraite. Il y avait genre 5, 5, 6 chambres. Et il y avait différentes personnes, et je m'occupais surtout d'une d'entre elles. Elle avait peut-être 55, 60 ans et elle avait Alzheimer. Ça m'a fait une grosse impression, parce que quand tu es confronté à ça à cet âge-là... on pourrait dire : ouais, elle avait 60 ans et ça semblait vieux pour un jeune de 20 ans, mais il était clair pour moi que ça pouvait arriver à n'importe qui, et que ça pouvait aussi m'arriver. Et ça m'a rendu beaucoup plus intéressé par les aspects sociaux de la vie et
Jonathan : Fascinant.
Gabriel : ...les parcours professionnels dans le social. Et c'est là qu'en fait... c'est en gros la raison pour laquelle j'ai choisi d'être enseignant à l'époque. Je voulais coder, j'étais très bon pour enseigner, ou pour aider mes camarades, surtout à l'école. Et les mathématiques. Les mathématiques, c'était mon domaine le plus fort et ça m'a toujours plu. Ouais, j'ai toujours aimé aider les autres. Les aider à progresser, ou j'ai toujours adoré le moment où ils comprenaient soudain. Quand je voyais dans leurs yeux : ah, là ils ont compris. Ouais. Et donc je suis, je suis effectivement devenu enseignant.
Jonathan : Oh, c'est cool. Et dis-moi, tu as mentionné ce truc, genre le service... ton service civil, pour ainsi dire. En Allemagne, c'est obligatoire, tous les étudiants ou tous les jeunes doivent le faire avant d'aller à l'université ? Comment, comment ça s'inscrit dans la culture allemande ?
Gabriel : À l'époque, c'était une alternative à l'armée. Soit tu faisais neuf mois de service militaire, soit onze mois de service civil. C'était l'obligation.
Jonathan : Okay.
Gabriel : Pour les hommes, pas pour les femmes.
Jonathan : C'est encore le cas, en Allemagne ?
Gabriel : Non, ce n'est plus le cas. Non. Non.
Jonathan : Okay. Je sais que c'est le cas en Suisse, d'où ma femme est originaire. Donc c'était juste... ce système est encore en place. Okay. Alors maintenant, tu as fait des maths et tu as étudié pour devenir enseignant, et de toute évidence la programmation a joué un rôle assez important dans ta vie. Quand est-ce que... tu as eu un moment où tu te dis : en fait, je suis dans l'enseignement, ça me plaît, mais ce n'est pas... il y a toujours cette partie programmation qui est active et bien présente. Comment, comment ces deux choses s'équilibraient, l'enseignement et la programmation ?
Gabriel : Comment suis-je revenu à la programmation ? Ouais.
Jonathan : Ouais
Gabriel : oui. Donc pendant mes études, il y avait en gros deux choses que je faisais comme jobs à côté. La première, c'était l'enseignement. Je donnais des cours dans une agence de soutien scolaire. Je donnais des cours à l'université, aux plus jeunes étudiants, donc en mathématiques, surtout en première et deuxième année. Et en même temps, je travaillais dans une entreprise de tech. Ils... c'était surtout basé sur Access.
Jonathan : mm.
Gabriel : C'était une entreprise qui faisait du matériel et des logiciels pour l'autopartage et pour des entreprises qui avaient beaucoup de voitures qu'elles louaient à leurs employés. Et voilà, là-bas j'ai d'abord commencé comme rédacteur de documentation, puis ils ont découvert que je savais aussi programmer. Je suis donc rapidement passé au domaine de la programmation. Ouais. Et ensuite, je dirais que les choses ont surtout changé pendant les dernières parties des... les stages qu'il fallait faire pendant les études : tu devais passer six semaines dans une école, puis une fois quatre semaines, etc. Et je pense que c'est devenu clair pour moi, aussi en parlant à des enseignants très expérimentés et très, très dévoués, vraiment dévoués, que les temps avaient beaucoup changé. Les élèves avaient beaucoup changé. Une enseignante m'a dit... elle enseignait toujours en 5e et 6e année, et elle me disait qu'il y a cinq ans, elle avait un élève dans sa classe qui était un enfant à problèmes, au sens où la famille n'était pas complète, il y avait un divorce ou des problèmes à la maison, etc. Et maintenant, elle en a plus de 50 %,
Jonathan : Bien sûr.
Gabriel : Et ça, c'était il y a 10 ou 15 ans. 2006 ou 2007, ça devait être ça, donc il y a 15 ans. Et ça montrait à quel point les choses avaient changé. Et il était aussi très clair pour moi que beaucoup d'élèves aujourd'hui ne veulent tout simplement plus apprendre. Et l'enseignant est toujours... en gros, l'enseignant est toujours le dernier de la chaîne. Le dernier de tout, quoi. Ouais. Les parents, le directeur et les élèves. En gros, ils sont tous au-dessus de l'enseignant. Ouais. L'enseignant est toujours, on pourrait dire la dernière roue du carrosse, ou je ne sais pas comment on dirait ça en anglais. C'est toujours lui qui doit assumer toute la responsabilité, mais qui n'a en gros aucun droit.
Jonathan : l'autorité de... ouais. D'agir. Ouais.
Gabriel : Ouais.
Jonathan : Donc ta décision... Bon, désolé, je t'interromps. Continue, continue.
Gabriel : Ce genre de choses, en tout cas ça m'a beaucoup fait réfléchir. Et après avoir terminé l'université, je suis tout simplement retombé dans la programmation, parce qu'un ami à moi, celui qui avait confié ce travail de littérature à mon père, m'a demandé si je pouvais l'aider sur un projet. Et ce projet, qui devait au départ durer quatre ou six semaines, s'est transformé en deux ans et demi, ou trois ans et demi. Ou trois ans et demi. Un projet de trois ans et demi.
Jonathan : ...de dérive du périmètre. La dérive du périmètre était bien réelle.
Gabriel : Ouais. Au début, il m'a demandé de l'aider sur quelque chose. Et puis il était toujours en contact avec une personne de cet éditeur aux États-Unis. Et l'éditeur disait toujours : je veux un site public pour ça, avec la littérature. Je veux que les gens puissent lire les livres entiers en ligne.
Jonathan : Oh, waouh.
Gabriel : À un moment, j'ai juste dit à mon ami... il était au téléphone avec lui, et il a dit que je pourrais imaginer faire ça. Je n'ai pas vraiment de choses à faire en ce moment. Et il a dit : « Oh, Gabriel s'en occupe. » Et c'est comme ça que ça a commencé. Donc
Jonathan : Waouh.
Gabriel : J'avais un projet, ouais, et j'ai travaillé trois ans et demi sur ce projet. Mettre en ligne des milliers de livres, toute la bibliothèque de contenus
Jonathan : Waouh.
Gabriel : l'index. Les différents langages sont reliés entre eux. Ouais, le site est toujours en ligne. C'est egwwritings.org. Donc si ça intéresse quelqu'un d'y jeter un œil, il a un nouveau design. J'ai vu, vers décembre l'année dernière, qu'ils avaient changé le design, mais le code en dessous est...
Jonathan : Toujours le même.
Gabriel : En grande partie le mien, parce que je peux le voir, parce que c'était surtout basé sur JavaScript.
Jonathan : Ouais.
Gabriel : Le code y ressemble beaucoup, il est organisé différemment, les fichiers et tout ça, mais tous les différents styles sont encore les mêmes.
Jonathan : Il faudra que tu m'envoies le lien et on le publiera dans les notes de l'émission, au bon moment. Mais donc maintenant, tu as fait trois ans et demi, quoi, trois ans sur ce projet. Tu as mis... tu as indexé tout ce truc. À ce moment-là, tu utilisais JavaScript comme langage principal ? C'était quoi ton... ton environnement technique, en quelque sorte ? Tu pourrais dire sur quoi tu te concentrais ?
Gabriel : Donc ça a été en gros le grand pas : quitter les logiciels basés sur Windows, c'est-à-dire Visual Basic et Visual Basic .NET d'avant. Et là, c'était uniquement du jQuery, du JavaScript et du PHP en arrière-plan.
Jonathan : Okay.
Gabriel : On avait aussi un accord : quand je faisais de la recherche, j'avais un tarif horaire plus bas,
Jonathan : Mm-hmm.
Gabriel : c'était un tiers de ce que je touchais quand je programmais vraiment. Et voilà, ça me donnait la liberté d'apprendre en gros sur le tas. Ouais.
Jonathan : Cool. Et ensuite, où, où... Exercism. Et maintenant tu fais beaucoup de choses. Si je comprends bien, Go est en quelque sorte une composante principale de ce que tu fais. Tu fais beaucoup de mentorat et tu t'es impliqué dans Exercism, sur Go, et tu aides de ce côté-là. Quand est-ce que c'est entré en jeu, et pourquoi ça t'a intéressé ? Vas-y.
Gabriel : Ouais, en 2016, c'était mon premier emploi après ce grand projet. En fait, vers la fin de celui-ci, j'ai commencé à passer à Go. Dans ce boulot, je faisais surtout du PHP et du Python. Et il est très vite devenu mon langage préféré, parce qu'il a cette simplicité. Il essaie en gros de... Face à ce monde fou de toujours plus de fonctionnalités, de langages qu'on rend de plus en plus complexes et compliqués, avec beaucoup plus de charge pour le développeur, parce qu'il doit choisir comment faire, et qu'il doit aussi comprendre toutes les autres façons de faire des autres. Toute cette charge, et Go a soudain apporté ce calme et cette envie de simplifier à nouveau. Et c'est très vite devenu mon truc numéro un, ce qui m'a amené à construire un prototype dans cette entreprise, genre six mois avant de partir. Parce qu'ils voulaient passer à Go. Et au début, bien sûr, il y a ces premiers moments où tu trébuches sur des choses que tu ne peux pas faire dans le langage, et ensuite tu comprends pourquoi ça n'a pas de sens de faire comme ça, ou pourquoi c'est mieux de faire autrement. J'étais vraiment intéressé par l'apprentissage de ces choses. Et c'est comme ça que j'ai commencé à écouter le podcast Go Time. C'est de Changelog.
Jonathan : Okay.
Gabriel : Et Katrina Owen était dans ce podcast, je crois, deux fois. Au moins deux fois, je l'ai entendue, je pense. Ouais. Et c'est comme ça que j'ai commencé à m'y intéresser. Je crois que je me suis inscrit sur Exercism en 2017. Je suis sûr à... il faudrait que je vérifie.
Jonathan : J'imagine. Ce serait plausible ?
Gabriel : Ouais, je crois que c'était même encore la version un, parce qu'au début il n'y avait pas... je n'ai pas vraiment... je n'ai reçu aucun retour. J'ai fait quelques exercices, mais je n'ai jamais reçu de retour. Par contre, je pouvais donner des retours aux autres, et je l'ai fait. Mais je n'en ai jamais reçu. Donc il n'y avait aucun processus en place pour vraiment obtenir des retours. C'était : si tu veux, tu le fais, et sinon, tu laisses tomber. Pour ainsi dire. Ouais. Je crois que c'était la version un, non ?
Jonathan : J'imagine, oui. Je veux dire, je pense qu'il y a eu pas mal de changements entre la version un et la version trois.
Gabriel : Ouais. Ouais.
Jonathan : La version un, c'était peu de retours. La version deux demandait énormément de retours, et puis la version trois s'est en quelque sorte placée quelque part... au milieu, un peu peut-être du côté le plus léger, mais bon. Et, et est-ce que tu... est-ce que tu as participé à la construction de la version trois, et comment as-tu, comment as-tu... Ouais. Quel a été ton rôle là-dedans ? Je veux dire, ce n'est pas très clair pour moi, mais j'aimerais beaucoup comprendre.
Gabriel : Peut-être un, un pas en arrière si je peux me permettre. En gros, je suis revenu après la deuxième interview, après avoir entendu Katrina parler d'Exercism,
Jonathan : Okay.
Gabriel : C'est là que la version deux existait. Et qu'il y avait beaucoup de travail, et qu'il y avait ce... besoin de beaucoup de retours. Je m'y suis lancé, et j'aimais vraiment donner ces retours.
Jonathan : Mm-hmm.
Gabriel : En gros, j'ai commencé à réfléchir à comment rendre ça plus rapide. Ouais. Parce que j'ai vite réalisé que, surtout sur les premiers exercices, il était clair que j'allais donner la même réponse encore et encore et encore.
Jonathan : Ouais.
Gabriel : Et d'un autre côté, bien sûr, parfois... ces deux problèmes, et parfois il y avait ce problème-ci et un autre. Donc en gros, j'ai commencé à optimiser ça. J'ai commencé à écrire un petit programme Go qui utilise l'analyse statique, parce que je voulais me lancer dans l'analyse. Je ne l'avais jamais fait avant. Je voulais découvrir ça. Donc j'étais de toute façon intéressé par essayer, et ça semblait être une bonne idée. Parce que c'était quand même du code qui était très courant ou très similaire tout le temps. Les solutions d'un exercice, surtout les premiers, sont très similaires. C'est comme ça que je me suis mis à l'analyse statique : je cherchais différents motifs dans le code, puis j'ajoutais automatiquement des blocs de réponse, ou des blocs prédéfinis à la réponse. En gros, j'ai commencé ça en local, et c'est comme ça que j'arrivais à en faire environ 100 par semaine, 102 par semaine. Et je ne faisais même pas ça à plein temps. C'était à côté de mon travail. Et ouais. Et puis ça a commencé à... Pitfield, je crois, a été le premier. John Arun, je crois que c'est son vrai nom. C'est lui le premier à dire : « Waouh, c'est génial. C'est super. » Et c'est comme ça que mon travail a commencé à se faire connaître, avec l'analyse statique. Et je pense que ça a été une grande partie de la version trois. On a commencé à réfléchir à comment on pouvait en gros réduire le travail d'un tuteur grâce à ces outils, cette automatisation, cette analyse statique, ou les outils qui vérifient le code automatiquement et donnent des retours automatiquement. Même de façon totalement automatique, sans qu'un mentor soit impliqué ou doive l'être. Et parce que les mentors... il était assez clair qu'on avait des mentors et qu'ils n'étaient pas assez nombreux pour le travail. On avait l'outil de mentorat et on a aussi vu que beaucoup de mentors s'épuisaient, qu'ils disparaissaient, et ouais, c'était juste trop. Trop de charge pour beaucoup de mentors. Ouais. Le travail, c'était parfois... ils avaient 500 solutions ou plus à mentorer, et il y avait parfois des temps d'attente d'un mois ou plus. Et bien sûr, dans ces conditions, les étudiants finissaient aussi par partir à un moment donné. Ouais.
Jonathan : Hmm. C'est drôle, parce que je crois que Jeremy disait l'autre jour que sur l'ensemble, sur l'ensemble des solutions qui sont soumises, environ 75 % sont entièrement uniques, ce que je trouve fascinant aussi. Je veux dire, tu prends un exercice comme Hello World, c'est évidemment très simple. On pourrait penser que c'est un schéma standard qui revient régulièrement. Et lui il disait : non, les gens essaient toutes sortes de choses différentes. Et c'est drôle de voir ce croisement, parce qu'à mesure que le code devient plus populaire et que de plus en plus de gens se mettent à développer et à programmer, on se demande : à quel moment cette automatisation va commencer à rendre le rôle du développeur caduc ? Je, je me demande, je ne sais pas si ça arrivera. Je pense qu'il y a encore beaucoup trop de choses nécessaires, mais en termes de... je ne sais pas, je ne sais pas ce que tu en penses, mais j'ai l'impression qu'avec Exercism ces derniers temps, il y a une énorme poussée vers le mentorat, et c'est vraiment fascinant, parce que, comme tu le disais, ça prend toutes ces leçons répétitives que tu dois sans cesse redonner, et ça les met sous une forme qui est gérable pour les gens. En même temps, est-ce que ça ne finit pas par nécessiter une interaction humaine, un être humain pour vraiment... avec le contenu ? Donc je ne sais pas si tu as des idées là-dessus, mais je trouve que c'est un espace intéressant à ce stade.
Gabriel : Ouais, je ne pense pas que les développeurs seront remplacés de sitôt. Ça prendra encore pas mal de temps. Dans le développement, les applications en général, le mentorat, je pense. Je pense que l'analyse statique, ainsi que le mentorat automatisé, et le mentorat automatisé en général sur Exercism, peuvent être d'une grande aide. Mais les mentors restent nécessaires pour du vrai mentorat, je dirais. Ouais. Par exemple, j'ai quelqu'un que je mentor, on a un appel tous les deux ou trois mois, parfois plus. Et je le mentor sur sa carrière, pour ainsi dire. Ouais. Et aussi techniquement, très profondément techniquement, mais c'est une façon complètement différente de mentorer que de simplement regarder la solution et te dire ce que tu peux améliorer. Et je pense que c'est pour ça que les mentors qui existent sont encore nécessaires, et qu'ils le seront toujours, et je pense que c'est quelque chose sur lequel on peut se concentrer. D'un autre côté, je pense qu'on ne peut pas remplacer complètement les mentors sur... sur les solutions, et je ne pense pas qu'on devrait. On peut automatiser beaucoup de choses, mais un mentor reste quelqu'un qui peut indiquer la direction. Il peut voir les problèmes avec lesquels tu galères et te dire : comprends ceci et cela, pas seulement : tu dois améliorer ton code de telle manière.
Jonathan : Ouais. Ouais.
Gabriel : Et pour être honnête, j'aimerais qu'il y ait plus de mentorat sur Exercism. Donc je me demande si on devrait
Jonathan : de l'interaction en face à face, tu veux dire ?
Gabriel : Ouais. Je me demande si on devrait... Avant, on avait ce parcours de 10 exercices, au moins 10, qu'il fallait traverser, et tu ne pouvais avancer que quand ils avaient été mentorés.
Jonathan : Ouais.
Gabriel : Et je pense qu'avec l'automatisation qu'on a mise en place aujourd'hui, on pourrait en fait le réactiver. Ou peut-être pas maintenant, mais à l'avenir. Et je pense que ça me plairait.
Jonathan : On pourrait vraiment, on devrait en parler lors d'un, d'un appel communautaire, parce que je pense que ce serait cool de remettre ça, de remettre ça au centre des préoccupations. Donc Gabriel, une des questions qu'on pose souvent, et ce n'est pas celle dont je t'ai parlé plus tôt, mais... Une des questions que j'aime poser, parce qu'elle est toujours très intéressante et différente, c'est : est-ce que la programmation a fait « tilt » pour toi ? Les gens racontent souvent qu'il y a eu un moment où soudain tout a pris sens. Moi, j'utilise souvent mon histoire. Je donne un exemple de l'école, quand j'apprenais la chimie, au Royaume-Uni, où j'étais scolarisé. Tu passes ces examens à la fin. Et donc tout mène à ces examens pendant les trois années qui les précèdent. Donc tu as trois ans d'études qui culminent dans ton examen final. Et ça, dans toutes les matières. Et l'un des sujets, évidemment, c'était la chimie. Et j'ai passé environ trois ans sans avoir la moindre idée de la chimie. Je n'y arrivais pas, je ne comprenais pas. Et puis, une semaine avant l'examen, le déclic s'est fait, l'expression comme quoi la chose a soudain pris sens. Et je me suis dit : oh là là. Je peux tout tirer du tableau périodique. Si je connais les nombres du tableau périodique, je peux comprendre ceci, cela et ça. Et les choses sont devenues vraiment simples. Est-ce que tu as eu un moment comme ça pour la programmation, ou est-ce que c'était quelque chose qui... Tu as trouvé ça naturel, ça avait du sens pour toi, et c'était quand ce moment, si c'est pertinent ?
Gabriel : Je ne suis pas sûr d'avoir eu ce moment précis. Je pense que ça m'a beaucoup aidé d'avoir cet enregistreur de macros et de pouvoir regarder le code très tôt avec Visual Basic for Applications. Je ne sais pas si ça existe encore, si quelque chose comme ça existe encore aujourd'hui. Je crois que tu peux encore le faire dans Word. Mais ce n'est pas très fréquent d'avoir quelque chose comme ça, où tu peux enregistrer puis regarder le code et apprendre de cette façon. Je pense que ça m'a beaucoup facilité les choses, parce que je galérais beaucoup au début. Je pense qu'un, un genre de moment où je pourrais dire... pas que j'ai compris les choses, mais que j'ai réalisé en gros si je faisais les choses bien ou mal, c'est quand j'ai rejoint cette entreprise, quand j'étais étudiant. C'était en gros la première fois que je travaillais, que je travaillais avec d'autres développeurs. Avant ça, j'étais toujours tout seul et je devais en gros tout faire moi-même. Et c'était toujours une grande question. Est-ce qu'on fait habituellement les choses comme ça ? Ça me paraît étrange. Ça me paraît compliqué. Ça a l'air de marcher, mais est-ce que c'est correct ? J'ai... Et j'ai en quelque sorte eu la réponse quand j'ai rejoint cette entreprise et que j'ai commencé à travailler là-bas. Il y avait clairement beaucoup de choses à apprendre, et j'ai beaucoup appris. Par exemple, les record sets d'Access. Je ne les avais jamais vraiment compris avant. J'ai travaillé avec eux, mais
Jonathan : Mm.
Gabriel : ouais, ça marchait
Jonathan : Ouais. Un truc...
Gabriel : Ensuite, j'ai vraiment compris, j'ai commencé à les comprendre. C'était peut-être quelque chose où le déclic s'est fait, parce que j'avais une collègue et elle me l'a expliqué, et ça a vraiment fait tilt. Un jour, j'ai compris comment ils fonctionnent et
Jonathan : Mm-hmm.
Gabriel : comment ils sont censés fonctionner, et comment les utiliser correctement, etc. Donc ouais, c'était peut-être un de ces moments. Mais je pense que ces moments arrivent très souvent dans notre métier. Je ne pense pas qu'il y ait un seul moment, peut-être un moment initial. Mais pour Go aussi, il y a tellement d'endroits où le déclic peut se faire pour moi, où je comprends pourquoi quelque chose est comme ça et comment c'est censé s'utiliser. Et par exemple, le context. Ouais. Par exemple, le context.
Jonathan : Ouais.
Gabriel : Ouais. Le, par exemple, le context, ils ont été ajoutés dans... je ne suis pas sûr, la 1.6 ou la 1.7 peut-être. Vers cette époque. Je ne les avais pas regardés. Pour être honnête, je n'en avais pas vraiment besoin au début. Et puis il y a eu une rencontre, un meetup, et quelqu'un a présenté le context : comment on l'utilise, comment on... et ainsi de suite. Et je me suis dit
Jonathan : Hmm.
Gabriel : que je devrais y regarder de plus près. Mais il m'a encore fallu quelques mois avant de vraiment les regarder et de comprendre pourquoi ils existent. Et par exemple le channel fermé : je ne sais pas si tu es au courant, mais beaucoup de gens proposent encore sur internet de fermer une goroutine avec un channel fermé, alors qu'il ne faut pas. C'est justement à ça que sert le context. Ouais. Tu utilises un context, tu annules le context, et ensuite tu peux fermer la goroutine avec ça. Si tu utilises un channel fermé, tu fais en gros manuellement ce qu'un context fait en interne, et il y a tellement de pièges involontaires à éviter, tellement de problèmes. À tel point que, la plupart du temps, les gens le font mal.
Jonathan : Je suis sûr que tu as fait un live, tu as fait un stream et tu as mentionné quelque chose à ce sujet. Je, je crois bien me rappeler que tu avais mentionné, tu sais, d'utiliser simplement le context parce que
Gabriel : Ouais.
Jonathan : ça a beaucoup de sens.
Gabriel : Je me souviens d'avoir mentionné ce point.
Jonathan : Ouais. Mais non, alors, alors en ce qui concerne, genre, quand tu as mentoré des gens par le passé, quels sont, tu peux identifier... Des actions ou des comportements, ou des choses que font les gens qui comprennent vite ? Est-ce que tu peux dire ce qu'ils font qui leur permet en quelque sorte de se mettre dans une position pour apprendre vite ou plus efficacement ? Ou est-ce que beaucoup des mentors, ou des gens que tu as mentorés, sont simplement naturellement engagés comme ça ? Ou est-ce qu'il y a des gens dont tu te dis : waouh, ils font des choses qui leur permettent d'accélérer leur progression.
Gabriel : Je ne suis pas sûr de pouvoir le dire pour d'autres personnes. Pour moi, oui, sans hésiter. J'ai appris, je pense, de mes parents. Ils se sont appris beaucoup de choses tout seuls, et c'est ce que j'ai appris d'eux aussi : m'apprendre les choses par moi-même. J'ai donc appris la programmation. Complètement tout seul. Il y avait mon père au début. Il y avait quelques choses à l'école. La plupart du temps, dans les classes supérieures, j'étais en fait, ou plutôt nous étions, presque tous meilleurs que le professeur de toute façon. Donc il n'y avait pas vraiment d'apprentissage. C'était plutôt une sorte d'apprentissage les uns des autres. Mais
Jonathan : Ouais.
Gabriel : En général, j'ai tout appris par moi-même. Et je pense que c'est quelque chose dont tu as besoin en programmation. Parce que tu dois constamment creuser des choses que tu n'as jamais vues avant. Tu ne les connais pas, tu dois te documenter dessus. Comment dire ? Cette... Capacité. Ouais. Cette capacité à creuser quelque chose et à l'apprendre par toi-même, je pense que c'est essentiel en programmation, pour apprendre. Et bien sûr, tu peux apprendre beaucoup plus vite si tu trouves quelqu'un qui t'en parle. Donc je ne veux pas dire qu'il ne faut pas chercher un mentor, qu'il ne faut pas aller sur Exercism, etc. Ça t'aide à progresser beaucoup plus vite, mais quand même, c'est... Voilà ce que je dirais.
Jonathan : ...moi que ton apprentissage est venu en essayant concrètement de résoudre des problèmes. Que ce soit en créant des macros pour rendre les choses plus efficaces, ou... j'ai l'impression que c'était un thème central qui s'est répété dans, dans, dans ta vie en matière d'apprentissage, ce qui me semble assez aligné. En général, avec ce qu'Exercism essaie de faire aussi, en aidant les gens à faire des choses concrètement.
Gabriel : Ouais. Pour le parcourir.
Jonathan : Donc ouais. C'est vraiment cool. Alors, Gabriel, il ne nous reste pas beaucoup de temps, mais j'ai deux dernières... enfin, pas des questions pour toi. L'une est une question et je vais te demander de partager une opinion qui t'est propre, et puis l'autre sera... bon, c'est un peu une opinion aussi. Je vais te demander de faire une recommandation à la communauté, quelque chose qu'elle doit essayer cette semaine. Mais d'abord : nous avons parlé à beaucoup de nos... aux personnes que nous avons interviewées par le passé, et si tu écoutes ce podcast ou ce live depuis un moment, tu sais qu'on pose toujours une grande question vers la fin de, de, de notre live. Et la question, c'est : sur quelle colline es-tu prêt à mourir, dans la tech ? Donc quelle est l'opinion que tu défends très fermement, sur laquelle tu voudrais te tenir et... Garde en tête que tu dois donner une bonne raison. Tu ne peux pas juste dire : c'est mon opinion, point. Il faut pouvoir se défendre, dans ce sens. Mais quelle serait cette opinion, si... Et elle peut être aussi engagée, aussi intense ou aussi triviale que tu veux. Alors, quelle serait-elle ?
Gabriel : Je dirais que c'est un proverbe. Il y a un dicton dans la communauté Go, et c'est : le code ennuyeux vaut mieux que le code astucieux.
Jonathan : J'aime bien. Qu'est-ce que ça veut dire ?
Gabriel : Qu'est-ce que ça veut dire ? Ouais, en gros, ça résume une grande partie de la philosophie de Go autour de la simplicité et de la lisibilité. Donc si, dans du code Go, tu te dis : waouh, c'est astucieux, en fait c'est du mauvais code. Même si le développeur qui a fait ça était très intelligent et l'a fait de manière très astucieuse. Et parfois j'ai l'impression que si tu suis vraiment la simplicité et les idiomes de Go, tu n'as pas vraiment, dans toute ta base de code, de code que tu veux montrer du doigt ou que tu peux montrer en disant : regarde ce code, comme il est bien, parce qu'en fait tout ton code est ennuyeux et très simple, et tous ceux qui regarderont ton code diront : qu'est-ce qu'il a de spécial ? Ouais, mais justement, tu es arrivé à cette simplicité parce que tu es un bon programmeur, et c'est un processus d'itération. Et le code compliqué... écrire du code compliqué, c'est très facile. Écrire du code simple, non. Parce qu'il faut d'abord simplifier le problème dans ta tête, puis écrire le code correctement, puis l'itérer et le rendre simple. Et c'est un processus bien plus long, qui demande de bien meilleurs développeurs que simplement écrire du code compliqué, qui, quand tu le regardes, est difficile à comprendre, difficile à lire, difficile à maintenir et difficile à modifier.
Jonathan : C'est le, c'est ce truc constant des compromis, non ? Moi, je suis assez jeune dans la tech, trois ans, et je ne viens pas du développement. Je viens plutôt du côté produit. Plutôt de la perspective métier. Et si on peut dire, et l'une des choses vraiment intéressantes, c'était qu'il devenait de plus en plus évident que tout est une question de compromis. Donc tu dis : le compromis, c'est le code simple contre le code compliqué, alors que le code compliqué peut simplement être plus lourd et plus délicat à gérer par la suite. Le code simple peut prendre plus de temps et demander plus d'énergie et d'efforts au départ. Et c'est ce compromis qui est constamment fait. Donc c'était l'un des... je ne sais pas ce que tu en penses, mais il me semble que, que vraiment, ce côté simplicité... parce que je me souviens, ma mère avait un ami à l'université et il n'écrivait jamais que des dissertations de deux pages pour ses devoirs. Parce qu'il arrivait à tout condenser en deux pages, et il obtenait les meilleures notes pour ça. Donc je pense que ça, ça, ça rejoint tout le concept de, de simplicité, et je pense qu'il est vraiment difficile d'écrire du code simple, parce que ça demande une pensée claire, claire, pas juste du code. Donc je pense que c'est une, que c'est une colline qui vaut la peine, et je pense que tu as bien développé ça. Tu en as très bien parlé. Cool. Alors Gabriel, dernière question de cette semaine. Et maintenant, tu peux donner un conseil à la communauté Exercism. Et ça peut être n'importe quoi. Ça peut être un conseil de santé, un conseil alimentaire. C'est ton occasion de partager un conseil que tu donnerais à la communauté, et ça peut être tout ce que tu veux. Alors, quelle serait ta recommandation à la communauté Exercism cette semaine ? Quelle est la chose qu'ils devraient essayer ou faire, d'après ton point de vue ?
Gabriel : Oh, c'est difficile. OK, puisque tu dis que ça peut être n'importe quoi, est-ce que je peux t'en donner deux ?
Jonathan : Je te laisse, je te laisse en donner deux.
Gabriel : OK. Une, une recommandation. Alors, en fait je suis végétarien. J'ai grandi végétarien. Je n'ai jamais mangé de viande, et j'ai en fait grandi végétalien, pendant la plupart de, la plupart de mon enfance et de ma jeunesse. Donc essaie une semaine sans aucun produit laitier. Ce serait la première. Voilà. Et une autre recommandation serait que... je ne sais pas si tu peux le faire en une semaine, mais si tu es un bon développeur, tu peux. C'est très intéressant et ça vaut vraiment le coup d'essayer de construire de la mémoire partagée, partagée entre plusieurs services, ou au sein d'un même service, de la mémoire partagée. Essaie d'implémenter une mémoire partagée avec le protocole Raft. Tu peux utiliser une bibliothèque. Tu n'as pas besoin d'implémenter Raft toi-même, mais
Jonathan : Raft. Il faudra que tu me donnes, il faudra que tu m'envoies le lien pour que je puisse le mettre en dessous. Donc c'est le défi... Enfin, on devrait peut-être appeler ça le défi de Gabriel de la semaine. Peut-être pas tellement une recommandation. Il faudrait peut-être
Gabriel : Ouais. C'est plutôt quelque chose à essayer.
Jonathan : Tu envoies, tu lances un défi. Ça pourrait être, ça pourrait être très amusant. Mais cool. Donc une semaine sans aucun produit carné. Voyons ce que ça donne, et construire un serveur de mémoire partagée. Comment tu dirais ? Service, partagé
Gabriel : Ouais, tu pourrais appeler ça la base clé-valeur en mémoire
Jonathan : Okay.
Gabriel : Donc plusieurs services, une base de données, ou un seul service. Ouais.
Jonathan : Cool. C'est
Gabriel : Parce que ça t'apprend beaucoup sur le fonctionnement des bases de données. Ouais. En dessous. Surtout les modèles qui sont partagés, comme... ouais, pas sûr. Ouais. Cassandra, ou Scylla, je ne sais pas si tu connais Scylla. C'est un peu comme Cassandra, mais en C++, et ils passent maintenant au protocole Raft. Ou... C'est une base de données clé-valeur. Une base partagée, c'est... non, ce n'est pas une base de données. C'est de la gestion de données. Ouais, Badger, de Dgraph. Celle-là, je pense qu'elle utilise aussi Raft sous le capot pour distribuer les données. Je ne peux pas l'affirmer, il faudrait que je vérifie. Mais il y a beaucoup de bases de données qui l'utilisent. Le système distribué. Donc le système distribué, c'est en gros un grand défi, je dirais, de notre époque moderne. On est en train de le résoudre, mais il reste encore beaucoup de défis à surmonter, et ouais, c'est toujours bien de pouvoir penser de cette façon, parce que si tu en es capable, ça ouvre beaucoup de possibilités.
Jonathan : Hmm.
Gabriel : Si tu en as besoin. Dans ma dernière entreprise, je m'engageais justement dans cette voie, avec de la mémoire partagée entre plusieurs services en même temps. Ouais.
Jonathan : Peut-être, peut-être qu'on devrait organiser ça comme une master class. On donnera aux gens quelques semaines pour essayer. Et puis Gabriel,
Gabriel : c'est, c'est la master
Jonathan : Ouais,
Gabriel : quand tu as fini Exercism et que tu as fait tous les exercices,
Jonathan : C'est le gros morceau. Le gros morceau. Ça relie tout, ça relie tout ensemble. Gabriel, merci beaucoup pour ton temps. C'était un vrai plaisir de discuter avec toi ce soir. Si tu veux juste rester après, après qu'on ait fini l'enregistrement, juste rapidement, mais je voulais juste te dire un immense merci et vraiment apprécier tout ce que tu apportes à Exercism, et pas seulement pour nous, mais aussi tout le mentorat que tu fais plus loin, et toute l'aide que tu apportes aux gens pour écrire du meilleur code. Je suis sûr que c'est énormément apprécié partout. Donc merci pour ton temps et. Contacte Gabriel. Si tu es sur Exercism, envoie-lui un message, demande-lui du mentorat et je suis sûr que tu passeras un bon moment avec Gabriel. Cool.
Gabriel : Merci beaucoup.
Jonathan : ...finir l'enregistrement. Ouais, non, merci d'être, merci d'être venu et on te verra bientôt sur une forme de plateforme quelque part
Gabriel : Merci.
Écoute, apprends et laisse-toi inspirer par les membres de notre communauté.