
Ce n'est pas un secret pour les informaticiens que si votre ville n'est pas millionnaire, trouver un programmeur est problématique, mais une personne qui possède la pile de technologies et d'expérience nécessaire est encore plus difficile.
À Irkoutsk, le monde informatique est à l'étroit. La plupart des développeurs de villes connaissent l'existence d'ISPsystem , et beaucoup sont déjà avec nous. Souvent, les candidats viennent au poste subalterne, mais en gros, ce sont les diplômés des universités d'hier, qui doivent encore être complétés et parés.
Et nous voulons des jones prêts à l'emploi qui ont fait de la programmation C ++, sont familiers avec Angular et ont vu Linux. Donc, vous devez aller les enseigner vous-même: présenter l'entreprise et donner le matériel nécessaire pour travailler avec nous. L'idée est donc née d'organiser des cours de développement backend et frontend. L'hiver dernier, nous l'avons implémenté, et dans cet article, nous vous expliquerons comment c'était.
La préparation
Nous avons rassemblé les principaux développeurs, discuté avec eux des tâches, de la durée et du format des cours. Surtout, nous avons besoin d'un backend et de programmeurs front-end, nous avons donc décidé d'organiser des séminaires sur ces spécialités. La première expérience et la quantité d'énergie nécessaire étant inconnues, ils ont limité le temps à un mois (huit leçons dans chaque direction).
Le matériel pour les séminaires back-end a été préparé par trois personnes, et deux ont lu, sur le front-end, sept employés ont partagé les sujets.
Il n'a pas été nécessaire de chercher des enseignants pendant longtemps, de persuader aussi. Un bonus était prévu pour la participation, mais ce n'était pas crucial. Nous avons attiré du personnel de niveaux intermédiaire et supérieur, et ils sont intéressés à s'essayer dans un nouveau rôle, à développer des compétences en communication et en transfert de connaissances. Ils ont consacré plus de 300 heures à la préparation.
Ils ont décidé d'organiser les premiers séminaires pour enfants de la cyberfaculté de l'IRNITU. Le coworking pratique vient d'apparaître là-bas, et une journée carrière était également prévue - une réunion d'étudiants avec des employeurs potentiels, où nous allons régulièrement. Cette fois, comme d'habitude, ils ont parlé d'eux-mêmes et des postes vacants, et ont été invités au cours.
Ceux qui souhaitaient participer ont reçu un questionnaire pour comprendre les intérêts, le niveau de préparation et la connaissance des technologies, recueillir des contacts pour les inviter à des séminaires, et aussi pour savoir si l'auditeur a un ordinateur portable qu'il peut apporter en classe.
Un lien vers la version électronique du questionnaire a été affiché sur les réseaux sociaux, et ils ont également demandé à un employé qui continue d'étudier à la magistrature de l'IRNITU de le partager avec ses camarades de classe. Il était encore possible de convenir avec l'université de la publication d'informations sur leur site Internet et sur les réseaux sociaux, mais il y avait suffisamment de personnes qui voulaient suivre le cours.
Les résultats de l'enquête ont confirmé nos hypothèses. Tous les étudiants ne savaient pas quels étaient le backend et le frontend, et tous ne travaillaient pas avec la pile technologique que nous utilisons. Quelque chose a entendu et même fait des projets en C ++ et sous Linux, très peu de gens ont vraiment utilisé Angular et TypeScript.
Au début des cours, 64 étudiants avaient recruté, c'était plus que suffisant.
Pour les participants aux séminaires, ils ont organisé une chaîne et un groupe dans le messager. Ils ont écrit sur les changements d'horaire, publié des vidéos et des conférences, des devoirs. Ils ont également organisé des discussions et répondu aux questions. Les séminaires sont maintenant terminés et les discussions au sein du groupe se poursuivent. À l'avenir, grâce à elle, il sera possible d'inviter des enfants à des randonnées et des hackathons.
Contenu de la conférence
On l'a compris: pour un cours de huit leçons il est impossible d'enseigner à programmer en C ++ ou de créer des applications web en angulaire. Mais ils ont essayé de montrer le processus de développement dans une entreprise de produits moderne et en même temps de présenter notre pile de technologies.
Il n'y a aucun moyen de faire de la théorie ici, la pratique est nécessaire. Par conséquent, nous avons combiné toutes les leçons avec une seule tâche - pour créer un service d'enregistrement des événements. Nous avons planifié avec les étudiants de développer l'application étape par étape, tout en leur présentant notre pile et ses alternatives.
Conférence introductive
Dans la première leçon, nous avons invité tous ceux qui ont rempli le questionnaire. Au début, ils disaient que seule la pile complète était il y a longtemps, et maintenant dans les sociétés de développement, il y a une division entre le développement avant et arrière. Finalement, ils ont suggéré de choisir la direction la plus intéressante. 40% des étudiants se sont inscrits au backend, 30% au frontend et 30% ont décidé de suivre les deux cours. Mais il était difficile pour les enfants d'aller à toutes les classes, et ils étaient progressivement déterminés.

Le développeur principal lors de la conférence d'introduction plaisante sur l'approche de l'apprentissage: «Les séminaires seront comme des instructions pour les artistes débutants: étape 1 - dessiner des cercles, étape 2 - dessiner un hibou»
Contenu des cours backend
Une partie des cours d'arrière-plan a été consacrée à la programmation et une partie au processus de développement dans son ensemble. La première partie concernait la compilation, make Make et Conan, le multithreading, les méthodes et les modèles de programmation, le travail avec les bases de données et les requêtes http. La deuxième partie a parlé des tests, de l'intégration continue et de la livraison continue, de Gitflow, du travail d'équipe et du refactoring.

Diapositive de la présentation des développeurs backend
Contenu du cours frontend
Nous avons d'abord configuré l'environnement: nous avons installé NVM, en l'utilisant Node.js et npm, avec eux - CLI Angular et créé un projet sur Angular. Ils ont ensuite suivi des modules, appris à utiliser des directives de base et à créer des composants. Ensuite, nous avons compris comment naviguer entre les pages et configurer le routage. Nous avons appris ce que sont les services et quelles sont les caractéristiques de leur travail dans le cadre de composants individuels, de modules et de l'ensemble de l'application.
Nous avons pris connaissance de la liste des services pré-installés pour l'envoi de requêtes http, en travaillant avec le routage. J'ai appris à créer des formulaires, à gérer des événements. Pour les tests, nous avons créé un faux serveur sur Node.js. Pour le dessert, nous avons découvert le concept de programmation réactive et d'outils tels que RxJS.

Diapositive de la présentation des développeurs front-end pour les étudiants
Les outils
Les séminaires impliquent la pratique non seulement en classe, mais aussi en dehors d'eux, donc un service était nécessaire pour recevoir et vérifier les devoirs. Les frontender ont choisi Google Classroom, les backenders ont décidé d'écrire leur système de notation.

Notre système de notation. Vous pouvez immédiatement voir ce que le backender a écrit :-)
Dans ce système, le code écrit par les étudiants a réussi les autotests. L'évaluation dépendait des résultats du test. Un point supplémentaire pourrait être obtenu pour l'examen et pour le travail livré à temps. La note globale a affecté la place dans le classement.
La note a introduit un élément de compétitivité dans les classes, nous avons donc décidé de le quitter et d'abandonner Google Classroom. Bien que notre système soit inférieur en termes de commodité à la solution de Google, il est réparable: pour les prochains cours, nous l'affinerons.
Astuces
Nous nous sommes bien préparés pour les séminaires et n'avons rien mal calculé, mais nous avons tout de même marché sur quelques râteaux. Classé cette expérience dans les conseils, tout à coup, quelqu'un est utile.
Choisissez votre temps et programmez correctement les activités
Nous nous sommes appuyés sur l'université, mais en vain. Déjà à la fin des cours, il est devenu clair que notre cours tombait sur la période la plus gênante de l'année scolaire - avant la session. Les étudiants sont rentrés à la maison après les couples, se sont préparés aux examens, puis se sont assis pour nos devoirs. Parfois, les décisions arrivaient à 4-5 heures du matin.
Il est également important de considérer l'heure de la journée et la fréquence des cours. Nous avons commencé à 19h00, donc si le couple d'un étudiant se terminait tôt, il devait quitter la maison et revenir le soir - ce n'est pas pratique. De plus, les cours avaient lieu le lundi et mercredi, ou jeudi et mardi, et quand il y avait un jour à la maison, les gars devaient travailler dur pour le terminer à temps. Ensuite, nous nous sommes ajustés et avons demandé moins ces jours-là.
Demandez à vos collègues de vous aider dans la première leçon
Au début, tous les étudiants n'étaient pas à temps pour le professeur, il y avait des problèmes avec le déploiement de l'environnement, le cadre. Dans de telles situations, ils ont levé la main et notre employé est venu, a aidé à le comprendre. Dans les derniers cours, aucune aide n'était nécessaire, car tout était déjà installé.
Enregistrer des ateliers sur vidéo
Vous résolvez donc plusieurs problèmes à la fois. D'abord, donnez l'occasion de voir ceux qui ont raté la leçon. Deuxièmement, reconstituer la base de connaissances interne avec un contenu utile, en particulier pour les débutants. Troisièmement, en examinant le dossier, vous pourrez évaluer comment l'employé transmet l'information et si elle peut retenir l'attention de l'auditoire. Une telle analyse permet de développer l’oratoire du locuteur. Les sociétés informatiques ont toujours quelque chose à partager avec leurs collègues lors de conférences pertinentes, et lors de séminaires, vous pouvez développer d'excellents conférenciers.

Le conférencier dit que la caméra écrit
Soyez prêt à changer votre approche si nécessaire
Nous allions lire un petit morceau de théorie, faire de la programmation et donner des devoirs. Mais la perception du matériel n'était pas si simple et fluide, et nous avons changé l'approche des séminaires.
Dans la première moitié de la conférence, ils ont commencé à examiner en détail les devoirs précédents, et dans la deuxième partie à lire la théorie pour la suivante. En d'autres termes, ils ont donné aux élèves une canne à pêche et, à la maison, ils recherchaient eux-mêmes un étang, des appâts et du poisson - ils sont entrés dans les détails et ont compris la syntaxe C ++. Lors de la prochaine conférence, ils ont discuté ensemble de ce qui s'était passé. Cette approche s'est avérée plus productive.
Ne changez pas souvent d'enseignant
Deux employés ont animé des séminaires sur le backend et sept sur le front-end. Il n'y avait pas beaucoup de différence pour les étudiants, mais les enseignants frontaux sont arrivés à la conclusion que pour un contact plus productif, vous devez connaître le public, comment il perçoit les informations, etc., et lorsque vous parlez pour la première fois, cette connaissance ne l'est pas. Par conséquent, il peut être préférable de ne pas changer souvent d'enseignant.
Posez des questions dans chaque leçon.
Les étudiants eux-mêmes sont peu susceptibles de dire si quelque chose ne va pas. Ils ont peur d'avoir l'air stupide et de poser des questions «stupides», ils sont gênés d'interrompre le conférencier. Cela est compréhensible, car pendant plusieurs années, ils ont vu une approche différente de l'apprentissage. Donc, si c'est difficile, personne ne l'admettra.
Pour soulager la tension, nous avons utilisé une technique avec un canard leurre. Un collègue d'un conférencier a non seulement aidé, mais aussi posé des questions pendant la conférence, proposé des solutions. Les étudiants ont vu que les enseignants sont des gens vivants, on peut leur demander et même plaisanter avec eux. Cela a contribué à désamorcer la situation. L'essentiel ici est de trouver un équilibre entre le support et l'interruption.
Eh bien, même avec un tel «canard leurre», de toute façon, posez des questions sur les difficultés, découvrez à quel point la charge est adéquate, quand et comment mieux démonter les devoirs.
Faites une réunion informelle à la fin
Après avoir reçu la demande finale lors de la dernière conférence, nous avons décidé de la marquer avec de la pizza et de discuter simplement dans un cadre informel. A donné des cadeaux à ceux qui ont résisté jusqu'à la fin, nommés les cinq premiers, ont trouvé de nouveaux employés. Nous étions fiers de nous et des étudiants, eh bien, nous étions heureux que tout soit enfin terminé :-).

Nous remettons des prix. À l'intérieur de l'emballage: T-shirt, thé, cahier, stylo, autocollants
Résumé
16 élèves ont atteint la fin des cours, 8 dans chaque direction. Selon les professeurs d'université, c'est beaucoup pour des cours d'une telle complexité. Nous avons pris les cinq meilleurs ou presque embauchés, cinq autres viendront s'entraîner cet été.
Immédiatement après le cours, ils ont lancé un questionnaire pour recueillir les commentaires.
Les séminaires ont-ils aidé à déterminer la direction?
- Oui, je vais aller au développement backend - 50%.
- Oui, je veux vraiment être un développeur front-end - 25%.
- Non, je ne sais toujours pas ce qui m'intéresse le plus - 25%.
Qu'est-ce qui s'est avéré être le plus précieux?
- De nouvelles connaissances: «vous ne pouvez pas obtenir cela à l'université», «un nouveau regard sur le C ++ dense», une formation technologique pour augmenter la productivité - CI, Git, Conan.
- Professionnalisme et dévouement des enseignants, le désir de transmettre des connaissances.
- Format du cours: explication et pratique.
- Exemples de travail réel.
- Liens vers des articles et des instructions.
- Cool présentations de conférences compilées.
L'essentiel est que nous ayons réussi à dire qu'après avoir obtenu leur diplôme universitaire, beaucoup de travail intéressant et difficile attend les enfants. Ils ont réalisé dans quelle direction ils voulaient aller et se sont rapprochés un peu d'une carrière réussie dans les TI.
Maintenant, nous savons comment choisir le format de formation approprié, quoi simplifier ou même exclure du programme, combien de temps il faut pour se préparer et d'autres choses importantes. Nous comprenons mieux nos auditeurs, les peurs et les doutes sont laissés pour compte.
Nous sommes peut-être encore loin de créer une université d'entreprise, même si nous formons déjà des employés au sein de l'entreprise et travaillons avec des étudiants, mais nous avons fait le premier pas vers cette tâche sérieuse. Et très bientôt, en avril, nous irons enseigner à nouveau - cette fois à l'Université d'État d'Irkoutsk, avec laquelle nous coopérons depuis longtemps. Souhaitez-nous bonne chance!