Article original : How to Use Project-Based Learning to Become a Better Developer

Dans cet article, vous apprendrez l'apprentissage par projet - comment commencer, comment obtenir des idées pour un projet, et plus encore.

L'enfer des tutoriels est réel, et c'est un endroit terrible où se trouver. L'apprentissage par projet est la meilleure façon de progresser en tant que développeur.

Vous avez probablement entendu ce conseil plus de fois que vous ne pouvez le compter. C'est un conseil très courant donné aux développeurs, souvent à ceux qui sont nouveaux dans leur parcours de codage. Cette affirmation est vraie : l'enfer des tutoriels est réel, et c'est une zone de confort dont il est difficile de sortir.

Passer à l'apprentissage par projet est souvent plus facile à dire qu'à faire, cependant. Et la plus grande raison à cela peut être la confusion concernant ce que le "projet" dans l'apprentissage par projet est censé signifier.

Vous pourriez également vous demander si regarder occasionnellement un tutoriel compte comme être dans l'enfer des tutoriels, surtout si vous trouvez plus facile d'apprendre de nouveaux concepts en utilisant des vidéos plutôt que du contenu écrit.

Le but de cet article n'est pas de soutenir qu'une méthode d'apprentissage particulière est meilleure qu'une autre. Au lieu de cela, vous apprendrez ce qu'est l'apprentissage par projet et verrez pourquoi l'apprentissage par projet est la meilleure façon de progresser en tant que développeur.

Voici quelques points que nous aborderons dans cet article :

  • Qu'est-ce que l'enfer des tutoriels et pourquoi vous devriez l'éviter.
  • Si vous êtes dans l'enfer des tutoriels, comment en sortir.
  • Qu'est-ce que l'apprentissage par projet ?
  • Comment commencer avec l'apprentissage par projet.
  • Les avantages de l'apprentissage par projet.
  • Les idées fausses courantes sur l'apprentissage par projet.

Qu'est-ce que l'enfer des tutoriels ?

Parlons de l'enfer des tutoriels - que signifie cela ? Regarder des tutoriels vidéo sur quelque chose signifie-t-il que vous êtes dans l'enfer des tutoriels ? Devez-vous consommer uniquement du contenu textuel pour ne pas être considéré comme quelqu'un dans l'enfer des tutoriels ?

J'aime penser à l'enfer des tutoriels comme un état de stagnation où vous êtes coincé dans une boucle de dépendance aux tutoriels - souvent des tutoriels vidéo - sans faire d'apprentissage pratique ou collaboratif pour solidifier les concepts que vous apprenez.

Un développeur qui est coincé dans l'enfer des tutoriels ne peut généralement rien construire en utilisant les outils qu'il a appris sans regarder plusieurs tutoriels comme guide. Construire les choses les plus basiques devient difficile parce que cette personne n'a pas de profondeur ou de compréhension pratique des concepts de codage ou des langages de programmation.

Il n'y a rien de mal à consulter un tutoriel lorsque vous êtes bloqué sur un problème, surtout si c'est quelque chose que vous n'avez jamais rencontré auparavant. Mais cela devient encombrant (et un obstacle à votre apprentissage) si vous devez consulter des tutoriels à chaque étape pour construire même des choses basiques.

Ensuite, lorsque vous avez terminé ce projet de tutoriel, vous passez directement au tutoriel suivant, en tapant sans réfléchir. Cela peut vous donner une illusion de progrès. Être dans l'enfer des tutoriels, c'est comme avoir une démangeaison d'apprendre et de gratter cette démangeaison en consommant du contenu de tutoriel sans arrêt.

Comme je l'ai mentionné précédemment, l'apprentissage basé sur les tutoriels ne doit pas être confondu avec être dans l'enfer des tutoriels. L'apprentissage basé sur les tutoriels implique d'apprendre quelque chose de nouveau en consommant du contenu de tutoriel et ensuite utiliser les nouvelles connaissances pour construire quelque chose d'unique. Cette méthode d'apprentissage est utile.

L'apprentissage basé sur les tutoriels a des avantages, dont certains sont :

  • Contenu structuré - Les tutoriels sont généralement créés de manière organisée. Et avoir ce contenu structuré facilite l'apprentissage de certaines choses, par exemple quelqu'un qui apprend un langage de programmation pour la première fois.
  • Différentes perspectives - L'apprentissage basé sur les tutoriels peut donner un aperçu merveilleux de la façon dont différents langages/technologies fonctionnent ensemble de manières que vous n'auriez peut-être pas imaginées. Vous voyez comment les autres résolvent un problème ou construisent quelque chose différemment de ce que vous auriez fait.
  • Accès rapide aux connaissances - Vous pouvez rapidement résoudre un problème ou construire quelque chose lorsqu'il y a un exemple de quelqu'un qui a fait la même chose.

Ce sont quelques avantages de l'apprentissage basé sur les tutoriels. Rappelez-vous simplement que vous devez être prudent car une dépendance excessive aux tutoriels est ainsi que vous tombez dans la zone de confort de l'enfer des tutoriels.

Si vous n'êtes pas sûr de savoir si vous êtes dans l'enfer des tutoriels ou si vous êtes simplement quelqu'un avec une préférence pour l'apprentissage basé sur les tutoriels, voici un test simple : regardez le dernier projet que vous avez construit. Pouvez-vous expliquer ce que font les outils que vous avez utilisés ? Serez-vous capable d'expliquer pourquoi vous avez choisi ces outils ou cette pile technologique particulière ? Pouvez-vous reconstruire ce projet sans consulter de tutoriels ?

Si votre réponse à l'une de ces questions est non, vous pourriez être dans l'enfer des tutoriels, et il est temps d'en sortir.

Maintenant, il est temps de parler de l'apprentissage par projet.

Qu'est-ce que l'apprentissage par projet ?

L'apprentissage par projet est un type d'apprentissage qui prend une approche pratique pour comprendre de nouveaux concepts.

C'est un type d'apprentissage où vous construisez des projets en utilisant un nombre minimal de tutoriels, en vous appuyant plutôt sur vos connaissances existantes, votre capacité à résoudre de nouveaux problèmes, votre capacité à apprendre en cours de route, et votre détermination.

Il y a quelques différences entre l'apprentissage par projet et l'apprentissage basé sur les tutoriels, bien qu'il y ait des éléments de l'un dans l'autre.

L'apprentissage par projet implique :

  • Prendre une idée ou un problème que vous avez et construire cette idée ou la solution à ce problème seul ou en collaboration avec d'autres.
  • Décider des outils à utiliser pour exécuter ce projet.
  • Construire des projets basés sur l'étendue de votre créativité, de votre environnement et de votre expérience.

Avantages de l'apprentissage par projet

L'apprentissage par projet a de nombreux avantages. Certains d'entre eux sont :

  • Liberté pour la créativité - Avec l'apprentissage par projet, vous décidez de votre projet, de sa portée et des outils à utiliser.
  • Meilleure compréhension des outils - Vous aurez une meilleure maîtrise des frameworks et des technologies que vous implémentez dans votre projet. Vous choisissez les outils en fonction des besoins de votre projet et non parce que quelqu'un vous l'a dit.
  • Opportunités de se connecter avec des personnes - Explorer différentes solutions à des problèmes peut vous mener à des endroits inattendus. Vous pourriez vous connecter avec des personnes, apprendre d'elles, et dans mon cas, cela m'a conduit à ma première contribution open-source.
  • Développer des compétences utiles - L'apprentissage par projet vous aide à développer les compétences dont vous avez besoin pour aborder d'autres projets. Vous développez des compétences de débogage grâce à une exposition répétée aux bugs, vous vous habituez aux erreurs, vous trouvez comment les résoudre et vous apprenez à les éviter plus tard.
  • Renforce la confiance - L'une des meilleures choses concernant l'apprentissage par projet est le fait que vous possédez réellement votre projet. Vous pouvez expliquer votre projet à n'importe qui, vous pouvez justifier votre choix d'outils, et c'est une excellente source de confiance. Passer d'une idée à un déploiement est un sentiment merveilleux, peu importe la taille du projet.

Ce ne sont que quelques avantages de l'apprentissage par projet. Il y a beaucoup plus de bénéfices à mettre en œuvre l'apprentissage par projet en tant que développeur.

Maintenant que vous avez vu les avantages de l'apprentissage par projet, abordons quelques points qui peuvent être déroutants pour quelqu'un cherchant à commencer l'apprentissage par projet.

Obstacles courants à l'apprentissage par projet

L'apprentissage par projet n'est pas aussi simple que son nom le suggère. Donc dans cette section, nous parlerons de certains obstacles et sources de découragement qui peuvent provenir de l'apprentissage par projet et comment surmonter ces obstacles.

Où puis-je obtenir des idées de projet ?

C'est probablement le plus grand obstacle que rencontrent les nouveaux développeurs lorsqu'ils commencent l'apprentissage par projet - et les réponses sont en réalité simples.

Le premier et le plus fiable endroit où vous pouvez obtenir des idées de projet est votre vie et votre environnement.

Y a-t-il un problème que vous avez et qui n'a pas de solutions existantes ? Construisez la vôtre.

Les gens sous-estiment souvent combien ils peuvent apprendre simplement en construisant quelque chose qui résonne avec eux et leur environnement.

La deuxième source d'idées de projet est le logiciel que vous utilisez déjà. Y a-t-il une amélioration que vous aimeriez apporter ? Construisez votre version.

Parlez à vos amis et à votre famille. Y a-t-il un problème qu'ils aimeraient résoudre en utilisant un logiciel ? Construisez-le pour eux.

Voici quelques ressources remplies de projets adaptés aux débutants et intermédiaires que vous pouvez construire :

  1. Idées de projets Python
  2. Plus d'idées de projets Python :)
  3. Idées de projets JavaScript
  4. Idées de projets React

Je suis inexpérimenté et ne sais pas par où commencer

Commencer un nouveau projet peut être intimidant, surtout si c'est quelque chose que vous n'avez jamais fait auparavant - mais c'est le but et la beauté de la construction par projet.

L'apprentissage par projet vous pousse à faire des recherches en lisant la documentation, en écrivant vos idées, en trouvant de nouveaux bugs, puis en les résolvant. Vous apprenez ce qui fonctionne et ce qui ne fonctionne pas, et vous passerez de inexpérimenté à beaucoup moins inexpérimenté rapidement.

Un conseil que j'ai trouvé utile lorsque je commence un nouveau projet est de le décomposer pièce par pièce, d'écrire ce que ce projet impliquera, d'écrire ce que vous pouvez implémenter sans aide, et de commencer à partir de là.

Par exemple, êtes-vous nouveau en JavaScript et construisez une liste de tâches qui ajoute des tâches, affiche des tâches et supprime des tâches ? La fonctionnalité d'ajout de tâches semble-t-elle un peu difficile ? Pas de problème, commencez par utiliser vos connaissances existantes en HTML et CSS pour construire l'interface utilisateur de votre idée et ajoutez progressivement des fonctionnalités mineures.

Par exemple, vous pourriez décomposer la fonctionnalité en petites étapes comme ceci :

  1. Tout d'abord, vous aurez besoin d'un input où vous pourrez taper du texte.
  2. Ensuite, vous aurez besoin d'un bouton pour ajouter les tâches. Pour cela, vous devez créer un button avec un id en HTML et styliser le bouton en utilisant CSS.
  3. Ensuite, vous utiliserez JavaScript pour donner au button un événement click qui enregistre un message dans la console chaque fois que le bouton est cliqué.
  4. Après cela, vous ferez en sorte que votre bouton enregistre ce qui est tapé dans l'input vers une console.
  5. Enfin, vous créerez une div pour afficher les tâches et ferez en sorte que votre bouton ajoute le texte à cette div.

Cela peut prendre quelques étapes de plus que cela, mais vous remarquerez comment décomposer la tâche l'a rendue plus simple et vous a aidé à voir ce que vous savez et ce que vous ne savez pas.

Décomposer un problème en morceaux plus petits vous aidera à connaître le point de départ et vous donnera une carte claire des actions à entreprendre. Pour chaque problème que vous résolvez, vous développerez lentement votre expérience et gagnerez la confiance nécessaire pour faire des choses plus grandes.

"Tout le monde doit commencer quelque part. Vous avez tout votre avenir devant vous. La perfection ne se produit pas du jour au lendemain." - Haruki Murakami.

Que faire si je suis bloqué et ne peux pas trouver la solution ?

Parfois, malgré nos meilleurs efforts, nous ne pouvons tout simplement pas trouver la solution à un problème, même après l'avoir décomposé en petits morceaux et avoir lu la documentation (assurez-vous de vraiment lire la documentation).

Si vous vous trouvez dans cette situation, voici quelques étapes que vous pouvez suivre :

  • Faites une pause - Parfois, votre cerveau a juste besoin d'un peu de repos. Faire une promenade ou faire quelque chose de relaxant ou faire une sieste pourrait être le carburant dont votre cerveau a besoin.
  • Lisez votre code à voix haute - Lire votre code à voix haute et expliquer chaque ligne au fur et à mesure que vous la lisez peut vous aider à connecter subconscemment les points entre là où vous êtes et là où vous voulez aller. (Cela est souvent appelé "Rubber-Duck Debugging".)
  • Obtenez de l'aide des autres - Des endroits comme le forum de la communauté freeCodeCamp, Stack Overflow et Reddit auront probablement les réponses dont vous avez besoin - alors n'ayez pas peur de demander de l'aide là-bas.
  • Demandez à l'IA - Cela devrait être le dernier recours, mais puisque l'IA est un outil utile qui est là pour rester, il serait étrange de l'exclure. Les outils d'IA tels que ChatGPT peuvent fournir des solutions à votre problème et expliquer la logique derrière cela. Soyez très prudent avec l'utilisation de l'IA, surtout si vous n'avez pas une bonne compréhension de votre problème. Les réponses de l'IA peuvent être un fruit empoisonné, vous pourriez finir par aggraver votre situation si vous acceptez aveuglément les réponses de l'IA sans comprendre. Assurez-vous simplement de vérifier les faits.

Ces méthodes de résolution de problèmes sont connues sous le nom de débogage et vous pouvez en apprendre davantage sur le débogage en utilisant cet article.

Mon idée a déjà été réalisée/n'est pas impressionnante

Il peut être tentant d'abandonner une idée de projet parce qu'elle est courante. Mais rappelez-vous que le but de construire un projet pour l'apprentissage n'est pas de rivaliser avec les autres pour l'originalité.

Construire un projet devrait vous aider à développer vos compétences et vos connaissances. Donc ne vous inquiétez pas si vous voyez des milliers d'autres personnes qui ont construit votre idée. Rappelez-vous que ce qui distingue la vôtre, c'est le problème qu'elle résout et ce qu'elle vous apprend.

Comment savoir si je fais la bonne chose ?

Le processus de construction du projet lui-même vous montrera souvent si vous êtes sur la bonne voie (si cela ne fonctionne pas, vous savez que quelque chose ne va pas). Mais si vous avez besoin d'un autre regard ou d'une autre perspective sur votre projet, essayez de demander de l'aide. Par exemple, vous pouvez simplement poster une capture d'écran/vidéo/lien de votre projet sur les réseaux sociaux et demander poliment des commentaires. Il y a de bonnes chances que quelqu'un vous contacte et vous donne des conseils.

Lorsque vous recevez des commentaires, ne les prenez pas comme signifiant que votre projet est terrible ou que vous faites quelque chose de mal. Au lieu de cela, utilisez ces commentaires pour améliorer votre projet. Avec chaque conseil, vous progresserez.

Comment rester motivé tout en construisant des projets ?

L'apprentissage basé sur les tutoriels donne une bonne sensation. Il y a un sentiment d'accomplissement qui vient de la fin d'un tutoriel, surtout un tutoriel long. Ce sentiment pourrait vous tenter de passer au tutoriel suivant, puis à un autre. C'est une façon facile de retourner au confort chaud de l'enfer des tutoriels, donc vous devez savoir quand vous arrêter.

Avec l'apprentissage par projet, il y aura des moments où vous rencontrerez un problème apparemment impossible et vous sentirez découragé et proche d'abandonner. Il y aura aussi des moments où vous résoudrez un problème et vous sentirez bien en voyant vos compétences en résolution de problèmes s'améliorer.

La meilleure façon de continuer est de construire quelque chose dont vous avez besoin et que vous aimez construire. Ainsi, si vous êtes découragé, surmonter le découragement sera plus facile.

Comment planifier votre projet

Et si vous avez déjà une idée - comment commencer ? La première étape n'est pas d'ouvrir immédiatement votre éditeur et de commencer à écrire du code. J'ai mentionné dans une section précédente que la première étape pour construire un projet est d'écrire vos idées.

Écrire vos idées vous permet de :

  • Planifier vos activités
  • Comprendre le projet
  • Ajouter plus d'idées avant de construire
  • Décider des meilleures étapes pour le construire
  • Choisir un cadre temporel pour le construire

Se lancer directement dans le développement dès que vous avez une idée pourrait éventuellement mener au découragement, surtout si vous ajoutez et supprimez des fonctionnalités fréquemment et que le projet traîne plus longtemps que vous ne l'aviez pensé. Écrire vos idées peut sembler vieux jeu et inutile, mais faites-moi confiance - vous serez heureux de l'avoir fait une fois que vous commencerez à construire.

Pendant que vous construisez votre projet, vous pourriez avoir de nouvelles idées que vous souhaitez implémenter à mesure que vous tombez amoureux de votre idée.

Écrivez ces idées immédiatement afin de ne pas les oublier. Maintenant, construisez les fonctionnalités principales que vous aviez en tête au début et ajoutez les nouvelles fonctionnalités plus tard. En gardant les nouvelles idées pour plus tard, vous resterez concentré au lieu d'être distrait par la planification d'ajouter autre chose à mi-chemin.

Découvrez quel type d'apprentissage fonctionne pour vous

Il y a des personnes qui aiment apprendre progressivement en construisant les plus petites parties d'un projet, puis en gagnant progressivement de l'élan et en passant à des choses plus grandes. Il y a aussi ceux qui préfèrent plonger directement dans les choses complexes.

Par exemple, certains développeurs front-end pourraient commencer leur parcours en construisant une simple liste de tâches, puis passer progressivement à des choses plus complexes. Mais d'autres préfèrent commencer par construire quelque chose de plus complexe comme le clone complet d'un site web populaire et apprendre en cours de route.

Bien qu'il soit plus facile de commencer petit et de progresser progressivement, rappelez-vous que la programmation est un marathon, pas un sprint. Peu importe le temps que cela prend, l'essentiel est de comprendre profondément ce que vous apprenez et de vous amuser en le faisant.

Conclusion

L'apprentissage par projet est une méthode d'apprentissage formidable, et les avantages l'emportent largement sur les inconvénients ou les défis.

Vous avez vu comment commencer avec l'apprentissage par projet, les avantages de l'apprentissage par projet et les sources courantes de découragement lorsque vous commencez. Donc, si vous ne mettez pas déjà activement en œuvre l'apprentissage par projet, utilisez cet article comme guide.

Votre méthode préférée d'apprentissage par projet vous appartient entièrement, que vous alliez lentement et augmentiez progressivement le rythme ou que vous vous lanciez directement dans les choses les plus ambitieuses - cela n'a pas vraiment d'importance. Tout ce qui compte, c'est que vous restiez hors de l'enfer des tutoriels et que vous mettiez activement en œuvre l'apprentissage par projet. En faisant cela, vous atteindrez et dépasserez finalement les objectifs que vous vous êtes fixés.