stackoverflow

Génération StackOverflow

Mon premier site, je l’ai fait en 2003 avec Microsoft Frontpage. Ca a été une découverte très progressive, en cliquant partout, en expérimentant, en essayant chacune des fonctionnalités… Peu de temps après, j’ai acheté mon premier livre d’informatique, pour apprendre à faire des sites dynamiques… Le bouquin s’appelait « PHP et MySQL ». Je l’ai lu religieusement, de A à Z, en mettant en pratique chacun des exercices du livre, puis j’ai patiemment mis en œuvre les principes appris dans le livre, avec un simple éditeur de texte et un compte gratuit chez Free, en créant un système de blog de zéro.

Depuis, je n’ai pas cessé d’apprendre, en continu, grâce à internet : j’ai lu plein de quickstarts de plein de langages et de frameworks pour me faire une première impression, et un bon paquet de not-so-quick follow-ups pour les mettre en oeuvre. Je lis quotidiennement des articles de blogs et de revues techniques, pour me tenir informé de l’état de l’art et des nouvelles tendances. J’ai pris le temps d’éplucher les sources de librairies python et d’applis JavaScript. Chaque jour est une occasion de découvrir et de me former.

Cargo cult programming

Internet a permis de mettre en relation des millions de développeurs sur la planète. Et c’est une excellente chose : quel que soit le problème, de niveau débutant à confirmé, il y a 95% de chances que vous ne soyez pas le premier, et que quelqu’un l’ait résolu. Vous aurez donc accès à de super librairies sur github ou gems ou maven ou npm, et des réponses très pertinentes sur StackOverflow. C’est magique. Un peu trop, même.

Tellement magique qu’assez rapidement, Stack Overflow devient le fournisseur officiel de solutions instantanées. 1 minute 30 au micro-ondes : réchauffez, c’est implémenté !
Oui mais non. Un développeur passé maître dans l’art du copier-coller ne comprend pas la solution, ne comprend pas comment ça s’insère (ou pas) dans un tout cohérent, ne lit pas les mises en gardes sur les effets que peuvent avoir cette solution, et surtout, n’apprend rien. Au mieux, il apprend à chercher sur S.O. …

Il adhère au cargo cult programming : ce n’est plus un ingénieur, plus un scientifique, c’est un marabout qui récite des formules pour chasser le mauvais esprit, qui applique pratique la saignée pour purger les afflictions – et tant pis si on perd un ou deux patients en route.

Génération StackOverflow

Le vrai travail d’ingénierie commence quand on essaye de comprendre les causes d’un problème, et qu’on apprend quelles sont les méthodes standard pour les résoudre – et surtout, pourquoi ces méthodes fonctionnent. Brutalement copier-coller n’aide pas à comprendre le fond du problème, ni la réponse. Est-elle pertinente ? S’applique-t-elle à mon cas ? Est-elle correcte ? Pas sûr. vu la périssabilité des informations sur Internet, pas sur qu’une réponse de 2009 s’applique encore en 2016… Mais pour le savoir, il faut avoir un oeil critique et se faire sa propre opinion ; et donc il faut avant tout comprendre le message.

En fait, tout en revient à une question d’apprentissage. Manger des réponses sur StackOverflow sans réfléchir, ou utiliser une librairie sans jamais s’intéresser au pourquoi du comment, c’est comme faire une nuit blanche avant un examen, il n’en restera pas grand chose après un mois ou deux… La lecture va de pair avec l’envie d’apprendre. Et même si la leçon ne profite pas immédiatement, si ce que je lis est trop complexe et que je ne saisis pas tout, c’est en général un excellent investissement pour l’avenir : au gré des expériences et des futures lectures, je finirai par mettre en perspective ce que je n’ai pas compris ou j’y reviendrai, et la connaissance se structurera bien plus rapidement qu’en terrain vierge.

Et je ne suis pas le seul à le dire.

Une question de style

Pour finir, un petit exemple de ce que vous pouvez être, avec et sans apprentissage. Soit vous êtes le type qui dit « ah oui ça me dit un truc ce problème… » Excellent ! et ça a été résolu comment ? « Euh chaipas ».

Soit vous plutôt du genre « ah oui j’ai eu ce problème, sa cause c’était ça et ça – j’ai implémenté un fix de telle manière » et autre « ben fais voir, ça ressemble à tel mécanisme qui merdouille quelque part… »

Le choix vous appartient !

Daniel Garnier-Moiroux
Les derniers articles par Daniel Garnier-Moiroux (tout voir)

Une réflexion sur « Génération StackOverflow »

Laisser un commentaire