Sommaire
Ce qui m'a vraiment frustré quand j'ai commencé à apprendre à coder, c'est ce que j'appelle maintenant le “pont brumeux”. C'est un pont long et sombre, où tout à gauche est trop facile et tout à droite est trop dur. Donc vous êtes coincé à trébucher sans but sur ce foutu pont, sans rien apprendre de concret.
La plupart des débutants en programmation souffrent d'une incapacité à trouver des tâches intermédiaires et des sources de connaissances, pour combler le fossé entre être un débutant et devenir un codeur compétent. Les gens qui traversent le pont, le font en accomplissant sans cesse des tâches simples, ou en se cognant la tête contre le mur d'un projet qui dépasse probablement de loin leur capacité actuelle.
Il en résulte que la grande majorité des débutants sont frustrés et abandonnent bien avant qu'ils ne le devraient. Ils s'épuisent, non pas parce que le codage est difficile (ce n'est pas le cas), mais parce qu'apprendre à coder est difficile. Et ça ne devrait vraiment pas l'être.
Alors, y a-t-il une manière meilleure que les autres pour apprendre à coder ?
Pendant plus d'un an, j'ai été littéralement obsédé par la recherche d'une réponse à cette question. Quelle est la meilleure approche pour apprendre à coder ? C'est une question d'une simplicité trompeuse et la réponse, comme il s'avère, explique parfaitement pourquoi apprendre à coder est si difficile en premier lieu. Ou peut-être devrais-je dire pourquoi expliquer aux autres comment apprendre est si trompeur.
Si vous deviez demander à cinq développeurs quelle est la meilleure façon d'apprendre la programmation, vous obtiendrez probablement cinq réponses très différentes. L'un d'eux vous dira avec confiance, qu'il faut commencer à créer de vraies applications. Un autre gars vous donnera une liste énorme de liens vers des blogs, des vidéos YouTube et des cours en ligne. Il y aura le gars qui dira que son frère est allé à tel ou tel camp d'entraînement, et que c'est apparemment génial. Le gars qui a l'air vraiment ringard, vous donnera un lien.edu vers un cours d'introduction à l'informatique, et quelqu'un d'autre mentionnera sans aucun doute, un livre ou deux très respectés.
Tu sais ce qui est vraiment frustrant dans ces réponses ? Ce sont toutes de bonnes réponses légitimes. Alors pourquoi ressentez-vous toujours le même sentiment de découragement que lorsque vous avez posé la question pour la première fois ?
Voilà pourquoi : L'apprentissage du code est plus facile lorsqu'il est fait dans un ordre particulier. Quand vous essayez de l'apprendre en dehors de la séquence, vous serez vraiment frustré ou vraiment ennuyé. C'est comme essayer de faire du vélo sans d'abord utiliser les roues d'entraînement, ou apprendre l'alphabet alors que vous savez déjà lire et écrire.
La meilleure façon de traverser le pont brumeux est de le diviser en trois segments distincts. Pensez à ces segments comme vous penseriez à des bordures sur une carte. Ils sont utiles pour naviguer, mais ils ne sont pas réels.
- Apprendre la syntaxe
- Résoudre des problèmes
- Faire des trucs
Chaque segment est une condition préalable pour ce qui vient après, mais aucun des segments ne s'exclut mutuellement. En d'autres termes, traverser le pont brumeux ne sera pas un processus strictement linéaire. Alors que chaque segment renforce les autres (indépendamment de l'ordre), vous devriez vous concentrer principalement sur un segment à la fois. Si vous le faites de cette façon, vous traverserez le pont plus rapidement, plus facilement et avec beaucoup moins de maux de tête.
Examinons chaque segment plus en détail.
Apprendre la syntaxe
Ce segment vous donne un faux sentiment de confiance qui disparaîtra rapidement, lorsque vous passerez à la résolution de problèmes. C'est le royaume des innombrables livres, vidéos et cours d'introduction. Beaucoup d'argent est gagné dans ce segment, parce que la plupart des gens apprennent un peu de syntaxe, et ne vont jamais plus loin avec elle (pas leur faute, mais j'y reviendrai dans une seconde).
Il n'y a vraiment rien qui manque dans ce domaine. Le marché de l'apprentissage des bases est si énorme et si peu de gens vont au-delà, que vous trouverez une quantité presque infinie de matériel. Ne vous laissez pas prendre dans le piège commun de l'apprentissage et du réapprentissage continus de la syntaxe. Une fois que vous avez lu deux livres pour débutants décents sur la langue de votre choix, appelez-les bons et passez à la résolution de problèmes.
Résoudre des problèmes
C'est un domaine qui a désespérément besoin d'attention. C'est presque complètement négligé et je crois que c'est la principale raison pour laquelle si peu de gens dépassent la syntaxe d'apprentissage. Ils n'ont pas d'autre orientation que de vagues conseils pour commencer à faire des choses. Ce qui est un peu comme essayer de faire du vélo, sans jamais avoir utilisé de roues d'entraînement. C'est possible mais loin d'être une façon idéale d'apprendre.
Lorsque vous pouvez prendre la syntaxe du premier segment et l'appliquer sans qu'on vous dise quoi faire, vous êtes dans le segment de la résolution de problèmes. C'est l'essence même de la pensée d'un programmeur, et c'est de loin la partie la plus difficile et la plus importante de votre voyage sur le pont brumeux. En fait, c'est ce sur quoi j'ai passé les 15 derniers mois (depuis ce post) à travailler.
Les débutants n'ont tout simplement pas de sources de tâches et de ressources intermédiaires pour combler l'écart entre la connaissance de la syntaxe de base et la construction de choses avec elle. Ils n'ont d'autres choix que de trébucher sur le pont brumeux, jusqu'à ce qu'ils commencent à comprendre les choses par la seule force brute.
Faire des trucs
Presque tous les développeurs que je connais, sont passés directement de l'apprentissage de la syntaxe à la réalisation (ou… à l'essai). C'est très frustrant parce que, non seulement vous apprenez à penser comme un programmeur, mais vous apprenez aussi les frameworks, tout le jargon qui va avec les frameworks, comment utiliser un IDE et un tas d'autres choses dans lesquelles je ne vais pas entrer.
Une fois que vous comprenez la syntaxe et que vous pouvez résoudre les problèmes de code de base par vous-même, il est temps, soit de contribuer à des projets open source, soit de travailler sur une idée qui vous vient à l'esprit. Construisez des choses qui vous excitent à sortir du lit le matin, et qui vous empêchent de vous endormir le soir. La passion vous permettra de passer à travers les parties difficiles restantes.
Pour ceux qui souhaitent apprendre à coder en quelques semaines, j'ai beaucoup aimé mon expérience à Le Wagon. Cette formation de développeur web propose un programme FullStack développeur de 9 semaines intensives et immersives pour apprendre à développer en front, back et aussi à se mettre dans la peau d'un développeur en startup : strees, workflow, gestion de projet, travail en équipe… Je conseille fortement cette formation !
La raison pour laquelle tant de gens sont frustrés et finissent par abandonner l'apprentissage du code, n'est pas parce que le codage est difficile. C'est parce qu'apprendre à coder est difficile. C'est désordonné, chargé de jargon et cela mène à une surcharge d'informations extrême. Il y a tellement de choses que vous avez besoin d'apprendre. Donc gardez cette approche simple :
- Apprendre la syntaxe
- Résoudre des problèmes
- Coder
La meilleur façon d’apprendre à coder est d’être motivé. “Sky is the limit” comme on dit.
Merci pour cet article, en complément je pourrais conseiller cette vidéo “Comment apprendre à coder” https://www.youtube.com/watch?v=JvO4S7TCmNM&list=PLyz_AxaaWmmQMSJ0PsyBqVfb9Z0lvGZ5t&index=1
Mais également le blog “code pour changer de vie” : https://coder-pour-changer-de-vie.com/
Belle journée !
Salut Nicolas,
merci pour ton retour !
Clément
C’est bien dit ! Il y en effet pléthores de formations qui apprennent les bases mais peu qui apprennent à comprendre comment les appliquer. Et ça c’est quelque chose qui vient avec la pratique.
Pour résoudre des problèmes et apprendre en faisant, il y a CodeWars qui est excellent : https://www.codewars.com/
Ça colle parfaitement avec ta phase 2. D’ailleurs pour accéder à codewars il y a un petit défi qui empêche pour filtrer. Il faut déjà connaître un minimum le langage choisi pour réussir à s’inscrire.
Bon après c’est en anglais mais pour apprendre à coder, c’est une compétence plus ou moins indispensables (d’au moins pouvoir se débrouiller avec un anglais technique – stackoverflow.com et autres sites de références ne sont pas dispo en français !).