Читать книгу Как стать программистом, переехать в США и получить работу мечты - Виталий Ампилогов - Страница 19

Глава 1. Как стать программистом
Поиск работы
Тестовое задание

Оглавление

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

Первое и самое важное, что стоит сделать, – это понять задание. Внимательно прочитайте его: возможно, некоторые требования будут для вас непонятными. В этом случае составьте список вопросов и отправьте их рекрутеру. Иногда компании специально добавляют неопределенность в задание для того, чтобы увидеть способность кандидата уточнять требования. На начальном этапе необходимо полностью определить требования, иначе в дальнейшем придется многое переделывать.

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

Процесс выполнения тестового задания очень похож на упрощенный процесс создания своего проекта. Начните с составления to-do-листа. Постарайтесь разбить задание на много мелких подзадач. Не забудьте добавить в этот список тестирование, проверку чистоты кода, написание комментариев, юнит-тесты.

Тестовое задание для программистов не предполагает изысков в дизайне, поэтому используйте стандартные компоненты. Придерживайтесь простого и аккуратного визуального стиля в вашем проекте. Вполне вероятно, что программист, который будет проверять ваше задание, даже не запустит ваш проект, а будет смотреть только код.

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

Теперь пришло время применить свои основные навыки в области программирования. В процессе написания тестового проекта уделяйте большое внимание чистоте и понятности кода. На практике это подразумевает хорошие названия для функций и переменных, добавление комментариев, написание понятных протоколов (интерфейсов). Избегайте запутанных решений и различных хаков. Также не оставляйте бесполезные комментарии и закомментированный код.

После окончания разработки стоит еще раз просмотреть все файлы и проверить код. Будет здорово, если у вас есть знакомый программист, который сможет посмотреть ваш проект. Дополнительно стоит потратить время на написание юнит- и UI-тестов, поскольку в процессе проверки тестового задания на это обращают большое внимание.

Заключительный этап – это публикация и добавление описания. Выложите свой тестовый проект в свой репозиторий на GitHub. Человек, который будет проверять ваше тестовое задание, будет за это очень благодарен. Проверять задания на GitHub на порядок удобнее, чем задания, присланные в виде архива. Не забудьте добавить в ваш репозиторий подробное описание проекта и дополнительные сведения. Дополнительно Также можно добавить скриншоты приложения или видео, демонстрирующее его работу.

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

Как стать программистом, переехать в США и получить работу мечты

Подняться наверх