De l’autre côté du miroir : de l’apprenant au professeur

Passer de l’autre côté du miroir, de l’apprenant au professeur. Se souvenir de nos débuts. Qu’est ce qui est évident et qu’est ce qui ne l’est pas ? Apprendre les bases de la programmation web mais également et surtout les bonnes pratiques pour devenir autonome dans son apprentissage. Comment transmettre son métier ? Développeuse sous Symfony au quotidien, j’ai le plaisir d’effectuer des vacations d’enseignements et voici quelques unes de mes réflexions. Apprendre aux autres est également un apprentissage de soi et apporte une autre vision de notre métier.

Le parcours classique de l’étudiant est le suivant, des cours suivis de TD et/ou TP pour terminer par une note. Le cours magistral n’est pas ce qui est le plus évident pour moi. Quoi de plus ennuyeux que de lister des balises HTML et des propriétés CSS ? Comment rendre l’exposé interactif ?

J’essaie de trouver des petits exercices comme établir un tableau qui possède plusieurs lignes et colonnes imbriquées. Entrecouper l’exposé par des exercices de réflexion permet aux élèves de se reconcentrer et débloque bien souvent des questions. Il m’arrive également de leur demander un site web qu’ils consultent régulièrement afin de le décomposer avec eux. Cela permet de fixer leur attention.

Si le cours peut se dérouler en salle machine alors cela devient plus intéressant puisqu’il leur est alors possible de tester au fur et à mesure ce que je suis entrain d’exposer. Concernant l’apprentissage du CSS, les petits jeux tels que Flexbox Froggy, CSS Diner ou Grid Garden, sont vraiment une aide précieuse. Cela permet d’aborder des concepts important dans la bonne humeur. Rare sont ceux qui ne s’y intéressent pas ! Je présente également le site CSS Zen Garden afin de leur montrer l’indépendance du HTML par rapport au CSS. Le site permet de soumettre son propre CSS et cela peut être un beau challenge pour les étudiants de proposer le leur !

Une question dont je n’ai pas encore véritablement de réponse est cours au tableau, à l’ancienne, ou via une présentation ? L’avantage que je vois au tableau est que le temps d’écrire laisse également le temps aux étudiants de recopier. J’avoue aller un peu vite lorsque je présente à l’aide de slides. La combinaison des deux est une bonne approche. Le tableau permettant de décrire quelques concepts obscures ! Il m’arrive également d’effectuer des démonstrations mais je ne suis pas très convaincue. Je ne les sens pas très attentif. J’avoue également ne pas toujours accrocher lors des démos en conférences. L’exercice de prendre le temps d’expliquer ce qui me paraît évident est assez particulier. Quels sont les bons mots pour ne perdre personne ? Je pense que cela est un travail sur le long terme. Dans tous les cas, on est obligé de rechercher les bonnes ressources qui permettront d’accrocher les élèves et de les intéresser. Je profite également du cours pour leur présenter les flux RSS, que bien souvent ils ne connaissent pas. Je les invite ainsi à commencer une veille techno et je leur partage quelques bons liens. Le cours est donc un savant mélange de patience, de compréhension et d’explications.

Ceci fait passons à la pratique. C’est là que tout devient plus intéressant. Les TP sont plus enrichissants, chaque élève est différent dans son apprentissage et il faut savoir s’adapter.

Il y a celui qui pose trop de questions sans trop de réflexions. Il faut alors le guider dans une démarche d’auto-apprentissage. Où chercher les bonnes informations ? Comment comprendre d’où vient un problème ?

Il y a celui qui ne pose aucune question, qui s’installe là où il est difficile de l’observer. Pour lui, il faut savoir l’aider sans le brusquer. Je passe de temps en temps vers chacun afin qu’ils posent leur question s’ils n’ont pas osé m’appeler. Je donne alors quelques conseils afin qu’ils puissent bénéficier de mon expertise.

Il y a aussi l’élève de très bonne volonté mais qui n’y arrive pas. C’est là que l’on s’aperçoit vraiment que l’on est fait ou pas pour un métier. Ça ne s’explique pas ! Il faut les encourager pour qu’ils n’abandonnent pas.

Il y a aussi celui qui survole et qu’il faut challenger. Ici on est poussé à aller plus loin.

Bien qu’ils aient déjà codé, la plupart du temps mes étudiants n’ont pas encore d’éditeur de code favori. J’utilise pour ma part GNU/Emacs au quotidien qu’ils découvrent lors de mes démos de cours. Cela peut paraître un peu rustique pour certains mais j’en ai converti quelque uns, et c’est toujours un petit plaisir personnel :-) Mais je leur présente également quelque chose de moins brutal tel que Atom. De mon point de vue, la complétion automatique (cela existe aussi sur GNU/Emacs ;-)) est un frein à l’apprentissage. Le fait de ne pas avoir à chercher par soi-même n’aide pas à la mémorisation. Même si chacun est différent !

En plus d’apprendre un langage, ils doivent également apprendre à acquérir une certaine rigueur. Et là encore chacun à ses propres capacités. Pour certains, cela n’est vraiment pas inné ! Et que je te mets un espace avant le signe égal mais pas après, ou l’inverse. Cela part dans tout les sens. Mais surtout cela ne les choque absolument pas, alors que pour moi cela fait vraiment mal aux yeux ! Ils n’ont pas encore de recul. C’est bête, mais si cela peut paraître être un détail je pense au contraire que cela est révélateur du développeur qu’on sera, ou ne sera pas ! Même en insistant sur l’importance de la beauté du code, en expliquant son importance au sein d’un projet cela ne dépend au final que de celui qui est devant le clavier. Et au bout d’un moment je ne peux rien faire ! C’est là également que l’on se rend compte du chemin que l’on a parcouru et que ce que l’on fait n’est pas si évident que cela ! On l’oublie parfois un peu avec les années.

Concernant l’apprentissage de CSS, faut-il enseigner les positions relatives et absolues ou se concentrer sur Flexbox et Grid layout ? Personnellement je préfère la deuxième solution. Mes cours ne s’inscrivent pas dans un cursus pour pur développeur web. Flexbox et Grid facilitent tellement le positionnement que je préfère qu’ils s’amusent avec ces concepts et qu’ils les appréhendent correctement plutôt que de galérer sans. L’un des problèmes est que souvent ils recherchent des solutions sur le net, et qu’ils trouvent tout et n’importe quoi. Notamment des codes obsolètes ou pas du tout conventionnels. Aussi j’insiste pour qu’ils utilisent les documentations telles que MDN ou encore le site officiel de PHP. J’essaie de les rendre autonome, qu’ils oublient le réflexe de la recherche facile pour se plonger dans la documentation. De leur montrer qu’il ne faut pas être réfractaire aux documentations en anglais. Chose qu’il est parfois bon de se rappeler à soi-même ! Une idée intéressante pourrait être de donner comme exercice de résoudre un problème avec des recherches sur le net classique puis en les guidant vers les bons sites. Cela pourrait être vraiment instructif ! Donner un problème et les laisser se débrouiller est compliqué pour certains. Il peut être préférable de faire des pas à pas afin qu’ils comprennent bien les concepts important.

Je rencontre souvent les mêmes problématiques. Le concept de balise et de signification de celles-ci n’est pas toujours chose aisée. De même que le CSS dans un fichier séparé alors que l’on trouve tant d’exemples contraires. Comment expliquer ce qui est important dans un gros projet quand il ne développe que sur un petit projet ? Tel que l’organisation des fichiers par exemple. Pourtant je pense que les bonnes pratiques doivent être appliquées dès le début. Il faut également leur expliquer ce qu’est le cache d’un navigateur. Étonnamment les enfants du web ne le connaissent pas beaucoup. Leur expliquer les outils de débogage et surtout qu’ils adoptent les bons réflexes. Tout ceci, ce qui est pour moi le plus important, sera difficile à évaluer. Car oui, on arrive alors au temps de la notation.

Projet, TP noté ou examen sur table ? Le résultat sera-t-il à la hauteur des observations de TP ? Ayant testé les trois je ne crois pas à une idéal. Dans un projet il est difficile de vraiment apprécier l’implication de l’élève. L’examen papier est déstabilisant, ils n’ont pas eu assez de temps pour correctement assimiler et pouvoir être à l’aise sans PC. Il serait intéressant de pouvoir évaluer chaque élève en établissant une notation qui prend en compte le point de départ de l’étudiant et son évolution via un bilan final.

Apprendre son métier est une expérience enrichissante pas si évidente. Il faut se mettre à la place du débutant, réussir à expliquer des concepts qui nous sont acquis et même évidents. Ne pas être ennuyeux, être inventif, savoir s’adapter aux capacités de chacun. Aussi cela nous force justement à revoir les concepts de bases afin de pouvoir les expliquer. À se tenir au plus à jour afin de pouvoir répondre aux questions mais surtout pour aborder les nouveaux concepts qui seront bientôt la norme. Le fait de pratiquer le métier est un avantage pour faire comprendre la réalité du métier, du moins sa réalité ! Savoir se remettre en question et modifier ces méthodes d’apprentissage. Revenir au point de départ et voir le chemin parcouru ne fait jamais de mal. Bien au contraire.