
La dixième école de programmeurs hh.ru est devenue spéciale. Anniversaire, un grand nombre de projets, un flot inépuisable d'étudiants, la motivation durable de nos professeurs et organisateurs. Nous avons travaillé dur pour faire de cette version un modèle.
Nous avons sélectionné trente personnes sur mille candidatures. Et ces gars-là se sont avérés vraiment cool, avec un grand désir d'apprendre, un désir de surmonter les difficultés et de devenir meilleur.
Au même moment, notre formation est entrée dans la phase projet, et le monde informatique, que nous connaissons, a changé ses chaussures à la volée et est passé en mode total remote. Cela a également affecté l'École: nous devions de toute urgence réviser nos plans, et transférer tous nos projets et processus d'apprentissage en ligne. Et ici, je tiens à remercier nos organisateurs et mentors d'avoir pu transférer de toute urgence toute la formation vers un mode distant, les écoliers qui ont atteint ce stade, ont pu naviguer et apprendre efficacement même de chez eux, et tous ceux qui nous ont fourni aide et soutien. ...
Tous les étudiants ont été divisés en équipes composées de développeurs back-end et front-end (bien que la division se soit avérée plutôt arbitraire et que quelqu'un ait dû essayer les deux), et sous la direction de mentors et de nos programmeurs qui voulaient améliorer la gestion d'équipe, les groupes de développement ont commencé à mettre en œuvre des projets ...
Au total, il y avait 5 équipes, dont chacune a travaillé sans relâche pendant trois mois: planification et développement, participation à des revues de code et des rétrospectives. Le résultat a été 5 projets dont vous n'avez pas honte de parler et dont vous voulez vous vanter, par exemple, lorsque vous postulez à un emploi.
Vous devez immédiatement parler de l'objectif des projets: en trois mois pour enseigner aux gars le vrai travail d'équipe, passer par toutes les étapes de la planification et de l'organisation de l'infrastructure au travail sur UX et à la création d'un MVP à part entière. Pour ce faire, nous avons proposé à chaque équipe un thème, qui a été soutenu par les mentors.
Ces sujets sont:
- Service de formation d'offres commerciales pour les employeurs - un service pour soutenir notre sales'ov, qui nous permettra de travailler plus efficacement, et nos clients de recevoir des offres vraiment individuelles;
- Un service interne pour les développeurs qui vous permet de gamifier le processus de codage et de créer des évaluations pour les développeurs selon divers critères - l'application doit communiquer avec notre compte GitHub et afficher des données sur les développeurs qui sont plus rapides, plus hauts et plus forts;
- . / - :)/, - , - . , hh.ru . , , , ;
- — , , . MVP google forms, , ;
- Service de repérage des postes vacants. Désormais, dans notre application d'emploi et de CV, vous pouvez spécifier des compétences clés qui sont des balises prioritaires pour la recherche et la comparaison. Ils doivent être déposés manuellement et ils ne le font pas toujours correctement. Le but du projet est de calculer automatiquement les balises en fonction d'autres champs de travail.
Grands projets, d'accord? Pulls pour une application Web distincte ou une nouvelle fonctionnalité à part entière d'une application existante. Au fait, si vous aviez l'opportunité de proposer un sujet ou une idée de projet à l'École des programmeurs, que pouvait-il être?
En attendant, quelques mots sur les technologies utilisées dans les projets, et quels ont été les résultats du travail des équipes sur les projets:
Service d'enquête sur les compétences des chefs d'équipe
Cette application basée sur le Web complet qui fonctionne indépendamment de notre principale hh.ru .
Sur le frontend utilisé:
- réagir
- réagir forme finale
- redux
- material-ui-kit pour accélérer le prototypage d'interface
Sur le backend:
- nut-and-bolts (NaB) - notre propre framework web java
- Jersey
- hiberner
- PostgreSQL
Toutes les parties de l'application sont encapsulées dans Docker.
L'équipe du projet a souligné les points suivants comme résultats de son travail: les développeurs ont créé le service à partir de zéro, mettant en œuvre la base pour le développement ultérieur du système d'évaluation des compétences de l'entreprise. Nous avons acquis de l'expérience en travaillant avec des méthodologies agiles et des revues de code. Créé une équipe soudée et s'est beaucoup amusé.
Service d'évaluation des développeurs
C'est un service Web qui s'exécute indépendamment de notre application principale et qui ne dépend que de l'accès à notre compte GitHub.
Sur le frontend utilisé:
- réagir
- redux
- forme définitive
- date-fns
- less comme préprocesseur pour les styles
Sur le backend:
- écrous et boulons (NaB)
- Jersey
- hiberner
- PostgreSQL
L'ensemble de l'application était divisé en plusieurs parties: krona, qui met à jour les statistiques de GitHub, un backend pour calculer et analyser les statistiques, un frontend pour afficher les graphiques, les informations et la notation elle-même.
À la suite du travail, l'équipe a présenté le MVP de leur projet, proposé plusieurs options pour le développement de fonctionnalités.
Service de formation d'offres commerciales pour les employeurs
Cette application a été implémentée en tant que service distinct au sein de notre écosystème de microservices liés à hh.ru. Sur le
frontend, nous avons utilisé:
- réagir
- réagir forme finale
- redux
- material-ui-kit pour accélérer le prototypage d'interface
Sur le backend:
- écrous et boulons (NaB)
- Jersey
- hiberner
- kafka - en tant que technologie de transfert d'événements des systèmes de veille stratégique et des applications Web vers un nouveau service
- PostgreSQL
L'un des principaux défis de cette équipe était la nécessité de créer également une copie de la base de données MSSQL Server, car c'est là que les données des processus métier, des analyses et des clients sont stockées. Une copie anonyme distincte avec des données a été utilisée pour la démonstration et les tests.
Service pour améliorer la qualité des résultats de recherche
Sur le frontend utilisé:
- réagir
- redux
- less comme préprocesseur pour les styles
Sur le backend:
- écrous et boulons (NaB)
- Jersey
- hiberner
- PostgreSQL
Les étudiants ont dû mettre en place un modèle complexe d'interaction entre les utilisateurs qui évaluent la qualité des résultats de recherche, les utilisateurs-administrateurs qui commandent l'évaluation et valident. Il était nécessaire de comprendre comment la recherche fonctionne et quelles pourraient être les méthodes d’évaluation et de validation.
La meilleure évaluation du projet lui-même a été la volonté du chef de produit de recherche de déployer rapidement le service en production.
Service d'étiquetage des tâches
Le projet le plus atypique qui exigeait des écoliers, en plus de la capacité de programmer et de construire une architecture d'application, de comprendre les mécanismes de comparaison, d'évaluation et de transformation du texte en ML.
Sur le frontend, pour implémenter le panneau d'administration, nous avons utilisé:
- réagir
- redux
- Moins
Sur le backend pour collecter et analyser les données:
- écrous et boulons (NaB)
- Jersey
- hiberner
- PostgreSQL
- Apache Lucene
- Yandex.Tank - pour les tests de charge
Le principal défi était l'immersion en ML, l'étude du TF-IDF, les métriques PMI et leurs dérivés. Lors de la démo finale, l'équipe a partagé que les principales difficultés dans la mise en œuvre de l'algorithme étaient: le manque de temps suffisant pour analyser les données, le manque de métriques de qualité pour comparer les algorithmes et une très grande variabilité des paramètres du modèle.
Nous sommes convaincus que les idées et leur mise en œuvre se sont avérées dignes de notre école anniversaire. Et 22 diplômés deviendront d'excellents programmeurs - pourquoi être modestes, ils le sont déjà. Nous avons invité 11 d'entre eux à travailler pour nous, et le reste fournira des recommandations et fait des efforts pour mettre les gars en bonne compagnie!
Si l'un des projets vous intéresse, écrivez-le, posez des questions. Si l'un d'eux "tourne", alors nous demanderons certainement à l'équipe qui a travaillé sur le projet de nous en dire plus.
À propos, l'admission à la onzième école des programmeurs bat son plein. De plus, cette année, nous passons complètement en ligne, et à cet égard, nous avons augmenté le nombre de places à 40, et maintenant les candidatures peuvent être soumises depuis n'importe quelle ville de notre vaste! Si cette expérience réussit, nous mettrons tout en œuvre pour garder l'école en ligne pour toujours.
La formation est entièrement gratuite.
L'algorithme d'admission est plus simple que le tri par bulles:
1. remplissez le formulaire sur le site
2. complétez la tâche de test
3. réalisez un entretien en ligne avec nos employés
Nous vous attendons dans notre école!

Passez une bonne journée et souvenez-vous de Molière, résumons: «C'est bon de savoir que vous avez appris quelque chose»!