# Declic

J'ai observé qu'il y a parfois des personnes qui essaient d'apprendre la programmation et qui n'y arrivent pas. J'ai longtemps pousser ça derrrière une histoire de déclic. « elles n'ont pas encore eu le declic ».

À simplon, une partie des personnes de la 2eme promo, que j'avais vu en entretien, et que j'ai suivi pendant 6 mois à temps plein, n'ont pas réussi à « comprendre » ce qu'est l'informatique, la programmation.

Durant la promo becometech que j'ai accompagné sur un semestre, pareil

Même soucis au niveau du roolie club où finalement, les personnes qui n'avaient pas le déclic soient se métaient à part dans la communauté, soient ne revenaient pas. Certaines sont aller suivre une formation « bootcamp » et sont revenu ensuite. Certaines avaient découvert quelque chose durant la formation, d'autres restaient coincé.

Je pense que certaines personnes évoque le fait que l'informatique n'est pas fait pour tout le monde à cause de ça. De ce déclic. Je pense moi qu'il y a sans doute un truc à trouver. Il n'y a pas de raison qu'une personne ne comprenne pas ce qu'une autre arrive à comprendre. C'est un signe qu'il manque une information, que cette personne à besoin d'une autre approche. Il faut présenter les choses autrement. Référence au [maître ignorant de Jacques de Rancière](https://fr.wikipedia.org/wiki/Le_Ma%C3%AEtre_ignorant) et particulièrement aux [principes pédagogique de Jacoto](https://fr.wikipedia.org/wiki/Joseph_Jacotot#Principes) <q>Toutes les intelligences sont égales ;</q>


Ce qui est dur, c'est de les voirent travailler, essayent encore et encore, et ne pas arriver à saisir ce qu'il se passe. Oh, parfois ces personnes arrivent à écrirent des bouts de code, un morceau de programme... Nous pourrions croire qu'elles ont compris ce qu'il se passe dans le programme, que maintenant c'est bon. Et en fait non. Il manque toujours quelque chose.

Montrer comment se servir d'un langage ou d'un framework sont, à mon avis, le meilleur moyen de ne pas déceller ce genre de cas. Ce qui amène parfois certaines personnes à sortir de formation en ayant l'impression que c'est ok, et dès les premières expériences sur le terrain, se font très mal. Psychologiquement, elles n'arrivent pas à se faire un trou dans le métier. Et à titre personnel, surtout dans le cas d'une reconversion, c'est dur, vraiment dur.


Et si ce déclic était une histoire d'abstraction ? Une compréhension de ce qu'il se passe quand on écrit un programme, ou plutôt quand on l'execute ? J'écris un bout de code dans un éditeur, sur un ordinateur. Ce bout de code va être lu par d'autres personnes. Ce bout de code va être executé par ma machine peut-être, par une autre aussi sans doute... Ce n'est pas très simple je crois. Disons que j'ai l'impression que c'est simple pour moi aujourd'hui, et je pense que beaucoup de personnes qui apprennent la programmation trouve ça simple aussi une fois le cap franchi.

Comment on franchi ce cap ? 

Il faudrait sans doute être bien sur de ce que c'est. Bien définir cet obstacle pour pouvoir le franchir.

Dans les boulots que j'ai fait, le rapport était très direct, les actions à faire simple, précise, claire. Étude de tourneur-fraiseur : la machine, la matière, les outils qui coupent, tu mets en action pour que ça fasse le boulot. Quand j'ai fait la plong chez Flunch, plateau cradeau, machine pour nettoyer, poubelle pour les dechets, meubles pour ranger. Dans les champs, des fruits à ramasser, dans un sceau, dans des barquettes...

Est-ce que l'informatique, la programmation, est à part ? Peut-être pas. J'imagine que ce genre d'abstraction existe dans d'autre secteur. Peut-être dans les secteur où il y a de l'exploration, de la recherche, beaucoup de relations humaines.

Je vois une différene un peu comme en math il y a des lois, des principes, posé, clair et précis, qu'on apprend à appliquer. 3 x 5 = 15. On a bon ou pas. Alors qu'en philo, on peut écrire 5 dissertation différente, avoir bon à chacune, ou mauvais à toutes... C'est un dialogue avec le ou les personnes qui corrigent.

Un programme, un logiciel, me semble suivre ce chemin. Nous pouvons très bien écrire un programme qui fera le même job de 30 façons différentes. Laquelle est la bonne ? À la fin, difficile de savoir. Elles fonctionnennt toutes. Référence à [Exercices in programming style](https://www.crcpress.com/Exercises-in-Programming-Style/Lopes/p/book/9781482227376) où Cristina évoque [Raymond Queneau](https://fr.wikipedia.org/wiki/Raymond_Queneau). Elles a écrit un programme qui fait la même chose, strictement, mais de 30 manières différentes (en python). C'est passionnant.


Peut-être faut-il explorer cette piste avec les personnes qui coince.


Quelle différence entre une personne qui, d'après ce que je crois, n'a pas encore eu le déclic dont je parle ici, et une qui l'aurais eu ? Je crois que ça s'exprime par une niveau d'autonomie plus grand. La personne qui a eu le déclic va pouvoir _manipuler_ le code plus facilement, sans peur de tout casser, sans crainte de se tromper, sans peur de l'erreur.

Les personnes qui n'ont pas le déclic se rerouve coincé à au moment de choisir s'il faut mettre en place une boucle ou une structure conditionné, s'il faut mettre en place une structure de donnée plutôt qu'une autre, si le code pourrait être ranger autrmenet, remanié pour plus de lisibilité.

Comment acquérir cette capacité à projeter ? Est-ce que les personnes qui ont eu le déclic arrivent à se faire une représentation mentale de leur programme, de leur bout de code et les autres non ? Peut-être. Je ne parle par de voir le code complet à l'avance, mais d'être en capacité de se construire une représentation de ce qu'il y a dans le code à un instant donnée, et d'avoir une idée de quoi faire pour insérer une modification du comportement du programme (supprimer une ligne, extraire une variable, ajouter une strcuture de donnée).



Est-ce qu'il y a un parallèle avec la conduite ? Est-ce qu'on peut conduire une voiture sans comprendre comment elle fonctionne ? Je crois que beaucoup de personne font ça. Est-ce que ça signifie qu'on pourrait faire programmer des personnes, leurs faire passer ce « déclic » sans pour autant aborder l'abstraction dont je parle plus haut ?

Une approche façon cuisine à code, où on se content de reproduire sans cherche à comprendre, permettrais d'arrive à ça du coup. Et peut-être que c'est ce qu'il se passe pour certaines personnes. Une forme de laché prise « j'arrête d'essayer de comprendre, je fais et c'est tout ». Et peut-être que plus tard, des choses apparaissent.




Est-ce que ce déclic est le fameux plateau que certaines personnes n'arrivent pas à franchir quand elles sont seules chez elles ?

La plupart des personnes qui apprenent la programmation seule, chez elle, en ligne, coince à un moment donnée. Il y a un cap qu'elles n'arrivent pas à franchir seule. Le collectif ou un mentor aide plutôt bien dans ces moments là. Et parfois, c'est plus compliqué que d'autre. C'est sans doute ce déclic qui manque je crois. Au moins dans certains cas.

