
Dans le dernier article, j'ai commencé l'histoire de l'école 42, célèbre pour son système d'éducation révolutionnaire: il n'y a pas d'enseignants, les élèves eux-mêmes vérifient le travail des autres, vous n'avez pas besoin de payer pour les études. Dans cet article, je parlerai davantage du système de formation et des tâches que les étudiants effectuent.
Il n'y a pas d'enseignants, il y a Internet et des camarades. L'éducation à l'école est basée sur les principes du travail de projet conjoint - l'apprentissage entre pairs. Les étudiants n’étudient aucun manuel, ils ne leur donnent pas de cours. Les organisateurs des écoles croient que tout peut être trouvé sur Internet, demandez à des amis ou à des étudiants plus expérimentés avec lesquels vous travaillez sur un projet.
Les tâches terminées sont vérifiées 3-4 fois par d'autres étudiants, afin que chacun puisse être à la fois un étudiant et un mentor. Il n'y a pas non plus de notes - il vous suffit de terminer la tâche correctement et complètement. Même si elle est effectuée à 90%, elle sera considérée comme un échec.
Aucune note, il y a des points. Pour mettre le projet en échec, vous devez avoir un certain nombre de points - des points de correction. Les points sont gagnés en vérifiant les devoirs des autres étudiants. Et c'est un facteur de croissance supplémentaire - vous devez comprendre une variété de tâches, dépassant parfois votre niveau de connaissances.
«Certains projets sont un véritable cosmos, le cerveau en explose. Et puis, pour gagner un seul point de correction, vous devez transpirer toute la journée, comprendre le code. Une fois, j'ai eu de la chance et j'ai reçu jusqu'à 4 points en une journée - c'est un succès rare », explique mon ami, l'élève Sergei.
S'asseoir dans le coin ne fonctionnera pas. Les projets sont menés seuls ou en binômes et en plus grands groupes. Ils sont toujours protégés en personne, il est important que tous les membres du groupe participent activement, que tout le monde comprenne le code et soit très motivé. Silence et asseyez-vous ici ne fonctionne pas. De cette façon, l'école stimule le travail d'équipe et les compétences de communication réussies. De plus, tous les étudiants apprennent à se connaître et à communiquer entre eux, ce qui est très utile pour le réseautage et les carrières futures.
Gamification Comme dans un jeu sur ordinateur, les élèves montent les niveaux et suivent leurs progrès à l'aide du Saint-Graphique - une carte «sainte», qui montre clairement tout le chemin parcouru et à venir. Comme dans le RPG, "l'expérience" est accumulée pour les projets, et après en avoir accumulé une certaine quantité, une transition vers un nouveau niveau est effectuée. La similitude avec le vrai jeu réside également dans le fait que chaque nouveau niveau est plus compliqué que le précédent, il y a de plus en plus de tâches.

Verre et Adm. L'école a deux divisions principales - Bokal (techniciens) et Adm (administration). Glass - traite des questions techniques et de la composante pédagogique, tandis que Adm - des questions administratives et organisationnelles. La réserve de personnel de Glass / Adm est reconstituée aux frais des étudiants stagiaires de l'Ecole.
Comment et ce qui est enseigné ici
Tout commence par "C". L'école utilise uniquement Unix, considérant que Windows n'est pas le meilleur choix. Le code est enseigné à partir des bases mêmes, forçant à comprendre la logique même de la programmation. Les premiers niveaux, tous les projets sont réalisés uniquement en C et C ++, l'IDE n'est pas utilisé. Les étudiants utilisent le compilateur gcc et l'éditeur de texte vim.
«Dans d'autres cours, on vous donnera des fonctions, on vous demandera de terminer un projet et ce n'est qu'à ce moment-là qu'on vous expliquera comment elles sont programmées. Ici, vous ne pouvez pas utiliser la fonction avant de l'écrire vous-même. Au début, alors que j'étais encore dans le «pool», je ne comprenais pas pourquoi j'avais besoin de ce malloc, pourquoi devrais-je allouer de la mémoire moi-même, pourquoi n'ai-je pas appris Python et Javascript. Et puis tout à coup, cela vient à vous, et vous commencez à comprendre comment l'ordinateur pense. "
Normineut. Après une protection réussie, tous les projets sont téléchargés sur l'homologue GitHub local. Mais avant cela, ils doivent passer un contrôle de conformité au code avec le programme Norminette.
«Si le code fonctionne correctement, mais qu'il y a une fuite de mémoire, le projet est considéré comme ayant échoué. Également vérifié la syntaxe. Nous avons une liste de fonctions, d'attributs, de drapeaux interdits et leur utilisation équivaut à de la triche. Vous devez tout faire de vos propres mains et avec beaucoup de soin », explique Sergey.

Exemples de tâches
Toutes les tâches effectuées par les étudiants sont vérifiées de trois manières: par programme, par liste de contrôle par d'autres étudiants et représentants du Verre. Voici quelques projets réalisés de manière indépendante et vérifiés selon une liste de contrôle:
Init (Administration système et réseau) - vous devez installer le système d'exploitation Debian sur la machine virtuelle et le configurer selon les exigences spécifiées dans la tâche.
Libft - implémentez des fonctions de bibliothèque standard en C, telles que: strcmp, atoi, strlen, memcpy, strstr, toupper, tolower
, etc. Aucune bibliothèque tierce, toutes de vos propres mains. Vous écrivez vous-même des en-têtes, vous l'implémentez vous-même, vous créez vous-même un Makefile
, vous le compilez vous-même.
Printf - il est nécessaire d'implémenter complètement la fonction printf
standard avec tous ses arguments en C. C'est assez difficile pour les débutants.
Fillit - il était nécessaire de collecter un carré de la surface minimale de la liste des tetramino venant à l'entrée. À chaque nouvelle étape, un nouveau tétramino a été ajouté. La tâche est compliquée par le fait que les calculs devaient être faits en C et pour le temps minimum.
Libls - implémentez votre version de la ls
avec tous ses indicateurs standard. Vous pouvez et devez utiliser les réalisations des tâches passées.
Rheshes
En plus des tâches exécutées seules, il existe une catégorie distincte de tâches qui sont exécutées par un groupe d'étudiants - les urgences. Contrairement aux projets indépendants, le rush n'est pas vérifié par les élèves sur une liste de contrôle, mais par le personnel scolaire de Bokal.
Pipex - le programme d'entrée accepte les noms de fichiers et les commandes shell arbitraires, l'étudiant doit démontrer sa capacité à travailler avec des tuyaux au niveau du système et à implémenter une fonctionnalité identique au comportement normal du système dans le terminal.
Minitalk - implémenter une application client-serveur en C. Le serveur doit être capable de prendre en charge plusieurs clients et imprimer les messages envoyés par le client en utilisant les signaux système SIGUSR1 et SIGUSR2.
Frozen - écrivez un serveur IRC à Golang, qui est capable de travailler avec plusieurs clients en même temps, en utilisant la concurrence et les goroutines. Le client doit pouvoir se connecter en utilisant un nom d'utilisateur et un mot de passe. Un serveur IRC doit prendre en charge plusieurs canaux.
Conclusion
Tout le monde peut entrer à l'école 42, et vous n'avez pas besoin d'avoir des connaissances particulières pour le faire. Malgré le fait que le programme est conçu pour les débutants, les tâches simples sont rapidement remplacées par des tâches non triviales, souvent avec des formulations floues. L'étudiant est tenu de donner un maximum de dévouement, la capacité de rechercher les informations manquantes dans la documentation officielle en anglais, et de s'unir avec d'autres étudiants pour terminer les devoirs. Le programme de formation n'a pas une séquence stricte, donc chacun choisit un chemin de développement pour lui-même. L'absence de notes de bout en bout vous permet de vous concentrer sur vos progrès et votre développement, et non de vous comparer aux autres.