1. Apprentissage basé sur la pratique

Apprentissage Java basé sur la pratique

Il y a des gens qui aiment CodeGym de tout leur cœur, et il y a des gens qui le détestent de tout leur cœur. Mais même le critique le plus vicieux de CodeGym conviendra volontiers qu'il a un nombre impressionnant de tâches. Et la raison pour laquelle il y en a tant est que toute formation CodeGym repose sur la pratique .

La programmation est une compétence. Personne ne dit "Je sais programmer". Chaque programmeur dit : "Je peux programmer". C'est une compétence pratique, comme nager ou jouer aux échecs. Et vous ne pouvez cultiver la compétence que par une pratique constante.

C'est pourquoi tout le cours CodeGym est une séquence de tâches de plus en plus difficiles. Vous commencez par des tâches très simples et primitives et vous terminez par les plus difficiles et les plus intéressantes. La difficulté augmente un peu à chaque niveau. C'est précisément le chemin qui vous mènera à votre objectif de devenir programmeur.


2. Types de tâches

Tout un tas de tâches différentes vous attendent sur CodeGym. Listons les principaux :

Tâches où vous écrivez un programme

Ce sont les tâches les plus importantes du cours. Leur niveau de difficulté varie considérablement : des tâches les plus simples à celles auxquelles vous devrez beaucoup réfléchir.

Le but de ces tâches est d'écrire un programme qui répond aux conditions et exigences spécifiées. La plupart des tâches entrent dans cette catégorie. Pour la commodité des étudiants CodeGym, nous marquons ces tâches en fonction de leur niveau de difficulté : FACILE , MOYEN , DIFFICILE et ÉPIQUE .

Les tâches EPIC sont souvent basées sur du matériel d'apprentissage futur dans des leçons que vous n'avez pas encore débloquées. Ils sont populaires auprès des étudiants de CodeGym qui trouvent que le cours est trop facile pour eux. D'autres peuvent simplement ignorer ces tâches et y revenir plus tard, lorsqu'ils se seront déjà familiarisés avec la théorie pertinente.

Projets

L'inconvénient des tâches ordinaires est qu'elles sont petites. Fait et oublié, comme on dit. Par conséquent, il est rarement possible de les rendre très intéressants. Mais un gros programme est difficile à tester : il y a tout simplement trop de façons de le mettre en œuvre.

C'est pourquoi CodeGym a introduit les tâches de projet - de grandes tâches divisées en 5 à 35 sous-tâches ordinaires. Vous effectuez toutes les sous-tâches de manière séquentielle et vous vous retrouvez avec un programme volumineux.

À la fin de chaque niveau après le niveau 20, il y a une grande tâche de projet, qui est divisée en vingt sous-tâches. Il existe également 6 autres tâches de jeu, qui sont également des projets. Et il y a une tâche de projet pour être accepté dans un stage en ligne. Au total, il y a 27 tâches de projet dans l'ensemble du cours.

Quiz

Pendant longtemps, CodeGym n'avait ni tests ni quiz. Le créateur de CodeGym est d'avis que les tests réussis créent "l'illusion de la connaissance" chez les gens. Les gens ne savent pas vraiment programmer, mais ils sont convaincus du contraire puisqu'ils ont réussi les tests. Ces personnes cessent d'apprendre, car "elles savent déjà tout".

Par la suite, des quiz ont été ajoutés pour permettre aux étudiants de CodeGym d'identifier facilement les lacunes dans leur apprentissage. Il est utile pour les programmeurs de connaître les nuances des choses avec lesquelles ils travaillent quotidiennement dans leur profession.


3. Statuts des tâches

Chaque tâche sur CodeGym a un statut spécial. Le statut peut changer au fur et à mesure que vous résolvez des tâches.

Chaque tâche CodeGym est associée à une leçon. Au départ, vous n'aurez accès à aucune tâche, ce qui signifie que vous ne pourrez pas les résoudre.

Lorsque vous ouvrez la leçon suivante, toutes les tâches de la leçon deviennent disponibles pour être résolues, c'est-à-dire que leur statut passe à "Disponible".

Si vous avez soumis une tâche pour vérification au moins une fois, son statut passe de "Disponible" à "En cours".

Enfin, lorsque vous avez satisfait à toutes les exigences et que le validateur accepte votre soumission, le statut de la tâche passe à "Terminé".

Les utilisateurs avec un abonnement Premium Mentor ont 3 jours supplémentaires pour essayer d'écrire d'autres solutions pour la tâche. Après l'expiration de cette fenêtre de temps supplémentaire, la tâche passe à l'état "Fermé", et cet état ne changera plus.


4. Exigences

Dans les premières années de CodeGym, lorsque vous vérifiiez chaque tâche, vous obteniez un résultat simple : oui ou non. Soit le programme a réussi tous les tests, soit il ne l'a pas fait. Super simple, mais pas super utile.

Au fur et à mesure que les gens apprennent, il est très important qu'ils comprennent ce qu'ils font mal et comment commencer à le faire correctement. En conséquence, il est parfaitement logique que si le serveur n'accepte pas votre solution, vous vous demandiez, eh bien, qu'est-ce qui ne va pas?

Pour obtenir une réponse à cette question, vous avez besoin de quelqu'un pour plonger dans votre solution, l'analyser et vous dire ce qui ne va pas. Cela prendrait beaucoup de temps et coûterait cher. La beauté de la vérification instantanée des tâches est que vous pouvez vous asseoir pour étudier à 2 heures du matin et tout fonctionnera comme n'importe quel autre moment.

C'est pourquoi nous avons réécrit toutes les tâches sur CodeGym. Désormais, chaque tâche a non seulement des conditions de tâche, mais également une liste de 5 à 10 exigences qui étoffent les conditions. Plus important encore, chaque exigence est vérifiée séparément.

Cela signifie que lorsque vous soumettez une tâche pour vérification aujourd'hui, vous obtiendrez une réponse détaillée : à côté de chaque exigence de tâche, vous verrez une icône spéciale indiquant si votre programme satisfait ou non à cette exigence. Exemple:

Exigences

Cette approche simplifie grandement la vie lorsque vous travaillez sur des tâches nécessitant l'écriture de plusieurs classes ou méthodes. Vous pourrez toujours voir quelles méthodes ou classes vous avez écrites correctement et celles que vous n'avez pas écrites.


5. Recommandations

Est-il possible d'améliorer encore les tâches d'une manière ou d'une autre ? Ne serait-il pas formidable si, après chaque vérification, on vous disait exactement ce qui ne va pas dans votre programme et obteniez des conseils sur la façon de le réparer ? Oui, ce serait cool ! Bien devinez quoi? C'est exactement ce que nous faisons sur CodeGym 🙂

Nous détectons des dizaines d'erreurs courantes en vérifiant chaque exigence de tâche. Si votre programme fait une erreur dont le validateur a connaissance, il fait alors une recommandation — un indice sur la façon dont vous pouvez corriger votre solution afin qu'elle réponde à toutes les exigences.

Pensez-y. Il y a maintenant environ 1 200 tâches sur CodeGym, avec un total d'environ 10 000 exigences. Et il y a plusieurs recommandations associées à chaque exigence. Certaines exigences en ont des dizaines. Le validateur de CodeGym est prêt à faire plus de 50 000 recommandations de solutions utilisateur.

De plus, tout cela se produit au fur et à mesure que votre solution est validée, ce qui dans la plupart des cas prend moins d'une seconde. Personne ne pourrait faire ça. Il s'agit d'un véritable mentor virtuel.

Recommandations

6. Communauté

CodeGym se concentre sur un grand nombre de pratiques , qui représentent plus de 80 % de l'ensemble du processus d'apprentissage. Nous avons transformé l'apprentissage en une grande quête engageante (en fait une série de quêtes).

Mais tout le monde est différent : certaines personnes apprennent vite, d'autres plus lentement. Certaines personnes trouvent le nouveau matériel facile, tandis que d'autres le trouvent plus difficile. Mais notre travail est que chacun de nos élèves arrive à la ligne d'arrivée. C'est du moins ce que nous recherchons.

Dans ce monde, les programmeurs ne sont pas seulement quelques millions de personnes qui écrivent du code dans différents langages et créent des startups pendant leur temps libre. Ils forment un réseau mondial, partageant constamment leurs connaissances avec les autres, prêts à répondre aux questions et à vous aider à comprendre des sujets complexes.

La plus grande communauté de développeurs au monde - le site Web StackOverflow - est née de la nécessité pour les programmeurs d'apprendre les uns des autres. Son concept est simple : vous posez une question et n'importe quel programmeur dans le monde peut y répondre. Pratique, non ? 🙂

Chez CodeGym, nous pensons que l'échange de connaissances entre étudiants est extrêmement précieux. Au fur et à mesure que les programmeurs aident les autres, ils grandissent eux-mêmes . Et il n'y a pas de meilleur moyen de comprendre quelque chose soi-même que de l'expliquer à quelqu'un d'autre. C'est pourquoi nous avons créé des sections spéciales sur notre site Web conçues pour donner à tous nos étudiants la possibilité de partager leurs connaissances et de s'entraider à apprendre.

Alors, que faites-vous si vous êtes bloqué sur la dernière tâche ? Rechercher une solution toute faite sur Internet est une mauvaise idée. Bien sûr, vous obtiendrez un crédit pour la tâche si vous copiez simplement la solution de quelqu'un d'autre ou utilisez notre solution correcte. Mais vous ne comblerez pas votre manque de connaissances et cela reviendra certainement vous mordre les fesses à l'avenir.


7. Questions sur les tâches

Les exigences , les recommandations et le mentor virtuel sont super cool. Mais que se passe-t-il si le validateur n'accepte toujours pas votre solution et que vous n'êtes pas sûr du problème ?

Même dans ce cas, il y a encore une issue. Découvrez la section Aide . Dans cette section du site Web, les étudiants de CodeGym peuvent poser des questions sur les tâches, explorer les solutions des autres et également donner des conseils et des astuces. La publication de solutions complètes n'est pas autorisée !

Cela semble très simple et basique, mais c'est en fait assez sophistiqué.

Tout d'abord, chaque question peut avoir une tâche associée . Cela signifie qu'il est inutile de parcourir toutes les questions si vous êtes intéressé par des questions sur une tâche spécifique. Vous pouvez toujours utiliser un filtre pour voir facilement uniquement les questions liées à la tâche qui vous intéresse. Saisissez simplement le nom de la tâche dans la barre de recherche :

Questions sur les tâches

Deuxièmement, si vous cliquez sur le bouton "Aide de la communauté" lors de la résolution d'une tâche, vous serez immédiatement redirigé vers la section Aide, où vous ne verrez que les questions sur la tâche sur laquelle vous travaillez. Si votre solution échoue à la vérification des tâches, les questions sont triées de manière utile : les principales questions porteront sur les exigences non satisfaites qui ont entraîné l'échec de votre solution.

Bouton d'aide

Troisièmement, le plugin IntelliJ IDEA offre des fonctionnalités similaires. Vous pouvez cliquer sur le bouton "Aide" ou appuyer sur la combinaison de touches Ctrl+Alt+W, ce qui ouvrira immédiatement la section Aide de votre navigateur. Et bien sûr, le filtre n'affichera que les questions sur la tâche que vous résolvez dans IntelliJ IDEA .

Aide IntelliJ IDEA

8. Créer une question

Si vous ne trouvez pas une bonne analyse de votre erreur dans la section Aide, vous pouvez toujours créer votre propre question. C'est assez simple à faire — il vous suffit de cliquer sur le bouton "Poser une question" et de remplir les champs obligatoires :

Créer une question

Contrairement à de nombreux autres services, tels que StackOverflow, Code Ranch, etc., CodeGym ne vous oblige pas à entasser toutes les informations importantes dans le titre de la question. Rédigez votre question comme bon vous semble.

Et au fait, vous n'avez pas besoin de copier votre code depuis WebIDE ou IntelliJ IDEA et de l'ajouter à votre question. Lorsque vous créez une question sur une tâche, le code de votre solution ainsi que les statuts des différentes exigences de la tâche y sont automatiquement ajoutés , c'est-à-dire les exigences que votre solution satisfait actuellement et celles qu'elle ne satisfait pas.

Créer une question 2

Cela signifie que les autres étudiants de CodeGym voient immédiatement toutes les informations pertinentes sur la solution du demandeur, ce qui facilite grandement la fourniture de bons conseils.


9. Code de solution

Sur de nombreux sites, lors de la création d'une question sur le code, vous devez soit joindre une archive avec des fichiers de programme à la question, soit ajouter tous ces fichiers au texte de la question elle-même. Le résultat est un grand gâchis dans lequel les gens ne veulent pas ou ne peuvent pas creuser.

Poser une question rapidement et efficacement est toute une forme d'art. Sur les sites Web classiques, vous devrez soit passer une demi-heure à formuler votre question, soit accepter le fait que personne ne vous répondra. Une bonne question sur une tâche doit absolument contenir les informations suivantes :

  • Lien vers la tâche que le demandeur est en train de résoudre
  • Les conditions de la tâche pour que les autres n'aient pas besoin d'aller les traquer n'importe où
  • Code de solution - cela peut inclure de nombreux fichiers
  • Statut de chaque exigence de tâche, c'est-à-dire ce qui fonctionne actuellement et ce qui ne fonctionne pas.
  • Texte de la question : c'est généralement assez clair — ma solution ne fonctionne pas et je ne sais pas pourquoi.

CodeGym affiche ces informations à l'aide d'un widget spécial très similaire au widget WebIDE . Après tout, il est déjà conçu pour afficher toutes ces informations. Eh bien, peut-être à l'exception de la question elle-même.

Code de solution

En fait, nous avons écrit un widget spécial juste pour vous faciliter l'étude des solutions d'autres utilisateurs. Et pour qu'il soit facile et agréable pour les autres utilisateurs d'examiner vos solutions dans les questions que vous posez.