
Быстро начать работу на хакатоне – успеть сделать больше до его окончания. Чтобы формулировка задания не повергла в ступор, лучше всего сразу ознакомиться с предстоящими задачами. Мы провели множество соревнований на Codenrock, поэтому хотим рассказать, с какими задачами регулярно сталкиваются участники на самых разных ИТ-конкурсах: от продуктовых хакатонов до олимпиад по программированию.
Разбор задач продуктовых хакатонов
Главная цель продуктовых хакатонов – разработка прототипа для организатора конкурса. Проект может быть представлен как прототип сервиса или только его часть: например, архитектура системы, ключевой алгоритм или презентация.
Стандартное задание такого соревнования – описание бизнес-проблемы, с которой столкнулся организатор, и предложение участникам разработать продукт, способный решить ее. Компания предоставляет командам всю необходимую для этого информацию:
- Описание возможностей исходной системы, ее сильных и слабых сторон. Например, если решение необходимо для сбора статистики сайта, то участники получат сведения о посещаемости, пиковой нагрузке, целевых действиях пользователей.
- Технические требования к решению. Компания подробно распишет свои пожелания к функционалу, объяснит каждый этап разработки продукта. К примеру, при разработке сервиса для сотрудников поддержки будет необходимо учесть возможность настройки рабочего графика и системы взаимодействия с очередью запросов, создать систему оценки качества обслуживания.
- Технологический стек, на который можно ориентироваться при разработке проекта.
- Ожидаемый результат. Будут подробно описаны форматы, в которых жюри хотят получить решение и его составляющие части: исходный код, презентация, документация и т.д.
Пример задачи и ее решения для продуктового хакатона
Задача участников – создать мобильное приложение, веб-сервис или чат-бота на основе API-стандартов банка. Проект должен быть полезен для клиентов финансовой организации. Алгоритм решения:
- Определяем задачу. Необходимо выбрать конкретную проблему, с которой поможет справиться продукт. Это может быть, например, анализ расходов и доходов с рекомендациями по оптимизации.
- Затем выбираем формат – мобильное приложение. Для разработки фронтенда используем React Native, для бэкенда – Node.js. Реализуем функции контроля трат и ежемесячных автоматических платежей, просмотра баланса, составления диаграмм.
- Подготовим проект к загрузке на платформу. Для этого необходимо организовать исходный код продукта, написать краткую документацию, сделать демоверсию для демонстрации жюри и презентацию с описанием проблемы, решения, архитектуры продукта.

Важный этап практически любого продуктового хакатона – чек-поинты с экспертами. На этих онлайн-встречах специалисты подробнее расскажут про задачу, скорректируют направление разработки проекта и укажут на ошибки, которые следует исправить в первую очередь.
Жюри при оценке решений обычно учитывает следующие критерии:
- Соответствие бизнес-задачам и наличие дополнительных функций.
- Понятность и удобство интерфейса.
- Подробность документации.
- Перспективы масштабирования сервиса.
- Возможности импортозамещения, применение open source решений.
- Наличие хорошей презентации, а также успешность питчинга и защиты проекта, если проводится дополнительный этап хакатона.
Продуктовые хакатоны на Codenrock:
- ARCHI.Tech от ВТБ. Соревнование для ИТ-архитекторов, где командам предстояло разработать архитектуру сервиса для сбора статистики посещений сайта, электронной очереди или системы приема заказов.
- Хакатон по кибериммунной разработке 2.0 от «Лаборатории Касперского». Участники разрабатывали устойчивого к кибератакам дрона-инспектора критической инфраструктуры.
- Кокос Hackathon 2023. В двух треках конкурсанты создавали решение для автоматического определения тематики веб-ресурса и приложение, способное конвертировать физическую активность в благотворительные пожертвования.
Разбор задач по машинному обучению
ML-соревнование – это хакатон, в котором участникам предстоит решить задачу с помощью машинного обучения. Команде необходимо подготовить модель машинного обучения, которая сможет решить проблему, и оценивается именно качество и точность ИИ.
Чаще всего на ML-соревновании участникам предстоит работать с классическими задачами машинного обучения:
- Классификация – отнесение объекта к определенной категории на основе набора признаков.
- Кластеризация – распределение данных на группы.
- Регрессия – прогнозирование на базе выборки объектов с различными признаками.
- Уменьшение размерности – сведение большого числа признаков к меньшему.
- Детекция аномалий – обнаружение артефактов среди стандартных случаев и их отделение.

Для решения задачи участники получают baseline-модель, которую необходимо доработать и повысить итоговый результат. Организаторы ML-соревнования предоставляют два датасета: обучающее множество для тренировки ИИ и тестовое множество для оценки результата. Также могут использоваться валидационные данные для финальной проверки решения.
Расчет точности проводится по одной из метрик: F1, Logistic Loss, AUC или другой. Сведения о прогрессе обучения отображаются на лидерборде. Решения, занявшие в конце соревнования наивысшие места, объявляются победителями.
Пример задачи и ее решения для ML-соревнований
Задача участников – разработать модель для классификации сгенерированных нейросетью текстов на две категории: корректный текст и текст с «галлюцинациями». Цель – определить и минимизировать случаи генерации неправильных ответов LLM, чтобы повысить точность и надежность вопросно-ответных систем. Данные в обучающем множестве представляют собой набор [текст документа] — [контекст] — [бинарная метка]. Для тестового множества требуется по тексту документа и контексту определить метку.
Алгоритм решения:
- Проведите предобработку данных, токенизацию и очистку.
- Выберите подходящую модель. Например, можно использовать предобученные системы, такую как BERT или RoBERTa.
- Проведите тренировку решения на обучающем наборе данных и используйте валидационную выборку для настройки гиперпараметров.
- Оцените результат. Ориентируйтесь не только на целевую метрику, но и на другие показатели: точность, полноту и прочие показатели.
- Улучшение модели. Повторите шаги обучения и оценки, добавляя новые данные, чтобы решение могло занять более высокую строку в лидерборде.
Нередко компания проводит дополнительный финальный этап, в котором лучшие проекты по целевой метрике оценивает жюри, а авторы выступают с питчингами. В этом случае могут учитываться следующие критерии:
- Качество кода: прохождение тестов, отсутствие избыточных зависимостей, быстрая работа решения.
- Ресурсоемкость: сколько CPU/GPU и RAM потребляет проект, как быстро проходит инференс.
- Документация: насколько подробно описан проект, есть ли осмысленные комментарии в коде.
- Масштабируемость: способна ли модель работать с другими наборами данных, может ли быть развернута в полноценный сервис.
Примеры задач с ML-хакатонов на Codenrock:
- X5 Tech AI Hack. Команды тренировали модели, способные распознавать чувствительные данные в тексте и обнаруживать «галлюцинации» в результатах генерации.
- «Ясная система: Сделай сложное понятным» от МТС. Участникам предстояло разработать инклюзивную систему, которая может переписать сложные банковские тексты в ясном стиле, понятном людям с ментальными особенностями, пожилым людям и иностранцам, плохо владеющим русским языком.
- GPM AdTech Challenge. В одном из треков конкурсанты обучали ИИ предсказывать конверсию пользователей в рекламном аукционе на основе 3-party данных.
Разбор задач соревнований по программированию
Участник получает ряд алгоритмических задач, для которых нужно написать код на выбранном языке программирования, выполняющий определенную функцию. Решение проходит автоматическую проверку по следующим критериям:
- Быстродействие кода.
- Правильность формата вывода.
- Тестирование на различных входных данных.
- Сравнение с эталонным решением.

Система дополнительно учитывает затраченное на выполнение каждой задачи время – этот показатель поможет определить победителя, если несколько участников продемонстрируют одинаковый результат.
Примеры задач соревнований по программированию на Codenrock
Соревнование «Халява, приди!» для начинающих разработчиков. В одном из заданий участникам предстояло написать на языке C++, Python, C#, Java или Golang код, который посчитает сумму элементов в списке, встречающихся только один раз, за исключением элементов с нулевым и последним индексом. На вход программа должна получить строку из целых чисел, разделенных запятой, на выходе вывести на экран целое число.
Решение:
numbers = list(map(int, input().split()))
dict_counter = {}
for number in numbers[1:-1]:
if number in dict_counter:
dict_counter[number] += 1
else:
dict_counter[number] = 1
print(sum(num for num, count in dict_counter.items() if count == 1))
Возможности Codenrock не ограничиваются только работой с языками программирования. На платформе можно провести соревнование для аналитиков благодаря поддержке PostgreSQL. Такой хакатон организовал ХоумБанк – HomeHack.
Во втором треке участники выполняли задания на проверку знаний по SQL. Конкурсантам было необходимо написать запрос, который выберет из таблицы все email-адреса сотрудников, отвечающих за администрирование системы. Итоговая строка должна содержать адреса, перечисленные через запятую и отсортированные по фамилии.
Решение:
SELECT STRING_AGG(EMAIL, ', ' ORDER BY FIO)
FROM administrators
Также задача с HomeHack. Есть большая таблица, содержащая десятки миллионов строк с первичным ключом по полю ID. Необходимо написать SQL-запрос, который получит минимальное и максимальное значения поля ID из этой таблицы.
Решение:
SELECT MIN(ID) AS min_id, MAX(ID) AS max_id
FROM minmax
Бонус – разбор олимпиадной задачи от участника МТС True Tech Champ









Задачи для участников хакатонов разнообразны: от социальных решений до финансовых сервисов и видеоигр. Каждое соревнование – уникальная возможность проявить креативное мышление, технические навыки и командную работу. Разбор приведенных в статье примеров поможет улучшить результаты участия в конкурсах, развиваться в профессии и вносить вклад в инновации и технологический прогресс.