Je veux vous parler de la raison pour laquelle nous réparons la plomberie plus souvent que de rédiger des dissertations à ce sujet, des différentes approches de l'enseignement de la programmation et de la façon dont nous essayons d'appliquer l'une d'entre elles dans notre nouveau produit Hyperskill.
Si vous n'aimez pas les longues présentations, passez directement à la section de programmation. Mais ce sera moins amusant.

Digression lyrique
Imaginons une certaine jeune femme Masha. Aujourd'hui, Masha allait se laver avec des fruits et regarder calmement le film, mais voici la malchance: tout à coup, elle a trouvé un évier dans la cuisine bouché. Que faire de cela n'est pas encore clair. Vous pouvez reporter ce problème indéfiniment, mais il y a du temps libre maintenant, alors Masha décide de traiter le problème immédiatement. Le bon sens suggère deux options: a) appeler le plombier b) s'en sortir seul. La jeune femme choisit la deuxième option et commence à étudier les instructions sur YouTube. Sur les conseils de Vasya_the_plumber, Masha regarde sous l'évier et voit un tuyau en plastique serpentant de plusieurs parties. La jeune fille dévisse soigneusement une partie à la base de l'évier et ne trouve rien. Un morceau du tuyau ci-dessous est bien obstrué par une substance inconnue, et même la fourche trouvée sur la table ne peut pas faire face à l'obstruction. Les experts d'Internet donnent des prévisions décevantes: la pièce devra être changée. Sur la carte, Masha trouve le magasin le plus proche, prend un malheureux morceau de pipe avec lui et achète le même, seulement un nouveau. Sur les conseils du vendeur, Masha s'empare également d'une nouvelle passoire pour la prévention. La quête est terminée: l'évier fonctionne à nouveau comme il se doit, et son personnage principal, quant à lui, a découvert ce qui suit:
- Les tuyaux sous l'évier peuvent se dérouler et se tordre indépendamment;
- Le magasin de plomberie le plus proche est à un kilomètre et demi de l'appartement de la voiture.
Très probablement, Masha n'a même pas remarqué combien de nouvelles elle a apprises et ce qu'elle a appris, car elle était inquiète pour son propre confort à l'avenir, et en même temps une projection de film et une pomme lavée. La prochaine fois, lorsqu'un problème similaire se posera, la fille le résoudra plusieurs fois plus rapidement. En fait, Masha n'a pas simplement rendu le monde à son état habituel; elle a étudié par
induction , c'est-à-dire lors d'occasions spéciales et
orientée vers la pratique , c'est-à-dire faire des choses et ne pas les étudier en détail et à l'avance.
Tout aurait pu se passer différemment. Supposons que Masha soit assise dans un fauteuil le soir et réalise soudain qu'elle n'est mentalement et physiquement pas prête à être bloquée dans l'évier. Elle entre à la hâte dans l'académie de plomberie, étudie les types d'éviers, de tuyaux et de connexions possibles, la classification des problèmes de plomberie et les solutions possibles. Masha ne dort pas la nuit, se souvenant des termes et des noms. Peut-être qu'elle écrit même un doctorat en science théorique des tuyaux, où elle parle de tampons en caoutchouc. Enfin, après avoir reçu le certificat, Masha inspecte fièrement la cuisine en toute confiance que maintenant même un problème de petite taille avec l'évier sera résolu en un clic. Dans ce scénario, la fille a étudié de manière
déductive , passant du général au particulier, et s'est concentrée davantage sur la
théorie .
Alors quelle approche est la meilleure? Dans le cas d'un évier et d'un blocage - le premier, et ici pour quelles raisons:
- Si seul un évier en état de marche est important, il suffit de savoir uniquement ce qui concerne ce domaine particulier. Lorsque Masha se rend compte qu'il n'y a pas suffisamment de connaissances, elle trouvera sûrement un moyen d'en apprendre davantage.
- Le savoir encyclopédique peut ne pas s'allumer dans une situation réelle, car une habitude n'a pas été établie. Afin d'apprendre la séquence des actions, il est logique de ne pas les lire, mais de les exécuter.
Laissons le pauvre Masha tranquille et passons au processus d'apprentissage en tant que tel.
Programmation: étudier ou faire?
Nous sommes habitués à penser que pour développer et devenir un expert dans un domaine inconnu, vous devez d'abord aller à l'université ou au moins vous inscrire à des cours. Nous écoutons régulièrement ce qui se dit et nous effectuons des tâches. Lorsque le précieux diplôme ou certificat est en main, nous nous perdons instantanément, car nous ne comprenons toujours pas pourquoi nous avons besoin de tant d'informations et comment les appliquer spécifiquement. Ce n'est pas un problème si les plans sont d'écrire des articles scientifiques et de voyager avec eux pour des conférences. Sinon, il vaut la peine de chercher des compétences, c'est-à-dire de faire et de refaire des choses spécifiques, d'essayer et de faire des erreurs, pendant longtemps pour se souvenir de la meilleure façon de ne pas faire.
La programmation est l'un des domaines où la «main pleine» ou le «œil-diamant» se rapprochent de la largeur de l'esprit. Si vous parlez avec des développeurs expérimentés, vous entendrez de bonnes histoires dans lesquelles une personne dès son jeune âge était engagée dans les mathématiques / la physique / l'enseignement, puis il s'est fatigué et est passé au backend. Il y aura des programmeurs sans enseignement supérieur! Tout d'abord, le développeur apprécie non pas un certificat, pas un diplôme, mais la quantité et la qualité des programmes écrits, des scripts et des sites.
"Mais attendez!", Objectez-vous, "Cela semble beau - prenez-le et faites-le! Je ne peux pas facilement écrire un programme pour moi-même si je ne l'ai pas programmé avant (a)! Il est important pour moi de comprendre où écrire, comment parler le langage de programmation avec le compilateur en principe Ce n'est pas un téléphone de plomberie dans google à trouver. "
La vérité amère est là-dedans. Un aspect inconnu en attire un autre, qui, à son tour, est le troisième, et bientôt ce processus se transforme en spectacle de magicien, qui continue de tirer les mouchoirs noués et ne les fait pas sortir du cylindre. Honnêtement, le processus est désagréable, sur le 5ème mouchoir, il semble déjà que la profondeur de l'ignorance soit proche de la tranchée Mariana. Une alternative à cela est les mêmes conférences sur 10 types de variables, 3 types de boucles et 150 bibliothèques potentiellement utiles. C'est triste.
Hyperskill: nous avons construit, construit et finalement construit
Nous avons longuement réfléchi à ce problème. À propos de combien de temps nous avons pensé, parle avec éloquence la date du dernier message sur notre blog. Après tous les débats et tentatives d'intégration de la nouvelle approche sur Stepik, nous avons eu ... un autre site. Vous avez peut-être déjà entendu parler de lui dans le cadre de la JetBrains Academy. Nous l'avons appelé Hyperskill, nous y avons intégré l'apprentissage par projet, y avons lié une base de connaissances Java et obtenu le soutien de l'équipe EduTools. Et maintenant plus en détail.
Objectif spécifique. Nous proposons un «menu» de projets, c'est-à-dire programmes que vous pouvez écrire avec notre aide. Parmi eux, tic-tac-toe, assistant personnel, blockchain, moteur de recherche, etc. Les projets se composent de 5-6 étapes; le résultat de chaque étape est un programme fini. "Pourquoi alors les autres étapes, si la première a déjà tout réglé?" Merci pour la question. À chaque étape, le programme devient plus fonctionnel ou plus rapide. Au début, le code prend 10 lignes; à la fin, il peut ne pas correspondre à 500.
Un peu de théorie. Il est impossible de s'asseoir et, sans connaître un mot sur la programmation, écrire même Hello World. Par conséquent, à chaque étape du projet, vous voyez quelles bases théoriques vous devez maîtriser et, surtout, où les obtenir. Les bases se trouvent également sur Hyperskill dans la section «Knowledge Map». Si pour la première étape du projet, les étudiants ne sont pas tenus de lire les données du fichier, même s'ils ne savent pas continuer. Ils l'apprendront ensuite eux-mêmes, pour le développement général, ou seront nécessaires à l'étape suivante.
Carte des connaissances. Il montre quels sujets vous avez déjà étudiés et comment ils sont liés les uns aux autres. Ouvrez n'importe quel joli sujet. Vous pouvez le parcourir avec vos yeux, mais nous vous recommandons d'effectuer de petites tâches pour vous assurer que les informations sont dans votre tête. Au début, la plate-forme vous lancera des tests, après eux - quelques tâches de programmation. Si le code compile et réussit les tests, comparez-le avec l'exemple de solution (solution de référence), il est parfois utile de trouver une façon plus optimale de l'implémenter. Ou assurez-vous que votre décision est si belle.
Rien de plus. Nous attendons des utilisateurs «verts» et des développeurs expérimentés. Si vous avez déjà écrit des programmes, cela n'a pas d'importance, nous ne vous forcerons pas à replier 2 + 2 ou à retourner la ligne. Pour arriver au bon niveau tout de suite, lors de l'inscription, indiquez ce que vous connaissez déjà et choisissez un projet plus compliqué. N'ayez pas peur de vous surestimer: vous pouvez toujours revenir à un sujet oublié dans la carte des connaissances.
Des outils C'est génial d'écrire de petits morceaux de code dans une fenêtre spéciale sur le site, mais la vraie programmation commence par travailler dans un environnement de développement (environnement de développement intégré). Les programmeurs expérimentés savent non seulement comment écrire du code, mais aussi comment construire une interface graphique, assembler différents fichiers dans un projet, utiliser des outils de développement supplémentaires et l'IDE s'occupe de certains de ces processus. Pourquoi ne pas acquérir ces compétences pendant que vous maîtrisez la programmation? C'est là que JetBrains vient à la rescousse avec une version spéciale d'IntelliJ IDEA Community Educational avec le plugin EduTools préinstallé. Dans un tel IDE, vous pouvez suivre des cours de formation, vérifier les problèmes résolus et jeter un œil aux conseils du projet si vous oubliez quelque chose. Ne vous inquiétez pas si vous entendez d'abord le mot «plug-in» ou «IDE»: nous vous dirons ce que c'est et comment l'installer sur un ordinateur ou un ordinateur portable avec un minimum de souffrance. Comprenez la théorie, puis allez à l'IDE et terminez la prochaine étape du projet.
Délais Ils ne sont pas là! Qui sommes-nous pour frapper à la tête et indiquer à quel rythme vous écrivez le programme. Lorsque vous aimez écrire du code et que vous souhaitez le terminer jusqu'au bout, vous l'ajoutez, aujourd'hui ou demain. Engagez-vous dans le développement de votre propre plaisir.
Erreurs Tous les autorisent, vous supposez que vous êtes à l'une des étapes du projet, puis cette étape ne passera pas les tests automatiques. Eh bien, vous devez comprendre par vous-même ce qui a mal tourné. Nous pourrions dire où se situe l'erreur, mais cela vous apprend-il à écrire du code avec soin? Lisez les conseils d'IDEA ou un sujet théorique sur les bogues, et lorsque le programme fonctionnera enfin, l'augmentation de la dopamine ne prendra probablement pas longtemps.
Résultat visuel. Donc, vous avez terminé le premier projet, et ensuite? Utilisez les fruits du travail! Jouez au tic-tac-toe avec vos amis tout en vous vantant de succès. Téléchargez le projet sur GitHub pour montrer le futur employeur, écrivez vous-même une description, indiquez les connaissances que vous y avez utilisées. 4-5 projets complexes, et maintenant, un portefeuille modeste pour le développeur novice est prêt.
Opportunité de croissance. Supposons que vous regardiez Hyperskill et que vous n'y voyiez aucun sujet important ou projet utile. Faites-le nous savoir! Si votre parcours est plus large et plus riche qu'une carte des connaissances, écrivez-nous dans le formulaire
Contribute . Notre équipe partagera ses propres trucs et astuces avec vous, nous serons donc heureux de vous aider à transformer vos connaissances en contenu utile et compréhensible pour les utilisateurs de tous âges et de tous niveaux. Nous allons peut-être même payer, mais ce n'est pas sûr.
Bienvenue:
https://hi.hyperskill.org/ Entrez, voyez, essayez, suggérez, louez et réprimandez. Nous apprenons aussi à vous apprendre.