Рассмотрим тестовое задание на должность Python программиста в компанию ООО «ТП Лаб».
Введение
Мне позвонил HR из ИТ-компании ООО «ТП Лаб» в Санкт-Петербурге, которая занимается разработкой ПО на Python и предложила пройти тестовое задание. Я его выполнил, все оформил как требовалось, но после отправки результата даже не получил никакого фидбека, ситуация очень стрёмная, поэтому передам привет Алене Ермакович и опубликую само задание и результат, который у меня получился.
Наверняка моя статья будет хорошо индексироваться в поисковых системах и всем, кто планирует устроиться в эту компанию, советую не тратить время на выполнение тестовых заданий, останетесь без ответа — как я.
Задание я получил в пятницу вечером и прислал ответ в субботу. Для меня не понятно, почему так произошло, может попал под ковровую бомбардировку эйчара, которая всем налево и направо раздавала задания 🙂
Ответ к данному заданию я опубликую в конце статьи, но если тебе хочется попрактиковаться в решение тестовых заданий при прохождение собеседований — попробуй сделать сам, это не сложно, но может отнять несколько часов.
Тестовое задание
Написать клон телеграм-бота @vsratoslavbot с минимальным функционалом.
Бот получает от пользователя картинку, выбирает из файла-сборника случайную подпись и рисует её на картинке пользователя. Полученную картинку бот отправляет пользователю и предлагает ей поделиться.
Технические требования
- Реализовать на языке Python.
- Все настройки бот должен брать из переменных окружения.
- Картинки пользователя бот должен сохранять в папку (путь до неё настраивается) с именем в формате «YYYY-MM-DD_HH:mm_<user id>.jpg».
YYYY — год, четыре знака,
MM — месяц, два знака,
DD — день, два знака,
HH — часы, 24 часовой формат, два знака,
mm — минуты, два знака,
<user id> — id пользователя, приславшего фото
- Если пользователь согласен поделиться картинкой — бот репостит её в канал, который указан в настройках бота.
- Файл-сборник имеет текстовый формат, каждая фраза занимает отдельную строку. Путь до файла-сборника указывается в настройках.
Критерии оценивания
За каждый пункт начисляется один балл, максимум 4.
- Бот выполняет заявленные функции.
- Код оформлен в репозиторий на Github/Bitbucket.
- Бот использует как можно меньше внешних зависимостей, необходимые зависимости указаны в requirements.txt
- Для бота написан Dockerfile для сборки образа.
Бонус-баллы
За каждый пункт начисляется один балл, максимум 4.
- Зависимости в requirements.txt указаны с версиями.
- Есть юнит-тесты.
- Для бота есть инструкция по запуску в README.md проекта.
- Подписи к картинкам сделаны шрифтом Lobster.
Решение
Я решил опубликовать свой готовый вариант — github.com/r4hx/ptlab-test
Заключение
Мне на выполнения этого задания понадобилось около 6 часов, а сколько потратишь ты? 🙂