Article original : Mistakes I Made When Learning to Code – and How to Avoid Them

Par Fredrik Strand Oseberg

Je me souviens vivement de mes six premiers mois d'apprentissage de la programmation. Je suivais un tutoriel, sans comprendre ce que je faisais.

J'étais essentiellement un singe copieur.

La vidéo devant moi allait souvent trop vite pour que je puisse suivre. Et trop souvent, je devais arrêter la vidéo, rembobiner et regarder à nouveau ou mettre en pause à un endroit spécifique, juste pour copier le même code que l'instructeur.

Et même alors, je me trompais souvent.

Je me souviens de la frustration d'essayer de déboguer un tutoriel spécifique pendant deux jours d'affilée, simplement parce que l'instructeur avait oublié de montrer quelque chose qu'il tenait pour acquis que je savais.

Ce n'était pas entièrement leur faute, mais c'était certainement frustrant. Il est facile d'oublier que les connaissances que nous avons acquises sont de la magie noire pour quelqu'un d'autre.

Je suis coupable de cela aussi.

De nombreuses années ont passé depuis ces premiers jours, et mon parcours d'apprentissage et de travail acharné a porté ses fruits. Mais je me demande encore, aurais-je pu apprendre plus efficacement ?

Comment apprendre efficacement

Dans cet article, il y a trois points que je souhaite aborder et qui, selon moi, ont ralenti mon apprentissage : le manque de concentration, le piège des tutoriels et les abstractions.

Manque de concentration

Mes premiers jours de programmation étaient marqués par un grave manque de concentration. J'étais comme un agneau perdu. À la recherche de connaissances, mais pas aux bons endroits, et jamais assez. Le manque de concentration n'était pas entièrement de ma faute, mais était le produit de la raison pour laquelle j'apprenais.

J'ai commencé à apprendre à programmer suite à mon travail dans une startup où nous avions besoin d'un développeur web. Notre stratégie d'externalisation échouait, et nous avions besoin de quelqu'un pour apprendre afin d'aider à mettre le produit sur le marché.

J'allais aider nos développeurs à l'étranger, alors j'ai commencé à apprendre le langage de programmation dans lequel ils écrivaient notre plateforme : PHP.

Avec le temps, nous avons changé de développeurs trois fois. Et de langages de programmation. Cela a abouti à l'apprentissage d'un peu de PHP, un peu de Python et un peu de Ruby.

C'était une erreur.

Apprendre un peu de ceci et un peu de cela signifie que vous ne vous donnez pas vraiment le temps de saisir pleinement les concepts. La programmation est difficile, il n'y a pas moyen de contourner cela. Nous devons donc nous donner le temps de saisir pleinement ces concepts.

Ce n'est que lorsque je me suis engagé à apprendre JavaScript en profondeur que j'ai commencé à voir des changements significatifs dans ma compréhension au fil du temps.

Ne papillonnez pas. Maîtrisez un langage de programmation. Maîtrisez-le à fond. Maîtrisez-le pleinement.

Cela ne signifie pas que vous vous mariez avec un langage. Vous pourrez vous diversifier plus tard. Cela signifie que vous utilisez un langage de programmation comme votre véhicule pour comprendre la programmation.

Le piège des tutoriels

Les tutoriels sont géniaux. Franchement, j'ai perdu le compte du nombre de tutoriels que j'ai suivis. C'est une grande satisfaction de créer quelque chose qui fonctionne. De plus, regarder des vidéos de quelqu'un qui sait ce qu'il fait vous donne l'impression de savoir le faire aussi.

Mais il est trop facile de tomber dans le piège de ne regarder que des tutoriels. Mettre une vidéo est simple. Faire le travail difficile ne l'est pas. Et c'est le travail difficile qui fera de vous un développeur.

Le problème que j'avais souvent avec les tutoriels était que toute la réflexion avait déjà été faite à l'avance, par l'instructeur. Et le fait que l'instructeur fasse ce travail signifiait que je n'avais pas à le faire.

Ce n'était pas bien, car cela signifiait que je me mentais à moi-même et que je pensais apprendre en même temps.

Double problème.

Je ne dis pas que vous ne devriez pas suivre de tutoriels. Surtout si vous êtes autodidacte, parfois vous devez simplement comprendre ce que vous devez faire pour avancer. Ou vous devez essayer de rassembler des morceaux ici et là pour compléter le tableau d'ensemble.

Mais chaque fois que vous avez fini de regarder un tutoriel, vous devez pratiquer.

Je sais. C'est difficile. Je suis délibérément dur avec vous maintenant. Même aujourd'hui, je suis coupable de simplement mettre une vidéo de tutoriel quand mon énergie est épuisée. Je continue de penser que c'est mieux que rien. Et bien sûr, c'est le cas.

Mais si vous ne pratiquez pas, vous gaspillez un temps et des efforts précieux.

Une des meilleures choses qui soit arrivée pour mon apprentissage a été la décision de faire les projets freeCodeCamp. Ce sont des projets définis qui ne vous tiennent pas la main. J'ai dû comprendre comment implémenter tout.

Et devinez quoi ? C'est exactement le travail d'un développeur. C'est comme ça que nous nous sentons chaque jour. On nous donne une tâche que nous ne savons souvent pas résoudre initialement, et ensuite nous appliquons une boîte à outils de compétences apprises à ce problème.

Être développeur ne consiste pas à avoir une réponse à tout. C'est trouver la réponse à tout.

Et vous n'y arrivez pas en regardant seulement des tutoriels.

Pratiquez. Pratiquez. Pratiquez.

Ne vous fiez pas aux abstractions

Être développeur en 2020 est difficile. La technologie évolue rapidement, et des avancées sont faites tout le temps. Un des concepts qui nous permet d'avancer rapidement est les abstractions.

Les abstractions sont une bonne chose. Quelqu'un a pris quelque chose de difficile et l'a rendu plus facile en abstraant la partie difficile.

Vous pouvez penser à cela comme à une cuisinière. Vous n'avez pas besoin de savoir comment fonctionne la cuisinière, vous avez seulement besoin de savoir que lorsque vous appuyez sur un bouton, la cuisinière s'allume et chauffe la plaque. C'est tout ce dont vous avez besoin pour préparer le dîner.

En code, c'est aussi une bonne chose. Nous n'avons pas besoin d'écrire du code machine, car il est abstrait. Nous n'avons pas besoin d'écrire des serveurs HTTP, car ils ont été créés et sont disponibles pour que nous les utilisions, et nous pouvons construire de nouvelles choses incroyables sur ces bases.

Malheureusement, c'est aussi une arme à double tranchant.

Alors que les abstractions nous permettent de faire des choses incroyables, nous manquons aussi des choses importantes qui nous permettent de grandir en tant que développeurs. Des choses qui nous permettent de comprendre à un niveau plus profond ce qui se passe. Des choses qui pourraient être importantes pour créer de grandes solutions.

Nous manquons ces choses parce que nous n'avons pas à les apprendre, même si, en les apprenant, nous devenons souvent de meilleurs développeurs.

Ces choses sont souvent ennuyeuses, difficiles et fastidieuses à apprendre. Ce qui les rend plus faciles à sauter dans notre processus d'apprentissage.

Mais j'aimerais vous défier d'être curieux.

Ne vous contentez pas de construire avec des frameworks comme React. Construisez une application monopage en JavaScript vanilla.

Ne vous contentez pas d'utiliser Express. Essayez de construire votre propre serveur web en utilisant Node.js et TCP. Apprenez HTTP.

Apprenez les choses difficiles, ennuyeuses et banales qui font de vous un meilleur développeur. Ou au moins essayez. À mon avis, vous serez mieux loti.

Conclusion

Dans cet article, nous avons exploré trois domaines qui, selon moi, ont ralenti mon chemin pour devenir développeur : le manque de concentration, le piège des tutoriels et les abstractions.

J'ai donné quelques conseils concrets basés sur ma propre expérience sur la façon dont vous pouvez éviter ces erreurs et, espérons-le, apprendre plus efficacement.

Si vous êtes intéressé par mon contenu, vous pouvez trouver ma chaîne YouTube ici, où je couvre des sujets comme React, les fondamentaux du web, les chatbots et plus encore.

Vous pouvez aussi me suivre sur Twitter @foseberg.

Merci d'avoir lu cet article, et veuillez le partager avec toute personne que vous pensez susceptible de le trouver utile. Bonne chance dans votre parcours.

##