Тестовые задачи

Как проходить тестовое задание. Со всеми задачами мы работаем по методологии PDD. По ходу прохождения теста вы её освоите.

Забираем задачу

Смотрите на список задач, мы отправили его вам вместе с этой инструкцией. Выбирайте любую из списка и забираете её. Для этого напишите в коммент к ней, что вы приступили к работе. Если не напишете, её может забрать кто-то другой. Чтобы пройти тест, сделайте эту задачу за пять календарных дней с того момента, как вы её забрали. Все сделанные задачи оплачиваем по факту. Неважно - тестовые они или нет.

После теста

Если вы успешно прошли тест, мы включаем вас в команду, даём более интересные задачи. Подробнее об этом - в конце этой страницы.

Some test

Работа в github

Мы работаем по стандартному github flow. У нас нет этапа Deploy из этой инструкции. Его делают Архитекторы. В начале ветки указываем номер задачи, которую она решает. Саму ветку называем произвольно. Например 383_filter_prods.

В трекере мы общаемся со всеми по-английски потому что так быстрее. Отвечать можете и по-русски и по-английски.

Что такое сделанная задача

Сделать задачу можно только одним способом - создать pull request с кодом,который её резолвит. Код должен отвечать требованиям качества:

Ревью редко проходят с первого раза даже опытные Прогеры. Это из-за естественной разницы во мнениях по поводу архитектуры и красоты кода. Поэтому рекомендую выставить первый pull request не позже, чем через три дня после начала работы над задачами. Иначе вы рискуете не успеть к сроку в пять дней.

В пулл-реквест вы можете включить не только код, но и паззлы - подзадачи. Для примера паззла поищите строку @todo # в коде. Обычно тестовые задачи просты и для их решения нужен только код, не нужны паззлы. Но всякое бывает, не бойтесь их добавлять. Если они будут не нужны, мы скажем об этом на код-ревью.

Как задавать вопросы

При просмотре списка задач у вас может возникнуть ощущение, что не понятна ни одна. И по задаче в процессе выполнения тоже могут возникнуть вопросы. Это может быть вашей проблемой: вы недостаточно владеете технологиями. Или нашей: у нас непонятный код или документация. Кратко посморим что с этим делать. Более подробно - в статье.

Любые вопросы пишите в комменты к задаче, не в личном сообщении. Если увидели баг, создавайте для него issue в Гитхабе.

Однако мы отвечаем не на все вопросы. Разберёмся какие вопросы уместные, а какие - нет. Условно поделим их на внутренние и внешние.

Внутренние

Вопросы, связанные с нашим проектом.
Могут ли быть у одного товара разные родительские категории?

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

В этом случае задавайте их в комментах к задаче.

Внешние

Вопросы по инструментам/подходам, которые мы используем.
Как в Django ORM отфильтровать товары по имени?

На них мы не отвечаем совсем - для этого есть документация инструментов.

Откуда задачи

Задачи даём по сайтам: первый, второй. Это наши давние проекты, сейчас мы их поддерживаем и немного разрабатываем. Чтобы влиться, рекомендуем почитать README их репозиториев.

На сайтах удобно делать пробные задачи и тренироваться.

Что после теста

Прошёл тест

Мы продолжим выдавать тебе задачи в том же режиме.

Не прошёл тест

Чаще всего из-за расписания. Бывает - из-за недостатка знаний.

За пару месяцев можно привести в порядок и то и другое - пишите нам через пару месяцев и мы повторим тест.

Удачи и развития!