Publicité
La programmation est dur. Les seules personnes qui disent le contraire sont celles qui ont des années d'expérience en codage à leur actif. C'est bien d'être débordé! Il y a un parcelle apprendre et vous oublierez probablement des choses aussi vite que vous les apprenez. Croyez-moi: c'est normal.
Mais ce n'est pas parce que c'est normal que ce n'est pas frustrant. A vrai dire, apprendre à coder Comment apprendre la programmation sans tout le stressPeut-être avez-vous décidé de vous lancer dans la programmation, que ce soit pour une carrière ou simplement comme passe-temps. Super! Mais peut-être que vous commencez à vous sentir dépassé. Pas si bien. Voici de l'aide pour faciliter votre voyage. Lire la suite peut être extrêmement stressant si vous ne l’abordez pas avec le bon état d’esprit et la bonne attitude.
Vous voulez apprendre ce nouveau langage, cette nouvelle bibliothèque ou ce nouveau framework dès que possible, n'est-ce pas? C'est compréhensible. Heureusement, il existe une poignée de conseils qui peuvent vous aider à mieux conserver toutes ces informations de programmation lourdes qui continuent de voler dans une oreille et directement dans l'autre.
Fini les séances de Cram
Personne ne veut l'entendre, mais le bachotage est la pire façon d'apprendre à programmer. Si vous êtes comme moi, le bachotage était votre mode opératoire tout au long de l'école et de l'université. C'est la seule façon de savoir comment étudier.
Mais apprends de mes erreurs: plus tu essaies de fourrer, moins tu te souviendras. C'est à peu près vrai pour n'importe quel sujet basé sur la connaissance, mais c'est particulièrement vrai quand il s'agit de programmation.
La base de cette affirmation vient d'une étude de 2008 par l'Université de Californie, San Diego :
"Les étudiants réussissent mieux lorsqu'ils espacent leurs sessions d'étude plutôt que lorsqu'ils essaient de tout mettre dans leurs caboches au cours d'une séance."
Pourquoi? Très probablement en raison de la effet de position en série:
« L'effet de position en série est la tendance d'une personne à se souvenir le mieux du premier et du dernier élément d'une série, et les éléments du milieu le moins bien. »
En d'autres termes: dans une session d'étude donnée, vous êtes plus susceptible de conserver les informations que vous avez apprises près de le début et la fin de la session et plus susceptibles d'oublier les informations du milieu de la session.
Vous voulez maximiser le nombre de débuts et de fins. C'est pourquoi il est préférable d'avoir plusieurs sessions courtes au lieu de quelques sessions longues lorsqu'il s'agit d'apprendre et d'absorber du nouveau matériel.
La prochaine fois que vous vous asseyez pour apprendre le code, prenez un sujet à la fois et faites une courte pause entre chaque sujet. (Assurez-vous simplement d'éviter que vos pauses ne se transforment en procrastination !)
Réviser, réviser, réviser
Une autre raison pour laquelle le bachotage est antithétique à la rétention des connaissances à long terme est que la mémoire s'estompe avec le temps. Ce n'est pas toujours vrai - je suis sûr que nous avons tous quelques souvenirs d'enfance qui ne disparaîtront jamais - mais cela semble être le cas général pour les souvenirs qui ne sont pas liés à l'émotion.
Il y a un débat pour savoir si la mémoire elle-même se détériore en raison du temps (théorie de la désintégration) ou est simplement repoussé et remplacé par de nouveaux souvenirs au fil du temps (théorie des interférences). Quelle que soit la théorie à laquelle vous souscrivez, le résultat est que les souvenirs plus anciens sont plus susceptibles de s'estomper.
C'est là que l'examen entre en jeu.
Pensez-y comme si vous marchiez dans une forêt de souvenirs. Chaque fois que vous voulez accéder à une mémoire, vous devez tracer la voie neurale afin de le trouver. Chaque fois que vous retracez ce souvenir, le chemin se grave un peu plus, tout comme un chemin de terre se forme naturellement lorsque les gens parcourent le même chemin encore et encore. Si vous arrêtez de marcher sur le sentier, il peut s'effacer et le souvenir se perdre quelque part dans la forêt.
En mettant de côté toute la psychologie pop, voici ce qu'il faut retenir: en matière de programmation, il ne suffit pas d'apprendre un sujet une ou deux fois. Il faut le revoir des dizaines voire des centaines de fois. Chaque critique grave ce sujet dans votre cerveau un peu plus profondément.
Je sais à quel point cela peut être difficile si vous êtes un bourreau naturel, mais vous serez surpris de la vitesse à laquelle vous commencez à retenir le matériel une fois que vous vous efforcez de le revoir régulièrement.
Utiliser plusieurs ressources différentes
L'aspect le plus difficile de la programmation - du moins pour les tout nouveaux codeurs - est l'étendue des détails et des nuances qui doivent être intériorisés. Jusqu'à ce que cette intériorisation se produise, vous allez être dans un état perpétuel de grattage de la tête.
Selon la langue, vous devrez mémoriser des centaines de règles de syntaxe (par exemple, des mots-clés, des points-virgules, des espaces). Certains langages sont plus stricts, d'autres le sont moins, et d'autres encore ont leurs propres approches uniques de la syntaxe qui ne sont utilisées nulle part ailleurs. Tout cela peut être déroutant si vous n'avez aucune expérience de codage préalable.
Sans parler de toutes les informations conceptuelles qui transcendent les langues individuelles. Des sujets tels que la programmation orientée objet, les systèmes de composants d'entités et les modèles d'observateurs peuvent vraiment vous faire tourner la tête la première fois que vous essayez de les apprendre.
J'ai déjà partagé cette illustration, mais elle est tellement pertinente qu'elle mérite d'être répétée :
« Supposons que quelqu'un vous montre une photographie d'une statue. Cela peut fournir suffisamment d'image pour que vous ayez une idée adéquate de la statue, mais vous n'obtiendrez pas une image complète. Une photo agrandie perdrait des détails complexes tandis qu'une photo agrandie perdrait le sens de la perspective. Cependant, avec des photographies supplémentaires prises sous d'autres angles, vous pouvez vraiment commencer à voir le plénitude de la statue en texture, en taille, en détail, d'avant en arrière, d'un côté à l'autre et de haut en bas."
Apprendre à programmer peut être étonnamment arbitraire. Tout le monde peut louer la ressource A comme étant la meilleure façon d'apprendre la langue X, mais cela n'a peut-être aucun sens pour vous. Peut-être que tout le monde déteste la ressource B, mais si vous jetez un coup d'œil, c'est parfaitement logique! Quant à quelqu'un d'autre, peut-être qu'il se déconnecte lorsqu'il étudie les ressources A et B mais profite grandement de la ressource C.
C'est pourquoi il est si important que vous soyez prêt à consommer toutes sortes de ressources. Chacun apprend d'une manière différente. Si vous rencontrez des problèmes avec un sujet particulier, recherchez une autre ressource. Peut-être que celui-ci vous conviendra mieux. Peut être pas.
Même si vous pensez comprendre certains sujets, il est possible qu'il y ait plus à apprendre à ce sujet. Il est également possible que l'explication de quelqu'un d'autre solidifie le concept dans votre esprit pour de bon. On ne sait jamais, alors pourquoi ne pas consommer autant de ressources que possible ?
Notez que les jeux peuvent être une ressource extrêmement utile! Découvrez ces jeux de codage amusants et éducatifs Les 9 meilleurs jeux de codage pour développer vos compétences en programmationLes jeux de codage vous aident à apprendre plus rapidement grâce à une pratique et à une expérience pratiques. De plus, c'est une façon amusante de tester vos compétences en programmation ! Lire la suite .
Enseignez les concepts au fur et à mesure que vous les apprenez
Il y a un beau concept dans la programmation appelé débogage de canard en caoutchouc Les principes de programmation les plus étranges dont vous n'avez jamais entendu parlerLes principes suivants vous apprendront à être sage avec votre code. Certains sont étranges et beaucoup sont humoristiques, mais ils sont tous tout aussi pratiques et importants. Prenez garde! Lire la suite , qui décrit la technique consistant à expliquer son code, ligne par ligne, à un canard en caoutchouc inanimé. Il est utilisé lorsqu'un segment de code particulier est cassé, mais il n'y a aucune raison évidente à cela.
Curieusement, la plupart des programmeurs ont un "Eureka!" moment au milieu de l'explication du code alors qu'ils voient soudainement où se produit l'erreur dans la logique de codage. La verbalisation déclenche une zone différente du cerveau, vous obligeant à voir le problème sous un nouvel angle.
Ce concept peut également être utilisé pour vous aider à apprendre de nouvelles matières. Vous avez peut-être rencontré cette citation populaire qui est souvent attribuée à Albert Einstein :
"Si vous ne pouvez pas l'expliquer simplement, vous ne le comprenez pas assez bien."
À l'exception de certains domaines qui traitent de connaissances théoriques avancées, ce dicton est vrai. Plus vous comprenez un sujet, mieux vous êtes équipé pour l'expliquer de telle sorte que quelqu'un qui n'a aucune connaissance de ce sujet puisse encore arriver à le comprendre.
Le contraire est également vrai. En essayant d'enseigner un sujet, vous rencontrerez certains concepts que vous n'arrivez pas à expliquer de manière claire. C'est non seulement un excellent moyen de diagnostiquer les faiblesses de vos connaissances, mais le processus réel de recherche de l'explication appropriée peut aider à solidifier le concept dans votre esprit.
C'est ce qu'on appelle l'apprentissage par l'enseignement et c'est essentiellement une variante du débogage des canards en caoutchouc.
Maintenant, je ne dis pas que vous devriez réellement enseigner aux autres; plutôt, chaque nouveau sujet de programmation que vous apprenez, essayez de l'enseigner à un canard en caoutchouc (ou à un ami invisible). Cela peut sembler idiot au début, mais vous pouvez le trouver incroyablement fructueux en matière de rétention de mémoire.
La pratique délibérée rend parfait
La notion de talent est de la pure foutaise. Personne ne sort de l'utérus en tant que violoniste, lutteur ou programmeur de classe mondiale. Bien sûr, certaines personnes pourraient être plus enclines à certaines disciplines, mais le talent sans expérience ne sert à rien Ne laissez pas mourir vos talents cachés: 7 façons de les retrouver et de les retrouverLa mauvaise nouvelle est que vous devez travailler dur avec l'intention de peaufiner vos talents cachés. La bonne nouvelle est qu'il y a plus d'opportunités que jamais de faire briller vos talents. Lire la suite . De même, le travail acharné est toujours plus précieux que le talent.
Cela étant dit, toutes les formes de travail acharné ne sont pas égales. Malcolm Gladwell a inventé la tristement célèbre règle des 10 000 heures, qui dit que vous devez investir au moins 10 000 heures dans un sujet pour en devenir un maître. Bien que le sentiment puisse être vrai, beaucoup de gens interprètent mal ce qu'il essayait de dire.
Pour faire court, un engagement de 10 000 heures ne garantit pas réellement la maîtrise. Vous connaissez le dicton: « La pratique ne rend pas parfait. La pratique parfaite rend parfait. Pour qu'il ait du sens, la pratique doit être intentionnelle Vous voulez devenir un expert dans quelque chose? Essayez la pratique délibéréeIl est trop facile de se sentir abattu lorsque vous essayez ardemment d'améliorer une certaine compétence. Utilisez le pouvoir de la « pratique délibérée » pour surmonter ces plateaux exaspérants. Lire la suite . La maîtrise ne peut être atteinte que par 10 000 heures de pratique délibérée.
La façon dont vous pratiquez compte bien plus que le temps que vous passez à pratiquer.
La lecture est passive. Regarder des cours YouTube est passif. L'écoute de podcasts est passive. En tant que codeur débutant, vous pourriez être tenté de passer de tutoriel en tutoriel, en abordant sujet après sujet sans réellement appliquer aucune de ces connaissances de manière pratique. Résistez à cette tentation.
C'est une chose de comprendre un exemple devant vous, mais c'en est une autre de synthétiser une solution à partir de zéro. Si vous voulez accélérer le processus d'apprentissage, vous devez être prêt à être actif au lieu d'être passif. La pratique active est la seule qui compte en fin de compte.
Expérimentez avec des projets personnels
Pour moi, les devoirs étaient la pire partie de l'école. Cela semblait juste être un stratagème élaboré pour tuer le plaisir et occuper les étudiants – ce qui, pour être juste, était parfois vrai. Mais maintenant que je regarde en arrière, l'importance des devoirs prend enfin tout son sens. Cela m'a obligé à appliquer les connaissances nouvellement acquises de manière active.
Si vous êtes inscrit cours et cours de programmation Les 11 meilleurs sites pour des cours de programmation informatique en ligne gratuitsEn utilisant ces cours de programmation informatique en ligne gratuits, vous pouvez devenir un excellent programmeur sans diplôme en informatique. Lire la suite , ne sous-estimez pas l'efficacité des devoirs. Prenez-le au sérieux, en le traitant toujours comme une chance de cimenter davantage ce que vous avez appris dans la mémoire à long terme.
Mais souvent, les devoirs ne suffisent toujours pas. (Et si vous apprenez à programmer par vous-même sans un véritable instructeur, vous n'avez probablement pas de devoirs pour commencer.)
Quelle est la solution? Créez quelques projets secondaires jetables !
Pensez à un quelques idées de projets 5 idées de projets pour vous aider à apprendre la programmation plus rapidementIl existe plusieurs façons de faciliter la courbe d'apprentissage de la programmation. Mettez-vous les mains dans la peau et apprenez plus rapidement avec des projets parallèles que vous pouvez commencer à tout moment. Jouez avec ces cinq. Lire la suite que vous souhaitez mettre en œuvre. Pour les débutants absolus, vous pourriez envisager un jeu de tic-tac-toe ou de pendu. Pour les programmeurs chevronnés qui essaient d'apprendre un nouveau framework, essayez de coder une simple application mobile ou un jeu Web. Tant que cela vous intéresse sur le plan personnel, allez-y !
La beauté de cette approche est double.
Premièrement, il est plus susceptible de retenir votre attention. Des études ont montré que les élèves apprennent mieux lorsqu'ils peuvent poursuivre des sujets qui les intéressent. C'est exactement ce que propose un projet personnel. Vous avez un objectif final que vous souhaitez réellement atteindre, vous êtes donc plus susceptible de conserver les informations qui vous y mèneront.
Deuxièmement, il n'y a aucune pression pour que vous réussissiez. Alors que le succès serait agréable, le manque de formalité vous permet d'être expérimental et créatif. Vous allez inévitablement rencontrer des problèmes, mais c'est plus comme jouer avec des Lego que comme des devoirs. C'est plus amusant et moins stressant.
Détendez-vous et marquez tout
La vérité est qu'aucun programmeur ne se souvient tout ils ont appris. Même après avoir travaillé avec une bibliothèque ou un framework particulier pendant un certain temps, il n'est pas rare que vous ne puissiez pas vous rappeler chaque fonction ou variable du haut de votre tête.
En fait, essayer de tout mémoriser pourrait bien finir par être une énorme perte de temps et d'efforts. Les feuilles de référence existent pour une raison. Pourquoi mémoriser une encyclopédie entière quand vous pouvez simplement l'ouvrir quand vous en avez besoin ?
Alors, quand mémoriser et quand référencer ?
Quand il s'agit de matériel conceptuel, intériorisez-le toujours au mieux de vos capacités. J'entends par là comprendre la théorie même si vous ne pouvez pas la convertir en code réel (et la théorie devrait être suffisamment claire pour que vous puissiez l'enseigner clairement).
Pour tout le reste - comme les noms de fonctions spécifiques, les listes de paramètres ou même les bizarreries de langue - Je ne m'inquiéterais pas de m'engager dans la mémoire. N'hésitez pas à vous reporter à une fiche de référence. Parfois, vous faites référence à quelque chose si souvent que vous finissez par le mémoriser. Si cela arrive, très bien. Si non, c'est bien aussi.
Personnellement, j'ai des centaines de signets Internet vers diverses API, guides et tutoriels. Si j'ai besoin d'implémenter une sorte d'algorithme de recherche de chemin, je pourrais faire référence à un guide pour m'aider à le coder avant de l'oublier à nouveau. Cela aide à comprendre les concepts sous-jacents, mais j'essaie de ne pas m'inquiéter des détails de la mise en œuvre.
Dernières pensées
Je le répéterai un million de fois s'il le faut: la programmation est difficile et ce n'est pas grave si vous avez du mal avec elle. Je programme en tant que passe-temps depuis plus d'une décennie et je suis toujours intimidé lorsque j'ai de nouveaux concepts à apprendre.
Ne vous en faites pas si vous ne vous souvenez pas de tout tout de suite. Les conseils ci-dessus vous seront, espérons-le, utiles, et même s'ils ne le font pas, vous pouvez toujours vous fier aux références mises en signet en dernier recours.
Trouvez-vous la programmation difficile? Quels types d'astuces et de conseils connaissez-vous qui pourraient être utiles aux codeurs débutants? Partagez votre sagesse avec nous dans les commentaires ci-dessous!
Crédits image: Programmeur binaire via Shutterstock, Effaceur de mémoire via Shutterstock, Code obscurci via Shutterstock, Caoutchouc Ducky Via Shutterstock, Dactylographe via Shutterstock, Code source PHP via Shutterstock, Dossiers de fichiers via Shutterstock
Joel Lee a un B.S. en informatique et plus de six ans d'expérience professionnelle en rédaction. Il est le rédacteur en chef de MakeUseOf.