Добавить в корзинуПозвонить
Найти в Дзене
От Джуна до Лида (IT Jobs)

Как выполнять тестовые задания для java-джуниоров/стажеров, чтобы попасть на собеседование

Каждому начинающему или уже опытному программисту в той или иной мере приходилось сталкиваться с тестовыми заданиями на собеседовании при приеме на работу. В данной статье разберем рекомендации, которые помогут в решении тестовых заданий Список рекомендаций к выполнению тестового задания: #it #java #тест #hr #работа #собеседование

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

Список рекомендаций к выполнению тестового задания:

  1. Ваше решение должно работать в соответствии с ТЗ. Досконально выполняйте требования изложенные в условиях к решению задачи. Не додумывайте своих полей у сущностей, не меняйте условия валидации и т.д. и т.п. Это показывает насколько вы внимательны к деталям, что для разработчика очень важно.
  2. Кропотливо проверяйте выполненную задачу. Сделали задачу — проверьте работоспособность. Сначала основной функционал, описанный в ТЗ, затем дополнительный. Постарайтесь «сломать» свое приложение: проверить или адекватно заданию себе введет приложение, если ввести невалидные данные, данные максимально похожие. Не забудьте только исправить все, что найдете.
  3. Кодировка. Все файлы должны быть в одной кодировке, на мой взгляд в UTF-8. Настройте свою IDE для этого. Помните, если у вас Windows, то у проверяющего может быть Linux, а дополнительные приседания с кодировкой — лишняя трата времени проверяющего.
  4. Не делайте задачу в один коммит. Нужно коммитить по мере решения своей задачи, добавляйте к коммитам внятные описания. Если знаете английский, то лучше на английском языке. Это косвенно указывает на то, что вы не просто слили чужое решение с гита, а писали код сами.
  5. Старайтесь не сливать чужие решения. Учитывая, что вы претендуете максимум на джуна, чаще всего у вас еще недостаточно опыта, чтобы использовать чужой код. Условия задачи могут незначительно меняться и когда вы просто копируете чужое решение, оно уже может немного не соответствовать текущей задаче. А задача должна быть выполнена в точности с заданием.
  6. Добавьте файл readme. Добавьте в корень проекта readme.md файл. Вкратце опишите свое приложение, выложите дополнительные пояснения для запуска, если необходимо. Если у вас есть другие уже выполненные задачи — добавьте readme и туда. Я, например, если кандидат заинтересовал, могу посмотреть и другой его код. Да и если не пройдете сюда — этот код вы тоже можете приложить в резюме.
  7. Делайте удобное меню. Приложение должно быть user friendly. Помните, что время для проверки часто ограничено, поэтому перезагрузите приложение данными, добавьте метод показать все сущности (какая там в условиях). Переходы по меню должны быть удобными, например при помощи цифр. А то иногда реализуют так, что для удаления сущности нужно ввести в консоли «Delete». Однако здесь нельзя перестараться и выйти за рамки ТЗ.
  8. Делайте максимально хорошо, насколько вам позволяют ваши навыки. Раз уж вы решили выполнять тестовое задание, подходите к его решению с максимальной отдачей. Даже если задача кажется тривиальной и простой, не нужно подходить к ее решению формально и писать код на коленке. И если вы не пройдете в эту компанию, то у вас на гитхабе останется выполненное решение, а это практика.
  9. Не забывайте о принципах ООП. Пусть вам кажется, что задача небольшая не забывайте — задание тестовое, а java в первую очередь объектно ориентированный язык. И смотреть будут не только на работоспособность приложения но и на код. Качество кода — это очень важная часть решения. Не пишите спагетти код. Разложите все по классам, пакетам. Создайте где нужно интерфейсы, вынесите перечисление в ENUM, если необходимо.
  10. Постарайтесь использовать паттерны проектирования. Удачное применение хотя бы одного паттерна проектирования покажет, что вы имеете понятие о паттернах проектирования (либо не имеете). Только прежде чем применять тот или иной паттерн — разберитесь в чем задумка, как он должен работать и для чего он был придуман. Я, если вижу паттерны в коде, потом на собеседовании могу задать вопрос о примененном паттерне.
  11. Пользуйтесь ресурсами. Все сообщения выводимые пользователю лучше выносить в ресурсы и брать оттуда. Это покажет проверяющему, что вы умеете работать с ресурсами и понимаете для чего они используются. Сообщения лучше выводить на английском языке.
  12. Не забывайте переопределять где нужно equals & hashcode
  13. Используйте фичи java8+, такие как лямбда-выражения, стримы. Не забывайте, что чаще коллекции удобнее массива. Если выбор пал в пользу коллекций, то пользуйтесь правильными коллекциями. Вы должны на собеседовании быть готовым обосновать свой выбор в пользу той или иной коллекции либо массива.
  14. Тесты. Если умеете, напишите тесты, но это уже на пять с несколькими плюсами. Часто, подразумевается, что любой хороший код обычно покрывают тестами. Хотя для приведенной в примере задаче, отсутствие тестов минусом не будет, так как это простое консольное приложение на знание java core

#it #java #тест #hr #работа #собеседование