company_banner

В диких условиях. Итоги проектов Школы программистов в эпоху самоизоляции

    За четыре месяца занятий были прочитаны 54 лекции на двух потоках бекэнд и фронтенд, проведены несколько крутых практикумов с live-coding’ом. Проверены сотни заданий, на все вопросы получены две сотни ответов. Тут пришел 2020 год и сразу после того как мы сняли с елок гирлянды, всем нам самим пришлось нарядиться в маски и надеть перчатки. А теперь по порядку:



    Десятая Школа Программистов hh.ru стала особенной. Юбилей, огромное количество планов, неиссякаемый поток учеников, неугасающая мотивация наших преподавателей и организаторов. Мы приложили максимум усилий, чтобы этот выпуск стал образцовым.


    Из тысячи заявок мы отобрали тридцать человек. И эти ребята оказались действительно крутыми, с большим желанием учиться, стремлением преодолевать трудности и становиться лучше.

    В этот же момент наше обучение перешло в фазу проектов, а мир IT, который мы знаем, переобулся на ходу и перешёл в режим тотальной удаленки. На Школе это тоже отразилось: нам срочно пришлось пересмотреть планы, все наши проекты и процессы обучения перевести в онлайн. И тут хочется поблагодарить наших организаторов и менторов за то, что смогли в экстренном порядке перевести всё обучение в удаленный режим, школьников, которые дошли до этого этапа, смогли сориентироваться и эффективно учиться даже из дома, и всех тех, кто оказывал нам помощь и поддержку.

    Всех учеников разделили на команды, состоящие из бэкендеров и фронтендеров (правда деление оказалось довольно условным и кому-то пришлось попробовать и то и другое), и под руководством менторов и наших программистов, которые хотели прокачаться в управлении командами, группы разработки приступили к реализации проектов.

    Всего набралось 5 команд, каждая из которых на протяжении трех месяцев работала не покладая рук, глаз и мозга: планируя и разрабатывая, участвуя в ревью кода и ретроспективах. Итогом стали 5 проектов, о которых не стыдно рассказать и которыми хочется похвастаться, например, при устройстве на работу.

    Сразу следует рассказать о цели проектов: за три месяца научить ребят реальной командной работе, пройти все шаги от планирования и организации инфраструктуры до работы над UX и создания полноценного MVP. Для этого каждой команде мы предложили по одной теме, которую поддержали менторы.

    Вот эти темы:

    • Сервис по формированию коммерческих предложений для работодателей — сервис поддержки наших sales’ов, который позволит работать эффективнее, а нашим клиентам получать действительно индивидуальные предложения;
    • Внутренний сервис для разработчиков, позволяющий геймифицировать процесс написания кода и создавать рейтинги разработчиков по различным критериям — приложение должно общаться с нашим GitHub-аккаунтом и показывать данные о тех разработчиках, которые работают быстрее, выше и сильнее;
    • Сервис для оценки качества поисковой выдачи. Наверняка вы слышали /что в интернете кто-то не прав:)/, как кто-то жалуется на то, что в результатах поиска в интернете нашлась какая-то нерелевантная информация. Так вот, у нас на сайте hh.ru тоже так бывает. Чтобы это исправить, нужен сервис, который будет позволять оценивать, насколько поиск был успешным и насколько результаты соответствуют запросу;
    • Внутренний сервис для тимлидов и разработчиков по оценке навыков — мы, как и многие технологические компании, поощряем развитие сотрудников и для рекомендаций и помощи тимлидам используем систему оценки навыков. Её MVP был реализован через google forms, но функциональности очень не хватало, поэтому решили сделать свою кастомную систему;
    • Сервис для тегирования вакансий. Сейчас в нашем приложении для вакансии и резюме можно указать ключевые навыки, которые являются приоритетными метками для поиска и сравнения. Их нужно проставлять вручную и не всегда это делают правильно. Цель проекта — автоматически вычислять теги на основании других полей вакансии.

    Согласитесь, отличные проекты? Тянет на отдельное веб-приложение или полноценную новую фичу уже существующего приложения. Кстати, если бы у вас была возможность предложить какую-то тему или идею для проекта в Школе программистов, то что бы это могло быть?

    А пока вы думаете, пара слов о том, какие технологии были использованы в проектах, и какими получились итоги работы команд над проектами:

    Сервис опроса компетенций тимлида


    Это полноценное веб-приложение, которое работает независимо от нашего основного hh.ru.

    На фронтенде использовались:

    • react
    • react final form
    • redux
    • material-ui-kit для ускорения прототипирования интерфейса

    На бекенде:


    Все части приложения завернуты в Docker.

    Команда проекта выделила следующие пункты как итоги своей работы: разработчики создали сервис с нуля, реализовав основу для дальнейшего развития корпоративной системы оценки навыков. Набрались опыта в работе по agile-методологиям и код-ревью. Создали сплоченную команду и хорошо повеселились.

    Сервис рейтинга разработчиков


    Это веб-сервис, который работает независимо от нашего основного приложения и полагается только на доступ к аккаунту GitHub.

    На фронтенде использовались:

    • react
    • redux
    • final-form
    • date-fns
    • less  как препроцессор для стилей

    На бекенде:

    • nuts-and-bolts (NaB)
    • jersey
    • hibernate
    • PostgreSQL

    Все приложение было поделено на несколько частей: крон, который обновляет статистику с GitHub, бекэнд — для подсчета и анализа статистики, фронтенд — для отображения графиков, информации и самого рейтинга.

    По итогу работы команда представила MVP своего проекта, предложила несколько вариантов развития функциональности.

    Сервис по формированию коммерческих предложений для работодателей


    Это приложение реализовывалось как отдельный сервис внутри нашей экосистемы микросервисов, относящихся к hh.ru

    На фронтенде использовались:

    • react
    • react final form
    • redux
    • material-ui-kit для ускорения прототипирования интерфейса

    На бекенде:

    • nuts-and-bolts (NaB)
    • jersey
    • hibernate
    • kafka — как технология для передачи событий от систем бизнес-аналитики и веб-приложения к новому сервису
    • PostgreSQL

    Одним из основных вызовов для этой команды стала необходимость также поднять у себя копию базы MSSQL Server, так как именно там хранятся данные бизнес-процессов, аналитики и клиентов. Отдельную анонимизированную копию с данными использовали в дальнейшем для демонстрации и тестирования.

    Сервис для улучшения качества поисковой выдачи


    На фронтенде использовались:

    • react
    • redux
    • less, как препроцессор для стилей

    На бекенде:

    • nuts-and-bolts (NaB)
    • jersey
    • hibernate
    • PostgreSQL

    Ученикам пришлось реализовать сложную модель взаимодействия пользователей, которые оценивают качество поисковой выдачи, пользователей-администраторов, которые заказывают оценку  и валидируют. Потребовалось разобраться, как работает поиск и какие могут быть методологии оценки и валидации.

    Лучшей же оценкой самого проекта стало пожелание продакт-менеджера поиска  поскорей выкатывать сервис в продакшен.

    Сервис для тегирования вакансий


    Самый нестандартный проект, который потребовал от школьников, кроме умения программировать и выстраивать архитектуру приложения, разобраться в механизмах сравнения, оценки и преобразования текста на ML.

    На фронтенде для реализации админки использовались:

    • react
    • redux
    • less

    На бекенде для сбора и анализа данных:

    • nuts-and-bolts (NaB)
    • jersey
    • hibernate
    • PostgreSQL
    • Apache Lucene
    • Яндекс.Танк — для нагрузочного тестирования

    Основным челленджем стало погружение в ML, изучение метрик TF-IDF, PMI и их производных. На финальном демо команда поделилась тем, что основными трудностями при реализации алгоритма стали: отсутствие достаточного времени для анализа данных, отсутствие метрик качества, чтобы сравнивать алгоритмы и очень большая вариативность в параметрах модели.

    Мы уверены, что идеи и их реализации получились достойными нашей юбилейной Школы. А 22 выпускника станут отличными программистами — да чего скромничать, они уже стали. 11 из них мы позвали работать к нам, а остальным предоставим рекомендации и приложили усилия, чтобы ребята попали в хорошую компанию!

    Если вас заинтересовал какой-то из проектов, напишите об этом, задавайте вопросы. Если один из них «выстрелит», то мы обязательно попросим команду, которая работала над проектом, рассказать о нем подробнее.

    Кстати, набор в одиннадцатую Школу Программистов в самом разгаре.  Более того, в этом году мы полностью переходим в онлайн, и в связи с этим мы увеличили количество мест до 40, а заявки теперь можно подавать из любого города нашей необъятной! Если этот опыт окажется успешным, то мы приложим все усилия, чтобы Школа осталась online навсегда.

    Обучение полностью бесплатное.

    Алгоритм поступления проще, чем сортировка пузырьком:

    1. заполни анкету на сайте

    2. выполни тестовое задание

    3. пройди online-собеседование с нашими сотрудниками

    Мы ждем тебя в нашей Школе!


    Хорошего вам дня и вспоминая Мольера, подведем итог: «Как приятно знать, что ты что-то узнал»!
    HeadHunter
    HR Digital

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое