Тестовое задание при трудоустройстве?

Приведите, пожалуйста, примеры тестовых заданий при трудоустройстве на вакансию Junior Python/Django разработчик.
  • Вопрос задан
  • 33194 просмотра
Решения вопроса 3
dizballanze
@dizballanze
Software developer at Yandex
Одно из заданий, которое давал джуниорам:

Нужно сделать простой сервис проведения тестирования по каким-либо темам. Т.е. есть тесты с вариантами ответов, один или несколько вариантов должны быть правильными. Тесты группируются в наборы тестов, которые затем пользователь может проходить и видеть свой результат.
Функциональные части сервиса:
  • Регистрация пользователей
  • Аутентификация пользователей
  • Зарегистрированные пользователи могут
    • Проходить любой из тестовых наборов
      • Последовательный ответ на все вопросы, каждый вопрос должен выводится на новой странице с отправкой формы (перескакивать через тесты или оставлять неотмеченными нельзя)
      • После завершения тестирования смотреть результат:
        • количество правильных/неправильных ответов
        • процент правильных ответов



  • Админка. Стандартная админка Django. Разделы:
    • Стандартный раздел пользователей
    • Раздел с наборами тестов
      • Возможность на странице набора тестов добавлять вопросы/ответы к вопросам/отмечать правильные ответы
      • Валидация на то, что должен быть хотябы 1 правильный вариант
      • Валидация на то, что все варианты не могут быть правильными
      • Удаление вопросов/вариантов ответов/изменение правильных решений при редактировании тестового набора


Требования
  • Код в репозитории на GitHub.
  • Список всех зависимостей должен храниться в requirements.txt, соответственно можно установить их командой pip install -r requirements.txt.
  • Разработка должны вестись в virtualenv, но сама директория с virtualenv должна быть добавлена в .gitignore.
  • Настройки должны храниться в settings.py, но также, при наличии settings_local.py в той же директории, настройки из settings_local.py должны переопределять настройки в settings.py. Т.е. если есть файл settings_local.py, то определенные в нем параметры имеют больший приоритет. Сам файл settings_local.py добавляется в .gitignore. Таким образом у каждого девелопера и на бета сервере можно использовать кастомные настройки, например для соединения с БД.
  • Должен работать один из способо создания структуры БД. Встроенный manage.py syncdb или миграции через South (будет плюсом).
  • По фронт-енду требований никаких не предъявляется. Интерфейс на твое усмотрение и он не буде оцениваться. Можно использовать любимый фреймворк или, например, воспользоваться Twitter Bootstrap.
Ответ написан
kumaxim
@kumaxim
Web-программист
Одно из самых часто встречающихся по версии резидентов одного южного коворкинга.

Необходимо создать веб-приложение для управления базой данных бонусных карт (карт лояльности, кредитный карт и т.д. Я встречал много вариаций).

Список полей: серия карты, номер карты, дата выпуска карты, дата окончания активности карты, дата использования, сумма, статус карты (не активирована/активирована/просрочена).

Функционал приложения
  1. список карт с полями: серия, номер, дата выпуска, дата окончания активности, статус
  2. поиск по этим же полям
  3. просмотр профиля карты с историей покупок по ней
  4. активация/деактивация карты
  5. удаление карты

Реализовать генератор карт, с указанием серии и количества генерируемых карт, а также "срок окончания активности" со значениями "1 год", "6 месяцев" "1 месяц". После истечения срока активности карты, у карты проставляется статус "просрочена".

Примечание: поля с датами должны содержать также и время.


Вообще почитай книжку "Достаточно ли Вы умны, чтобы работать в Google", задачи из нее мозг разносят на раз. Хотя бы страниц 10-20 перед собеседованием прочесть рекомендую.

На собеседованиях, особенно если нанимаем Junior'а, по большому счету владение языком/фреймворком спрашивают по минимуму. В основном делается упор на значение базовых моментов математики(мат.логика: СДНФ, СКНФ и т.д. очень часто), структур данных(дискретная математика, деревья, как минимум), принципов(минимум DRY & SOLID) и шаблонов проектирования(GRAPS & GoF) и т.д.

Иногда задается вопрос вида "А какой самый важный(главный, основной) на Ваш взгляд шаблон(принцип, техника) проектирования(программирования)?" Лично для меня этот шаблон называется "Здравый смысл". Описание можно глянуть в Википедии

P.S.: успехов в трудоустройстве :-)
Ответ написан
Комментировать
@sakuradaj
https://docs.google.com/document/d/1x1SQgCMGDVJRvB...

Категория: Платиновые тесты на вакансию Python/Django разработчик
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы