Les principaux piliers de l'apprentissage de la programmation — et pourquoi les débutants devraient les maîtriser.
Les principaux piliers de l'apprentissage de la programmation et pourquoi les débutants devraient les maîtriser
Les principaux piliers de l’apprentissage de la programmation et pourquoi les débutants devraient les maîtriser.

Je programme depuis plus de 20 ans. Durant cette période, j’ai eu le plaisir de travailler avec de nombreuses personnes dont j’ai beaucoup appris. J’ai également travaillé avec de nombreux étudiants fraîchement sortis de l’université, avec lesquels j’ai dû assumer le rôle d’enseignant ou de mentor. Je programme depuis plus de 20 ans. J’ai eu le plaisir de travailler avec beaucoup de gens pendant cette période et j’ai beaucoup appris d’eux. Je travaille également avec de nombreux étudiants fraîchement sortis de l’université et je dois assumer le rôle d’enseignant ou de mentor.
Dernièrement, j’ai été impliqué en tant que formateur dans un programme qui enseigne le codage aux débutants absolus. Récemment, j’ai travaillé en tant que formateur sur un projet d’enseignement de la programmation aux débutants absolus.
Apprendre à programmer est difficile. Je trouve souvent que les cours universitaires et les bootcamps négligent des aspects importants de la programmation et adoptent de mauvaises approches pour enseigner aux débutants. Apprendre à programmer est difficile. Je trouve souvent que les cours universitaires et les bootcamps ignorent des aspects importants de la programmation et adoptent une mauvaise approche pour enseigner aux débutants.
Je souhaite partager les cinq piliers de base sur lesquels je pense qu’un cours de programmation réussi devrait s’appuyer. Comme toujours, j’aborde le contexte des applications Web grand public. Je souhaite partager les cinq piliers fondamentaux sur lesquels je pense qu’un cours de programmation réussi devrait être construit. Comme d’habitude, je travaille dans le contexte d’une application web grand public.
L’objectif d’un débutant est de maîtriser les fondamentaux de la programmation et de comprendre l’importance des bibliothèques et des frameworks. L’objectif pour les débutants est de maîtriser les bases de la programmation et de comprendre l’importance des bibliothèques et des frameworks.
Les sujets avancés tels que le cloud, les opérations en général ou les outils de build ne doivent pas faire partie du programme. Je suis également sceptique en ce qui concerne les modèles de conception. Ils présupposent une expérience que les débutants n’ont jamais. Les sujets avancés tels que le cloud computing, les opérations générales ou la création d’outils ne devraient pas faire partie du programme. Je suis également sceptique en ce qui concerne les modèles de conception. Ils supposent que les débutants n’ont jamais eu d’expérience.
Voyons donc par où devraient commencer les nouveaux programmeurs. Voyons par où devraient commencer les nouveaux programmeurs.
Développement piloté par les tests (TDD) Développement piloté par les tests (TDD)

TDD apporte de nombreux avantages. Malheureusement, il s’agit d’un sujet avancé pour lequel les débutants ne sont pas entièrement prêts. TDD apporte de nombreux avantages. Malheureusement, il s’agit d’un sujet avancé pour lequel les débutants ne sont pas tout à fait prêts.
Les débutants ne devraient pas passer de tests. Ce serait trop pour leurs niveaux de compétences de base. Au lieu de cela, ils devraient apprendre à utiliser et à travailler avec les tests. Les débutants ne devraient pas passer de tests. C’est trop élevé pour leur niveau de compétence de base. Au lieu de cela, ils devraient apprendre à utiliser et à utiliser les tests.
Chaque cours de programmation doit être centré sur des exercices. J’étends mes exercices avec des tests unitaires et fournis aux étudiants un environnement déjà configuré pour exécuter ces tests. Chaque cours de programmation doit être axé sur des exercices. J’ai prolongé mon exercice avec des tests unitaires et fourni aux étudiants un environnement pour exécuter ces tests.
Il suffit aux étudiants d’écrire leur code puis de regarder les lumières du testeur passer du rouge au vert. La gamification qui en résulte est un effet secondaire intéressant. Tout ce que les étudiants ont à faire est d’écrire leur code et de regarder le voyant du testeur passer du rouge au vert. La gamification qui en résulte est un effet secondaire intéressant.
Par exemple : Si la technologie sélectionnée est Spring, je propose les exercices et tests au sein d’un projet Spring. Les étudiants n’ont pas besoin de savoir quoi que ce soit sur le printemps. Il leur suffit de connaître l’emplacement des exercices et le bouton permettant de déclencher les tests. Par exemple : si la technologie de choix est Spring, je proposerai des exercices et des tests dans le projet Spring. Les étudiants n’ont pas besoin de connaître le printemps. Il leur suffit de savoir où se trouvent les exercices et le bouton qui déclenche le test.
De plus, les étudiants doivent savoir comment utiliser un débogueur et disposer d’une boucle de lecture-évaluation-impression (REPL) à portée de main. La capacité d’analyser le code pendant l’exécution et de disposer d’un terrain de jeu pour de petites expériences est essentielle dans TDD. De plus, les étudiants doivent savoir comment utiliser un débogueur et disposer d’une boucle de lecture-évaluation-impression (REPL) à portée de main. Dans TDD, la capacité d’analyser le code au moment de l’exécution et de fournir une place pour de petites expériences est essentielle.
L’objectif principal est de garantir que les étudiants n’auront pas à apprendre les comportements de base du TDD après avoir acquis les compétences de base en programmation. Changer les habitudes plus tard dans la carrière des étudiants sera beaucoup plus difficile que d’apprendre ces habitudes maintenant. C’est pourquoi ils devraient vivre et respirer les tests unitaires dès le début. L’objectif est de garantir que les étudiants n’ont pas besoin d’apprendre les comportements de base du TDD après avoir maîtrisé les compétences de base en programmation. Changer ses habitudes plus tard dans la carrière d’un étudiant est beaucoup plus difficile que de les apprendre maintenant. C’est pourquoi ils doivent être testés dès le début dans des unités de survie et de respiration.
Plus tard dans leur vie professionnelle, ils devraient avoir une antipathie pour les projets sans tests unitaires. Ils devraient intuitivement considérer l’absence de tests unitaires comme un anti-modèle. Plus tard dans leur carrière, ils devraient être mécontents des projets sans tests unitaires. Ils devraient intuitivement considérer le manque de tests unitaires comme un anti-modèle.
Les fondamentaux d’abord Les fondamentaux d’abord

J’entends très souvent dire que les débutants devraient immédiatement commencer avec un cadre. C’est comme apprendre aux gens à conduire en les plaçant dans une voiture de rallye et en leur demandant d’éviter le survirage. Cela ignore simplement le fait qu’ils confondent toujours le frein avec l’accélérateur. J’entends souvent dire que les débutants devraient commencer immédiatement avec un framework. C’est comme apprendre aux gens à conduire, les mettre dans une voiture de rallye et leur demander d’éviter le survirage. Cela ignore complètement le fait qu’ils confondent toujours le frein avec l’accélérateur.La même chose s’applique lorsque nous commençons les étudiants avec un framework comme Angular. Les débutants doivent d’abord comprendre les principes fondamentaux de la programmation. Ils doivent se familiariser avec les éléments de base et ce que signifie écrire du code avant de pouvoir utiliser celui de quelqu’un d’autre. Il en va de même pour les frameworks comme Angular. Les débutants doivent d’abord comprendre les bases de la programmation. Avant d’utiliser le code d’autres personnes, ils doivent se familiariser avec les éléments de base et ce que signifie écrire du code.
Les concepts de fonction, de variable, de condition et de boucle sont complètement étrangers aux novices. Ces quatre éléments constituent les bases de la programmation. Tout ce qui constitue un programme repose sur eux. Les notions de fonctions, de variables, de conditions et de boucles sont totalement étrangères aux débutants. Ces quatre éléments constituent la base de la programmation. Tous les composants du programme en dépendent.
Les étudiants entendent ces concepts pour la toute première fois, mais il est de la plus haute importance qu’ils les maîtrisent. Si les élèves ne maîtrisent pas les fondamentaux, tout ce qui s’ensuit ressemble à de la magie et mène à la confusion et à la frustration. Les étudiants entendent ces concepts pour la première fois, mais il est très important qu’ils les maîtrisent. Si les élèves ne maîtrisent pas les bases, tout ce qui suit peut sembler magique, entraînant confusion et frustration.
Les enseignants devraient consacrer plus de temps à ces principes fondamentaux. Mais malheureusement, beaucoup avancent beaucoup trop vite. Le problème est que certains enseignants ont du mal à se mettre dans la peau d’un élève. Ils programment depuis des lustres et ont oublié à quels types de problèmes un débutant doit faire face. C’est assez similaire à un pilote de rallye professionnel. Il ne peut pas imaginer que quelqu’un doive réfléchir avant de freiner. Il le fait simplement automatiquement. Les enseignants devraient consacrer plus de temps à bâtir sur ces fondations. Mais malheureusement, beaucoup de gens progressent trop vite. Le problème est que certains enseignants ont du mal à se mettre à la place de leurs élèves. Ils programment depuis si longtemps qu’ils ont oublié les types de problèmes auxquels les débutants doivent faire face. C’est très similaire à un pilote de rallye professionnel. Il ne pouvait pas imaginer que quiconque doive réfléchir avant de freiner. Il le fait simplement mécaniquement.
Je conçois mes exercices de manière à ce qu’ils soient stimulants mais résolubles dans un laps de temps raisonnable en utilisant une combinaison des quatre éléments principaux. Je conçois mes exercices de manière à ce qu’ils soient stimulants mais résolubles dans un laps de temps raisonnable en utilisant une combinaison des quatre éléments principaux.
Un bon exemple est un convertisseur de nombres romains et arabes. Ce défi demande de la patience de la part des étudiants. Une fois qu’ils ont appliqué avec succès les quatre éléments pour résoudre le défi, leur motivation est également grandement renforcée. Un bon exemple est le convertisseur de chiffres romains en chiffres arabes. Ce défi demande de la patience de la part des élèves. Une fois qu’ils auront appliqué avec succès ces quatre éléments pour résoudre un défi, leur motivation augmentera également de manière significative.
Les fondamentaux sont importants. Ne continuez pas tant qu’ils ne sont pas réglés. Les bases sont très importantes. Ne partez pas avant qu’ils aient réglé le problème.
Bibliothèques et frameworks Bibliothèques et frameworks

Une fois que les étudiants ont passé beaucoup de temps à coder, ils doivent apprendre que la plupart du code existe déjà sous la forme d’une bibliothèque ou d’un framework. Il s’agit plus d’un état d’esprit que d’un modèle. Une fois que les étudiants ont passé beaucoup de temps à coder, ils doivent comprendre que la plupart du code existe déjà sous forme de bibliothèques ou de frameworks. Ce n’est pas tant un modèle qu’un état d’esprit.
Comme je l’ai déjà écrit : les développeurs modernes connaissent et choisissent la bonne bibliothèque. Ils ne passent pas des heures à écrire eux-mêmes une version boguée. Comme je l’ai déjà écrit : les développeurs modernes connaissent et choisissent les bonnes bibliothèques. Ils ne passent pas des heures à écrire eux-mêmes des versions boguées.
Pour réussir cette transition de mentalité, les exemples de la « phase fondamentale » doivent pouvoir être résolus en utilisant des bibliothèques bien connues comme Moment.js, Jackson, Lodash ou Apache Commons. Pour que ce changement de mentalité réussisse, les exemples de la « phase de base » doivent pouvoir être résolus en utilisant des bibliothèques bien connues telles que Moment. js, Jackson, Lodash ou Apache Commons.
De cette façon, les étudiants comprendront immédiatement la valeur des bibliothèques. Ils se sont penchés sur ces problèmes complexes. Ils découvrent maintenant qu’une bibliothèque résout l’exercice en un rien de temps. De cette façon, les étudiants comprendront immédiatement la valeur de la bibliothèque. Ils sont aux prises avec des problèmes complexes. Ils ont maintenant trouvé une bibliothèque capable de résoudre ce problème en peu de temps.
Semblable à TDD, les étudiants devraient se méfier lorsque leurs collègues se vantent de leur bibliothèque de gestion d’état qu’ils ont eux-mêmes créée, ce qui rend Redux inutile. Semblable à TDD, les étudiants doivent se méfier lorsque leurs collègues se vantent d’avoir créé une bibliothèque de gestion d’état qui rend Redux inutile.
En ce qui concerne les frameworks, les étudiants n’auront aucun problème à comprendre l’importance une fois qu’ils auront compris l’utilité des bibliothèques. En ce qui concerne les frameworks, une fois que les étudiants auront compris l’utilité des bibliothèques, ils n’auront aucun mal à comprendre leur importance.
Selon la durée du cours, il peut être difficile de consacrer du temps aux frameworks. Mais comme je l’ai déjà souligné, l’aspect le plus important est de faire évoluer l’état d’esprit de l’étudiant, passant de la programmation à partir de zéro à l’exploration et à l’utilisation des bibliothèques. Selon la durée du cours, il peut être difficile de consacrer du temps au cadre. Mais comme je l’ai déjà souligné, l’aspect le plus important est de changer l’état d’esprit de l’étudiant, passant de la programmation à partir de zéro à l’exploration et à l’utilisation des bibliothèques.
Je n’ai pas ajouté d’outils à ce pilier, car ils ne sont utiles qu’aux développeurs expérimentés. À ce stade précoce, les étudiants n’ont pas besoin d’apprendre à intégrer et à configurer des outils. Je n’ai pas ajouté d’outils à ce pilier car ils ne sont utiles qu’aux développeurs expérimentés. À ce stade précoce, les étudiants n’ont pas besoin d’apprendre à intégrer et à configurer des outils.
Maître & Apprenti Maître et Apprenti
Au début de la vingtaine, je voulais apprendre à jouer du piano. Je ne voulais pas de professeur et je pensais pouvoir l’apprendre par moi-même. Cinq ans plus tard, j’ai consulté un tuteur professionnel. Eh bien, que puis-je dire ? J’ai appris plus en 1 mois qu’au cours des cinq années précédentes.
Au début de la vingtaine, je voulais apprendre à jouer du piano. Je ne veux pas de professeur, je pense que je peux apprendre moi-même. Cinq ans plus tard, j’ai consulté un mentor professionnel. Que puis-je dire ? J’apprends plus en un mois qu’il y a cinq ans.
Mon professeur de piano m’a signalé des erreurs dans mon jeu que je n’entendais pas et m’a fait prendre conscience de choses d’interprétation que je n’aurais jamais imaginées. Après tout, elle m’a inculqué un état d’esprit pour la musique et l’art, qui étaient tous deux hors de portée pour moi en tant que personne technique. Mon professeur de piano m’a signalé des erreurs que je n’entendais pas lorsque je jouais et m’a fait réaliser quelque chose d’interprétatif auquel je n’avais jamais pensé. Après tout, elle m’a inculqué une pensée musicale et artistique, toutes deux hors de ma portée en tant que technicienne.
C’est la même chose en programmation. Si quelqu’un n’a aucune expérience en programmation, l’auto-apprentissage peut être une mauvaise idée. Même s’il existe de nombreuses réussites, je m’interroge sur l’efficacité d’agir seul. Il en va de même pour la programmation. Si quelqu’un n’a aucune expérience en programmation, ce n’est probablement pas une bonne idée de l’apprendre par soi-même. Bien qu’il existe de nombreuses réussites, je doute de l’efficacité d’une telle action seule.
Il devrait plutôt y avoir une relation « maître et apprenti ». Au début, le maître donne des règles que l’apprenti doit suivre – aveuglément ! Le maître peut expliquer les règles, mais généralement le raisonnement dépasse la compréhension de l’apprenti. Au lieu de cela, il devrait y avoir une « relation mentor-disciple ». Au début, le maître donne à l’apprenti des règles qui doivent être respectées : suivez-les aveuglément ! Le maître peut expliquer les règles, mais généralement le raisonnement est incompréhensible pour l’apprenti.
Ces règles internalisées constituent une sorte de filet de sécurité. Si l’on se perd, on a toujours un terrain sûr où retourner. Ce règlement intérieur constitue une sorte de filet de sécurité. Si une personne est perdue, elle peut toujours trouver un endroit sûr.
L’enseignement ne doit pas être un monologue. Le maître doit s’occuper de chaque étudiant individuellement. Il doit vérifier le fonctionnement des étudiants, donner des conseils et adapter la rapidité du cours à leur progression. L’enseignement ne doit pas être un monologue. Le directeur doit traiter chaque élève individuellement. Il doit vérifier le fonctionnement des étudiants, donner des conseils et adapter le rythme des cours en fonction de leurs progrès.
Une fois que les apprentis atteignent un certain niveau de maîtrise, ils doivent être encouragés à explorer de nouveaux territoires. Le maître évolue vers un mentor qui partage la « sagesse » et est ouvert aux discussions. Une fois que les apprentis atteignent un certain niveau de maîtrise, ils devraient être encouragés à explorer de nouveaux domaines. Le gourou devient un mentor qui partage la « sagesse » et est ouvert à la discussion.
Défi et motivation Défi et motivation

« Créons un clone de Facebook ! » Cela ne vient pas d’un PDG soutenu par une horde de développeurs de logiciels expérimentés et un budget de plusieurs millions d’euros. Il s’agit d’un exercice issu d’un cours d’introduction pour programmeurs. Une telle entreprise est pratiquement impossible. Pire encore, les étudiants sont plongés au pays des merveilles et trompés en leur faisant croire qu’ils possèdent des compétences qui sont vraiment hors de leur portée. “Créons un clone de Facebook !” Ce n’est pas ce que dit un PDG soutenu par une équipe de développeurs de logiciels expérimentés et un budget de plusieurs millions d’euros. Il s’agit d’un exercice d’un cours d’introduction à la programmation. Un tel travail est pratiquement impossible. Pire encore, les étudiants sont transportés au pays des merveilles et amenés à croire qu’ils possèdent des compétences qui dépassent vraiment leurs capacités.
L’enseignant en est sans doute conscient, mais il crée de tels exercices pour des raisons de motivation. Il ne fait aucun doute que l’enseignant le sait, mais il existe une raison motivationnelle pour créer un tel exercice.
Le but principal d’un exercice n’est pas de divertir. Il doit être créé autour d’une technique particulière et doit aider les élèves à comprendre cette technique. Le but principal de la pratique n’est pas le divertissement. Il doit être créé autour d’une technologie spécifique et doit aider les étudiants à comprendre cette technologie.
La motivation est bonne, mais pas au détriment du contenu. La programmation n’est pas facile. Si les étudiants n’ont pas de motivation intrinsèque, le codage n’est peut-être pas la solution. La motivation est bonne, mais pas au détriment du contenu. La programmation n’est pas facile. Si les étudiants ne sont pas intrinsèquement motivés, écrire du code n’est peut-être pas le bon choix.
Les débutants devraient découvrir ce que signifie être un développeur professionnel. Ils doivent savoir ce qui les attend avant d’investir de nombreuses heures. Les débutants devraient découvrir ce que signifie être un développeur professionnel. Ils doivent savoir ce qui les attend avant d’investir beaucoup de temps.
Par exemple, de nombreuses applications métiers s’articulent autour de formulaires et de grilles complexes. Leur création est une compétence importante que les exercices peuvent transmettre. Créer une application similaire à Facebook n’est peut-être pas la meilleure leçon à apprendre immédiatement pour les étudiants. Par exemple, de nombreuses applications métiers sont centrées sur des formulaires et des grilles complexes. Leur création est une compétence importante que la pratique peut enseigner. Créer une application de type Facebook n’est peut-être pas le meilleur cours à suivre immédiatement pour les étudiants.
De même, un non-programmeur pourrait être surpris du peu de lignes de code qu’un développeur écrit par jour. Il y a même des moments où nous supprimons du code ou n’obtenons rien. De même, les non-programmeurs pourraient être surpris par le peu de lignes de code que les développeurs écrivent chaque jour. Il y a même des moments où nous supprimons du code ou ne faisons rien.
Pourquoi? Parce que les choses tournent mal tout le temps. Nous passons des heures interminables à corriger des bugs extrêmement étranges qui se révèlent être une simple faute de frappe. Certains outils peuvent ne pas fonctionner simplement parce qu’une bibliothèque a reçu une mise à niveau mineure. Ou le système plante parce que quelqu’un a oublié d’ajouter un fichier à git. La liste peut s’allonger encore et encore. Pourquoi? Parce que les choses tournent toujours mal. Nous avons passé d’innombrables heures à corriger des bugs vraiment étranges, pour finalement nous retrouver avec une simple erreur d’impression. Certains outils peuvent ne pas fonctionner correctement simplement parce qu’une bibliothèque a subi une mise à niveau mineure de sa version. Ou le système plante parce que quelqu’un a oublié d’ajouter un fichier à git. La liste est longue.Les étudiants devraient profiter de ces expériences. Un exercice ciblant une bibliothèque inconnue sous pression de temps pourrait être exactement la bonne chose. ;) Les étudiants devraient profiter de ces expériences. Un exercice ciblant les bibliothèques inconnues sous pression de temps pourrait s’avérer opportun. ,)
Le soleil ne brille pas toujours dans la vraie vie. Les débutants doivent être bien préparés à la réalité de la programmation. Le soleil ne brille pas toujours dans la vraie vie. Les débutants doivent être bien préparés aux réalités de la programmation.
Conseil finalConseil final
Dernier point mais non le moindre : on ne peut pas devenir programmeur professionnel en deux semaines, deux mois ou même un an. Cela demande du temps et de la patience. Dernier point mais non le moindre : on ne peut pas devenir programmeur professionnel en deux semaines, deux mois ou même un an. Cela demande du temps et de la patience.
Les formateurs ne doivent pas se précipiter ni faire de fausses promesses. Ils doivent se concentrer sur la compréhension des concepts par les élèves et ne pas avancer trop vite. Les formateurs ne doivent pas précipiter les choses ni faire de fausses promesses. Ils devraient se concentrer sur la compréhension des concepts par les élèves plutôt que de progresser trop rapidement.
Texte original : https://medium.freecodecamp.org/the-main-pillars-of-learning-programming-and-why-beginners-should-master-them-e04245c17c56
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home