Читать книгу: «Как стать программистом, переехать в США и получить работу мечты», страница 4

Шрифт:

Поиск работы

Термины:

Рекрутер – специалист по поиску кандидатов

Интервью – собеседование

Интервьюер – человек, проводящий собеседование

Оффер – письменное предложение о работе с указанием заработной платы

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

Реальность такова, что зарплаты программистов в Москве и Санкт-Петербурге в 2—3 раза больше, чем в регионах. Если вы сейчас за пределами этих городов, то стоит серьезно задуматься о поиске работы и переезде в столицу. Нет большой разницы, в каком городе искать работу, в плане сложности прохождения собеседования. Помимо высокой зарплаты, переезд в Москву и Санкт-Петербург откроет много карьерных перспектив и поможет получить новые связи. Также это отличный вариант оценить все сложности смены места жительства и подготовиться к последующему переезду в другую страну.

В процессе поиска работы важно поставить цель добиться лучшего результата. Например, устроиться на работу в московский офис «Яндекса», Mail.ru, «Тинькофф», Avito, Badu или Revolut. Возможно, на первый взгляд это может показаться малореалистичным, особенно для программиста без опыта работы, но в реальности у вас есть все шансы. В следующих главах мы подробно поговорим о том, что нужно делать для получения работы мечты.

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

Процесс поиска работы, как правило, состоит из следующих этапов:

1. Составление резюме.

2. Поиск вакансий.

3. Выполнение тестового задания.

4. Техническое собеседование.

5. Обсуждение и подписание приглашения на работу.

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

Составление резюме

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

Если не вдаваться в подробности, задача рекрутера состоит в том, чтобы найти кандидата, который соответствует описанию вакансии. Это значит, что данные в вашем резюме должны дать рекрутеру всю необходимую информацию для принятия решения о том, что вы подходите на имеющуюся вакансию. Еще одна задача рекрутера – проверить, нет ли в вашем резюме неправды. Я настоятельно рекомендую не врать в процессе поиска работы.

Далее я приведу пример резюме, которое вы сможете использовать в качестве шаблона.

Иванов Сергей

Junior iOS Developer (Swift)

Дата рождения: 17.09.1990

Город: Пермь (готов к переезду)

Телефон: +7 (123) 456 78 90

Email: sergey.ivanov@gmail.com

GitHub: github.com/sergey. ivanov

ОПЫТ РАБОТЫ

iOS-разработчик (март 2020 – настоящее время)

Полный цикл разработки приложений, от идеи до продвижения в App Store.

Movie List – простое и удобное приложение для составления списка фильмов.

– Реализовал клиент-серверное взаимодействие с The Movie Database API

– Разработал более 10 экранов с нестандартным дизайном, используя UIKit

– Реализовал синхронизацию данных с использованием CloudKit

– Использовал CoreData для кеширования пользовательских данных

– Локализовал приложение на 4 языка и опубликовал в App Store

– Написал 30 юнит-тестов и 10 UI-тестов

– Приложение было скачано более 7 000 раз за 6 месяцев

Travel Guide – офлайн-путеводитель по популярным городам мира.

– Реализовал поддержку офлайн-карт на базе фреймворка MapBox

– Использовал Core Data для доступа к данным без интернета

– Добавил монетизацию приложения с использованием StoreKit

– Реализовал 12 экранов с нестандартными UI-компонентами, используя UIKit

– Опубликовал и продвигал приложение в App Store

КЛЮЧЕВЫЕ НАВЫКИ

– Умение писать чистый и понятный код

– Навыки разработки и дизайна современного UI

– Опыт проектирования и разработки клиент-серверных приложений

– Умение заканчивать работу в срок

ТЕХНОЛОГИИ

Swift, UIKit, Foundation, CoreLocation, Autolayout, CocoaPods, Git, JSON, Client-Server API, GCD/Operation, MVP, Core Data, StoreKit, iCloud Sync

КУРСЫ

Видеокурс Swift – Алексей Скутаренко

Разработка iOS приложений на Swift – Geekbrains

ОБРАЗОВАНИЕ

Высшее образование: Пермский национальный исследовательский технический университет – «прикладная информатика» (2015—2020)

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

Давайте рассмотрим подробнее наиболее важные элементы резюме. Первое, на что обращает внимание рекрутер, – это название должности. Важно указать конкретную позицию, например Junior iOS Developer (Swift). Таким образом вы не только привлечете внимание рекрутера, но и сэкономите свое время, исключив предложения о нерелевантных вакансиях. Ошибкой будет написать в должности просто «Программист», поскольку это вносит большую долю неопределенности о кандидате.

Добавьте к вашему резюме фото: люди хотят видеть, с кем им предстоит работать. Ваша фотография должна быть сделана в бизнес-стиле, не стоит выбирать снимок с отдыха или вечеринки. Будет здорово, если у вас получится произвести позитивное и дружелюбное впечатление, используя фотографию.

Не забудьте добавить контактные данные. Если вам неудобно отвечать по телефону в течение дня, то добавьте комментарий о том, что предпочтительный способ связи – email. В этом же разделе следует указать ссылку на свой GitHub-профиль. Не забудьте предварительно привести свои репозитории в порядок и добавить описание к каждому проекту. Хороший GitHub-профиль обеспечит вам приглашение на собеседование, а в некоторых случаях может послужить заменой тестового задания. Подробно об оформлении GitHub-профиля мы поговорим во второй части книги.

Следующий важный момент – это опыт работы. Основной упор должен быть сделан на релевантном опыте. Даже если вы успешно проработали последние несколько лет в индустрии, не связанной с ИТ, не добавляйте это в резюме. Ничего страшного, если у вас будет всего лишь одна запись о самостоятельной разработке приложений. Коротко опишите проект, укажите ваши обязанности и технологии, с которыми вы работали. Будет здорово, если вы добавите конкретные цифры и результаты, например процент покрытия тестами, количество скачиваний, или коротко опишете сложные технические решения.

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

Не забудьте указать список технологий и фреймворков, с которыми работали. Рекрутеру важно увидеть в вашем резюме определенный список ключевых слов, которые содержатся в вакансии. Для понимания востребованности технологий вы можете поискать вакансии на HeadHunter и проанализировать, какие есть требования к кандидатам в рамках определенного языка программирования. Посмотрев вакансии, вы найдете пробелы в своем опыте и поймете, какие технологии наиболее востребованы.

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

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

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

Поиск вакансий

Первый этап поиска работы – это поиск вакансий и установка контакта с рекрутером компании. Найти вакансии можно на различных онлайн-площадках, таких как HeadHunter, SuperJob, «Хабр Карьера», Rabota.ru. Здесь нет ничего сложного: регистрируетесь на сайте, заполняете свои данные и отправляете отклики. Для кандидатов эти сервисы всегда бесплатные.

Последнее время активно развивается поиск работы в Telegram-каналах. Самые популярные из них: DevJobs (@devjobs), Job Geeks (@jobgeeks), Tproger (@tproger_official), MyJobIT (@myjobit), GetIT Russia (@headzio), Logic (@logic), ForDev (@fordev), Mobile Dev Jobs (@mobile_jobs), DevOps_Jobs (@devops_jobs_feed), JavaScript Jobs (@javascript_jobs_feed). Можно подписаться на эти каналы и откликаться на вакансии, которые соответствуют вашим навыкам и опыту.

Еще один вариант – поиск вакансий на сайтах компаний. Не все ИТ-компании публикуют объявления на сторонних ресурсах. Также если вы хотите попасть в определенную компанию, но в настоящее время у них нет подходящей вакансии, вы всегда можете отправить свое резюме и поинтересоваться, нет ли у них подходящей для вас позиции.

Следующий способ поиска работы – социальная сеть LinkedIn. Я настоятельно рекомендую вам зарегистрироваться в LinkedIn, заполнить там профиль и развивать свою сеть контактов, несмотря на то что этот сервис, вероятно, по-прежнему заблокирован на территории России. В дальнейшем LinkedIn будет играть важную роль в поиске работы не только в России, но и в США. Не забудьте указать, что вы в активном поиске работы, и ежедневно добавляйте новые контакты вне зависимости от личного знакомства. Широкая сеть контактов откроет вам доступ к рекрутерам крупных ИТ-компаний по всему миру.

Вероятно, в LinkedIn вас найдут независимые рекрутеры, которые работают сразу с несколькими компаниями. Не переживайте, вам ничего не придется платить, поскольку агенты получают комиссию с компании, если вы пройдете собеседование и примете оффер.

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

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

В процессе поиска работы обязательно попробуйте устроиться в крупные российские ИТ-компании, такие как «Яндекс», Mail.ru, Avito, Сбербанк, «Тинькофф Банк». Если у вас получится попасть в одну из этих компаний, то вы быстрее наберетесь опыта и получите возможность поработать над большими и интересными проектами. Также можно попробовать устроиться в аутсорс-компании (занимаются разработкой под заказ), которые имеют офисы в США. Это позволит в дальнейшем перевестись в американский офис компании. Одна из самых известных компаний в этой сфере – EPAM.

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

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

Разговор с рекрутером

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

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

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

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

Как правило, телефонное интервью длится 15—25 минут. Если все пройдет хорошо, то рекрутер покажет ваше резюме техническим специалистам, и они примут решение о приглашении на собеседование. Также перед техническим собеседованием вас могут попросить выполнить тестовое задание.

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

Тестовое задание

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

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

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

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

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

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

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

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

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

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

Собеседование

Собеседование с техническим специалистом компании – это главный этап в процессе поиска работы. В основе собеседования лежит проверка ваших профессиональных навыков, способности писать качественный код и показывать хорошие результаты. Собеседование состоит из нескольких частей и, как правило, включает в себя следующие этапы: знакомство и обсуждение опыта работы, проверка знаний языка программирования, проверка прикладных знаний, решение задач. Этапы могут отличаться в различных компаниях. Где-то вас могут спросить только про прикладные навыки, а где-то заставят решать задачи на алгоритмы и структуры данных.

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

Знакомство и предыдущий опыт

Первая часть собеседования самая простая: вам предстоит коротко рассказать о своем опыте и проектах, над которыми вы работали. Заранее подготовьте небольшую самопрезентацию на 2—3 минуты. Особое внимание стоит уделить наиболее актуальному опыту, полученному в последний год. Постарайтесь построить свой рассказ на технических данных и вашем вкладе в развитие проекта. Интервьюеру интересно услышать о том, какие сложные технические проблемы вы решали. Не стоит много рассказывать о продуктовых функциях приложения и прочих деталях, не связанных с вашей основной деятельностью.

Технические вопросы

Далее вам предстоит ответить на вопросы, связанные с языком программирования и наиболее популярными фреймворками. Для подготовки к этому этапу поищите в поисковике информацию по запросу [название вашего языка программирования] + вопросы на собеседовании. Предстоит подготовить ответы на эти вопросы, чтобы увеличить свои шансы на получение работы. Сходив на несколько собеседований, вы поймете, какие темы в основном интересуют интервьюеров. Я встречал парней, которые сходили на десятки собеседований и уже знали ответы на практически все вопросы. Однако опытный интервьюер в такой ситуации начинает задавать более глубокие вопросы. Поэтому просто зазубрить ответы без общего понимания и практического использования не получится.

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

Достаточно часто в процессе собеседования просят решить какую-нибудь несложную задачу. Задачи бывают двух типов: алгоритмические и прикладные. Алгоритмические задачи направлены на проверку знаний в области компьютерных наук. Например, вас могут попросить развернуть связанный список или определить, является ли строка палиндромом. Для получения базовых знаний в этой области можно прочитать книгу «Грокаем алгоритмы». В ней просто и понятно донесены основные идеи, связанные с алгоритмами и структурами данных. В дальнейшем эти знания пригодятся вам для поиска работы в США. В российских компаниях решение алгоритмических задач не является основным показателем кандидата в отличие от собеседований в США. Если вы хотите попрактиковаться в решении задач, то можете бесплатно это сделать на сайте leetcode.com.

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

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

Бесплатный фрагмент закончился.

Бесплатно
400 ₽

Начислим

+12

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе
Возрастное ограничение:
12+
Дата выхода на Литрес:
13 января 2021
Объем:
240 стр. 18 иллюстраций
ISBN:
9785005306425
Правообладатель:
Издательские решения
Формат скачивания:
Текст
Средний рейтинг 3,7 на основе 37 оценок
Текст, доступен аудиоформат
Средний рейтинг 4,4 на основе 9 оценок
По подписке
Текст
Средний рейтинг 4,4 на основе 16 оценок
По подписке
Текст, доступен аудиоформат
Средний рейтинг 5 на основе 10 оценок
По подписке
Текст
Средний рейтинг 4,9 на основе 10 оценок
По подписке
Текст
Средний рейтинг 4,5 на основе 24 оценок
По подписке