Article original : Why Learning to Code is Hard – And How to Make it Easier
Par Ogundiran Ayobami
Vous avez du mal à apprendre à coder ? Si c'est le cas, je veux vous aider. J'ai donc rassemblé quelques conseils de mon expérience personnelle pour vous guider afin que vous ne luttiez plus inutilement.
Pourquoi est-il difficile d'apprendre à coder ?
Apprendre à coder peut être très difficile, surtout pour les débutants. C'est probablement pourquoi vous avez du mal actuellement. Vous êtes peut-être confus quant à l'approche à suivre car il existe de nombreuses approches et idées contradictoires.
Vous memorisez peut-être du code ou vous vous surchargez avec beaucoup de choses. Maintenant, vous êtes distrait et confus.
C'est une expérience courante parmi tous les programmeurs. Lorsque j'ai commencé à apprendre à coder, j'ai eu la même expérience. J'étais confus quant à ce que je devais suivre car j'avais accès à de nombreux styles et opinions sur Internet, tout comme vous.
Je continuais à apprendre tout ce qui se présentait à moi parce que je pensais que tout était important. Je m'inquiétais de manquer ce dont j'avais vraiment besoin pour grandir si j'ignorais une quelconque des informations que je trouvais.
Voyez-vous, vous êtes intelligent, brillant et capable. Il n'y a rien de mal chez vous. Vous devez simplement développer un état d'esprit de programmation et apprendre avec des ressources qui ne rendent pas tout plus difficile que nécessaire. Voici donc ce que vous devez savoir pour vous aider à apprendre à coder plus efficacement.
Enseigner les concepts de programmation est difficile
_Photo by [Unsplash](https://unsplash.com/@krakenimages?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">krakenimages / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Si vous n'avez pas encore trouvé les bonnes ressources, vous aurez probablement du mal à apprendre à coder. Certains tutoriels rendent le codage plus difficile qu'il ne devrait l'être, et certains tutoriels ne correspondent peut-être pas à votre style d'apprentissage.
Assurez-vous également de tirer vos ressources d'apprentissage d'une source de qualité – enseigner ne signifie pas toujours comprendre, alors essayez de trouver des sites ou des organisations qui ont une réputation de haute qualité.
Aucun tutoriel n'est parfait – mais ils ne devraient pas être inutilement difficiles à suivre non plus. Récemmment, j'ai étudié beaucoup de tutoriels JavaScript sur Internet et j'ai eu du mal à comprendre ce que beaucoup d'entre eux essayaient d'enseigner. Et j'ai une bonne compréhension de JavaScript – mais j'ai quand même eu du mal avec les tutoriels.
En fait, il est possible de construire une application de sorte qu'elle fonctionne et satisfasse son but prévu – mais c'est un jeu différent lorsqu'il s'agit d'enseigner comment la construire.
Pourquoi est-il difficile d'expliquer les concepts de codage ?
Une base de code complexe est difficile à expliquer. Quelqu'un pourrait effleurer la surface lorsqu'il essaie de la disséquer, mais il pourrait ne pas vous donner une compréhension approfondie du sujet.
Lorsque vous regardez le code dans un tutoriel, réfléchissez : le code est-il facile à suivre pour vous en tant que débutant ? Ou avez-vous du mal à comprendre ce qui se passe ?
Pensez à cela lorsque vous choisissez vos matériaux d'apprentissage, car ils peuvent être une raison majeure pour laquelle vous avez du mal à coder. En bref, apprendre à coder commence par trouver les bonnes ressources pour apprendre. Ne le prenez pas pour acquis.
La question maintenant est : quelle est la voie à suivre ? Eh bien, commencez à apprendre à partir de quelques ressources différentes – mais pas trop. Une fois que vous avez une idée d'elles, choisissez-en deux ou même une seule parmi elles qui rend tout facile pour vous.
Il est important de faire cela, car ce qui fonctionne pour vous peut ne pas fonctionner pour moi. Alors, assurez-vous de choisir vos propres tutoriels.
Ne mémorisez pas simplement le code
_Photo by [Unsplash](https://unsplash.com/@sevenshooterimage?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Seven Shooter / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Il est naturel de mémoriser du code lorsque vous ne comprenez pas ce que vous faites. C'est particulièrement tentant de le faire si les ressources que vous utilisez rendent les choses difficiles à comprendre.
Il peut ne pas sembler que vous mémorisez du code, mais vous pourriez le faire subconsciemment.
Tout ce que je peux vous dire maintenant, c'est que vous ne devriez pas simplement mémoriser du code ou cela vous brisera le cœur 💔 ! Cela vous forcerà à lutter inutilement.
Voici pourquoi.
La mémorisation du code vous confond chaque fois que vous appliquez vos connaissances parce que vous ne comprenez pas vraiment ce que vous faites. Vous n'avez pas vraiment appris à coder – vous avez simplement appris à copier et coller.
La mémorisation du code se produit chaque fois que vous stockez du code dans votre tête sans comprendre ce que le code représente, comment il fonctionne et ce que font les différentes parties.
Puisque vous ne comprenez pas les concepts de base, vous aurez du mal à construire des projets par vous-même.
Vous pourriez même abandonner...
Par exemple, regardons le code suivant :
let students = ['Ope', 'Ayo', 'Ola'];
let count;
for ( count = 2; count >= 0; --count )
{
console.log(students[count]);
}
Qu'est-ce que cela va afficher dans la console ? Voyez-vous, si vous ne comprenez pas vraiment comment fonctionne une boucle for, l'incrémentation et la décrémentation, vous aurez du mal à comprendre le code ci-dessus.
Alors, que devez-vous faire à la place ?
Chaque fois que vous réalisez que vous ne comprenez pas vraiment un morceau de code, décomposez le code en morceaux. Ensuite, recherchez l'utilisation de chacun des morceaux. Utilisons le code ci-dessus comme exemple.
Comment décomposer le code en petites parties
Étape 1 : Vous devez comprendre comment fonctionne une forLoop :
for (...){ }
Que fait cette boucle "for" ?
Elle est utilisée pour répéter une action ou une série d'actions plusieurs fois.
Étape 2 : Vous devez comprendre l'initialisation.
for ( initialization; conditional; increment or decrement ) { }
À quoi sert l'initialisation ?
Elle définit le début de la boucle. Elle détermine la position ou l'index à partir duquel commencer.
Étape 3 : Vous devez comprendre les conditionnelles.
Que font les conditionnelles ?
Elles définissent la condition qui doit être remplie pour que la boucle continue à s'exécuter.
Si la condition est évaluée à vrai, la boucle continuera à s'exécuter. Mais si elle est évaluée à faux, la boucle se terminera (s'arrêtera).
Étape 4 : Vous devez comprendre l'incrémentation et la décrémentation.
À quoi sert l'incrémentation ? Nous l'utilisons pour ajouter 1 à un nombre.
L'incrémentation peut être divisée en pré-incrémentation ( ++increment ) et post-incrémentation ( increment++ ).
En quoi sont-elles différentes ? Après avoir ajouté 1 à un nombre, la pré-incrémentation retourne le résultat comme ceci :
let number = 5; console.log(++number)// 6
Elle retourne 6 après avoir ajouté 1 à 5. La post-incrémentation retournera le nombre auquel nous avons ajouté un au lieu du résultat comme ceci :
let number = 5;
console.log(number++) // 5
console.log(number) //6
Vous voyez, la post-incrémentation retourne 5 après avoir ajouté 1 à 5 et lorsque nous vérifions le nombre, il est maintenant 6.
En bref, chaque fois que nous utilisons la pré-incrémentation avec un nombre, son résultat est retourné. Mais si nous utilisons la post-incrémentation, le nombre lui-même est retourné au lieu de son résultat. Ce qu'elles retournent fait toute la différence.
Alors, quelle est l'application de cela dans une boucle ?
Ce que l'incrémentation ou la décrémentation retourne n'affecte pas la boucle car la boucle ne traite que le résultat que nous obtenons après avoir appliqué la post ou la pré-incrémentation au nombre. Elles ajoutent toutes les deux un à l'initialisateur.
Mais nous avons aussi les décrémentations – elles soustraient un du compte. Cela signifie que, dans ce cas, le compte sera diminué de un à chaque itération.
let students = ['Ope', 'Ayo', 'Ola'];
let count;
for ( count = 2; count >= 0; --count ) {
console.log(students[count]);
}
Donc students [count] retournera 'Ola' à la première itération car son index est 2.
Il retournera 'Ayo' à la deuxième itération car son index est 1 et 'Ope' sera retourné à la troisième itération car son index est zéro. Ensuite, la boucle se terminera car le compte sera inférieur à zéro et la condition sera évaluée à faux.
Et c'est tout ! C'est ainsi que vous décomposez le code en petits morceaux pour pouvoir le comprendre.
Arrêtez de vous surcharger
_Photo by [Unsplash](https://unsplash.com/@villxsmil?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Luis Villasmil / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Vous surcharger signifie traiter plus de tâches que vous ne pouvez en gérer à un moment donné.
Lorsque vous commencez à apprendre à coder, vous pourriez avoir l'envie d'apprendre tout rapidement et de saisir chaque opportunité possible que la programmation peut offrir.
Ainsi, vous finissez par vous surcharger de tâches ou vous vous attribuez une tâche complexe dans un court laps de temps. Oh, non ! C'est l'une des raisons pour lesquelles vous avez du mal à coder.
Je me souviens encore à quel point apprendre JavaScript était très difficile pour moi parce que j'ai eu la mauvaise idée de me surcharger. J'ai appris var, let, const, fonctions, tableaux, objets et instructions conditionnelles en moins de 30 minutes en pensant que j'étais prêt à devenir un développeur logiciel de classe mondiale.
En même temps, j'apprenais d'autres choses en Python, PHP et je lisais toujours le livre de John Resig qui explique de nombreux concepts avancés en JavaScript et comment il a développé ou emprunté des solutions pour créer jQuery.
Une chose de plus... J'ai terminé un livre de texte de 100 pages et un tutoriel vidéo de 6 heures en seulement une heure.
Honnêtement, il n'y a rien de mal à lire ou à apprendre largement – mais il y a un temps pour tout. Vous ne pouvez pas tout savoir en même temps. Alors, ne vous surchargez pas.
Comment rythmer votre apprentissage
Choisissez une partie de votre projet ou un langage de programmation que vous savez être super simple à construire ou à comprendre. Ensuite, posez beaucoup de questions raisonnables et basiques à ce sujet car il y a un sens dans le non-sens. Hé, attendez ! Laissez-moi vous donner un exemple :
Imaginez que vous voulez apprendre JavaScript et que vous décidez simplement... hé, je vais apprendre juste let et const aujourd'hui, et rien d'autre. Et vous posez beaucoup de questions simples et raisonnables à leur sujet.
En faisant cela, votre rythme d'apprentissage semblera lent mais vous allez probablement dépasser vos homologues qui se précipitent (sauf s'ils ont des cerveaux spéciaux, ce qui est un cas rare).
Oui, gérer plusieurs tâches en même temps ou faire une chose avec un temps insuffisant rend le codage difficile pour vous. Cela peut aussi vous forcer à abandonner si vous n'obtenez pas un résultat raisonnable en cours de route.
Alors, gardez ce que vous apprenez super simple et domptez votre curiosité car elle est l'opposé de la concentration.
Gardez l'esprit ouvert
_Photo by [Unsplash](https://unsplash.com/@obiefernandez?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Obie Fernandez / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Il existe de nombreuses opinions contradictoires sur les langages de programmation, les bibliothèques, les frameworks, les techniques et les approches parmi les développeurs de logiciels. Les développeurs de logiciels sont les personnes les plus opinées que je connaisse.
Vous avez peut-être lu ou entendu des choses comme "Don't Repeat Yourself (DRY)", "Test Driven Development (TDD)", "Profit Driven Development (PDD)", "You Ain't Gonna Need It (YAGNI)", "Clean Code", "Always Be Coding (ABC)", "Favour Composition over Inheritance" et bien d'autres. Et peut-être que vous vouliez prendre parti.
Il est tentant de prendre parti en fonction des opinions des développeurs de logiciels que vous respectez. Mais je ne pense pas que vous devriez le faire jusqu'à ce que vous compreniez vraiment ce que vous faites. Votre travail actuel est de comprendre les fondamentaux et de construire des projets en les utilisant.
Finalement, vous rencontrerez certains défis qui vous forceront à utiliser certaines approches, bibliothèques et frameworks. Toutes les approches ou techniques sont utiles en fonction du contexte. Aucune approche n'est ni juste ni fausse, c'est le contexte qui la rend ainsi.
Toutes ces techniques peuvent être utiles pour résoudre des problèmes réels et elles ont toutes des inconvénients. Donc, ne vous inquiétez pas trop de choisir un camp jusqu'à ce que vous compreniez les fondamentaux de votre langage de programmation choisi et que vous ayez construit quelques projets de base avec lui.
Développez un état d'esprit de recherche
_Photo by [Unsplash](https://unsplash.com/@uxindo?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">UX Indonesia / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
La programmation, la plupart du temps, ressemble à de la recherche. Vous commencez par l'observation puis vous testez plusieurs choses jusqu'à obtenir un résultat satisfaisant. C'est à cela que ressemble la programmation. Vous ne savez souvent pas vraiment ce que vous faites jusqu'à ce que cela fonctionne.
Une fois que vous comprenez cela, cela vous aidera à être content des luttes nécessaires. Parce que la plupart du temps, vous devrez apprendre à corriger un bug que vous n'avez jamais vu dans votre carrière et cela pourrait vraiment demander beaucoup d'efforts.
Maintenant, vous pourriez lutter pour corriger ce bug, et pour être honnête, c'est une lutte nécessaire. Aucun développeur de logiciels n'est à l'abri d'une telle lutte. Eh bien, peut-être que les ingénieurs 10x (sourires) en sont exempts, mais pas moi.
Être un expert ne consiste pas à avoir des réponses à toutes les questions, mais à savoir comment trouver la réponse.
Éliminez les distractions
_Photo by [Unsplash](https://unsplash.com/@nublson?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Nubelson Fernandes / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Nous avons tous des distractions qui peuvent nous éloigner de la concentration sur le codage. Quelles sont les vôtres ? Est-ce votre travail actuel, votre partenaire, vos gadgets, ou simplement la lutte pour joindre les deux bouts ?
Vous devez identifier quelles sont vos distractions et les éliminer avant de commencer à apprendre à coder. Sinon, vous ne ferez que commencer et abandonner encore et encore.
Parfois, vous pouvez affronter les défis de front, et parfois vous devez simplement les laisser. Dans ce cas, vous devez planifier vos activités et votre temps de codage de manière à ne pas être distrait par des choses que vous ne pouvez pas contrôler ou changer.
Vous ne pouvez pas vraiment être aussi efficace en codant si vous avez beaucoup de distractions dans votre vie, alors vous devez les identifier et les résoudre une par une. Cela vous aidera à augmenter vos chances de réaliser vos rêves de programmation.
Ne travaillez pas trop dur
_Photo by [Unsplash](https://unsplash.com/@dchuck?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Daniel Chekalov / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Détendez-vous ! Ne vous surmenez pas car vous devez vraiment comprendre les concepts avec lesquels vous traitez à ce stade. Et cela nécessite un esprit reposé et frais pour le faire. Alors, ne vous surmenez pas et ne compromettez pas l'efficacité de votre apprentissage.
La programmation est difficile pour les ingénieurs logiciels expérimentés, et encore plus pour un débutant. Travailler trop dur sans obtenir de résultats raisonnables peut vous décourager facilement. Lorsque vous êtes un peu épuisé mentalement, arrêtez-vous, prenez une pause et continuez plus tard.
Essayez-le. Quittez une tâche pendant quelques minutes. Travaillez loin de votre ordinateur. Dormez et libérez votre esprit, mais n'oubliez pas d'essayer une fois de plus... une fois de plus jusqu'à ce que vous compreniez.
Conclusion
Lutter est une bonne chose lorsque c'est productif. Cela fait de vous une meilleure personne ou un meilleur développeur de logiciels. Mais ne vous méprenez pas – je ne vous dis pas de lutter inutilement.
Aucun développeur de logiciels n'est à l'abri de la lutte lorsqu'ils codent. Mais c'est pire de lutter inutilement en apprenant avec les mauvaises ressources, ou en ne demandant pas d'aide à un mentor ou à quelqu'un qui peut vous aider lorsque vous êtes bloqué.
Maintenant, allez accomplir des choses.
Une dernière chose
Ayobami aime écrire l'histoire avec le développement de logiciels et aide actuellement ceux qui ont du mal à comprendre et à construire des projets avec JavaScript à travers You Too Can Code.