Pet-проект не только украсит ваше резюме, но и даст опыт, который не раз пригодится вам в будущей работе. Также наличие pet-проекта выгодно выделяет кандидата в глазах нанимателя, это доказывает история старшего разработчика мобильных приложений в крупном российском маркетплейсе, Алексея Маринина. Он рассказал о попытках устроиться на работу без pet-проекта и о том, что изменилось после его создания.
От юриста до мобильного разработчика
По образованию я юрист. Уже после окончания университета я наткнулся на курсы JavaRush и решил попробовать. Меня, конечно же, затянуло. Я сознательно пошел в школу программирования учиться писать код на C. Я усердно учился девять месяцев, написал пару проектов, в том числе интерпретатор командной строки. Однако в процессе я понял, что мне это не очень интересно, да и на рынке программисты на C не востребованы. Тогда я решил переквалифицироваться в мобильного разработчика и принялся за учебу.
Я прошел несколько курсов, прочитал книгу по Swift — языку программирования, созданному компанией Apple, — и со спокойной душой отправился на собеседование. Вот только спокойно пройти его не получилось: на техническом интервью я забыл, как покрасить кнопку, и сразу понял, что мне не хватает практики. Разумеется, работу я не получил. Однако именно этот случай подстегнул меня обратить внимание на pet-проекты.
Откуда брать идеи для pet-проектов
Идеи для своих проектов я брал из окружения. Когда я собирался писать свой первый проект, я помогал с организацией мероприятий. Однажды мне дали интересное задание: заказать пиццу на 300 человек. Именно тогда у меня и возникла идея для pet-проекта.
В разных пиццериях готовят пиццу разного диаметра, поэтому сравнить ее стоимость, чтобы сэкономить, практически невозможно. Я написал приложение, которое берет в качестве вводных диаметр пиццы и цену, после чего рассчитывает ее стоимость на квадратный сантиметр.
Мой второй pet-проект был совсем другим. В качестве вдохновения я открыл несколько самых популярных приложений — VK, Instagram*, Twitter, YouTube — и попытался определить, из чего они состоят.
Все эти приложения похожи между собой. Каждая из них представляет собой таблицу с бесконечным скроллом и пагинацией, которая получает данные из API и выводит их на экране. Тогда я начал искать среди API что-то общедоступное и подходящее. В итоге я остановился на API VK и решил сделать простое приложение, которое позволит создавать свою стену, просматривать стены своих друзей и писать там посты. Это был бесценный опыт: я попробовал себя в отправке, получении и отображении данных, реализовал сквозную авторизацию.
Читайте также: Как распознать змею и получить работу: история одного pet-проекта
Как сделать pet-проект актуальным
Проект по социальным сетям я сделал более масштабным. Я хотел сделать актуальное приложение на технологиях, которые используются на рынке. Чтобы узнать, что сейчас в топе, я создал таблицу в Excel, открыл сайт hh.ru, ввел в поиск «iOS Developer» и стал добавлять в табличку технологии, указанные в вакансиях, сортируя их по популярности для каждой отдельной задачи.
У меня получился такой список:
UIkit — популярный фреймворк для создания веб-интерфейсов на iOS.
Auto Layout с версткой в коде — это подход к верстке в UIkit. В нем используются ограничения — constraint. Вы указываете, как должны располагаться кнопки, и задаете системе некоторые ограничения, которые она затем преобразует в систему линейных уравнений. Потом система отрисовывает ваше представление так, чтобы соблюдались все условия в виде уравнений. Мое мнение — отличный подход, можно быстро верстать, а изменения хорошо видны при code review. Минусы — верстка все же несколько медленнее, чем при использовании фреймов.
Alamofire — самая популярная на тот момент HTTP-библиотека для сетевых запросов на iOS.
CocoaPods — технология для сборки проекта и установки в него сторонних зависимостей.
MVVM — шаблон проектирования архитектуры приложения. Выбрал его потому, что он был довольно популярным и не очень громоздким. Это идеально подходило для моего проекта, получилось не усложнять себе код.
Процесс разработки
Когда план был готов, а технологии прописаны, я обратился к своим знакомым, у которых есть опыт мобильной разработки. Мне нужен был простой совет, с чего начать и как подойти к работе.
Товарищи посоветовали мне поработать с Gitflow. Git — это система контроля версий разработки. Она нужна, чтобы в любой момент вы могли вернуться к нужной точке и не потерять прогресс. А Gitflow — это подход к работе с этим инструментом.
Я начал изучать Gitflow. Помимо того, что мой прогресс в случае неудачи сохранится, был еще один плюс: я облегчил коллегам процесс ревью моего кода, так как высылал его частями. Когда я разобрался в подходе, я создал репозиторий с основными ветками и приступил к работе.
В процессе разработки я обращался к проектам-аналогам, которые подобрал для себя в качестве примера. Я изучал проекты с открытым исходным кодом, смотрел, как они работают, и старался, чтобы у меня получилось что-то похожее. Также я постоянно высылал свой код на ревью коллегам, которые помогли мне избежать серьезных ошибок на ранних этапах.
Новая работа
Через месяц работы с pet-проектом я обновил резюме. Выложил ссылку на свой GitHub, где максимально подробно и в красках расписал, зачем нужно мое приложение и как с ним работать.
Спустя всего два собеседования я нашел работу. Я не уверен, что работодатель вообще смотрел мой проект, но мне пригодились знания, полученные при разработке. Я успешно прошел сложное техническое собеседование. Мне удалось показать весь свой опыт, приобретенный в процессе создания pet-проекта, что и позволило мне получить эту работу.
Тогда я был очень себе благодарен, что так ответственно подошел к своему проекту, допытывался до каждой детали и старался сделать все на совесть. Мне кажется, мой пример показывает обратную сторону любого pet-проекта — вы пишете его не для того, чтобы похвастаться красивым резюме, а чтобы получить новые знания, опыт и практику, которые понадобятся вам при устройстве на работу.
На сегодняшний день я работаю в крупном российском маркетплейсе на должности старшего разработчика мобильных приложений. Также мне удалось поработать в Сбербанке и МТС.
Читайте также: Кто такой iOS-разработчик?
Советы новичкам
Начинающим специалистам очень сложно попасть в поле зрения рекрутеров. Pet-проект — это отличный способ выделиться среди других кандидатов и показать свои навыки.
Вот что я могу посоветовать тем, кто решился создать первый pet-проект:
- Создавайте pet-проект с использованием актуальных технологий. Их можно подсмотреть в описании вакансий от работодателей на hh.ru или Хабр Карьере.
- Проект должен отражать ваши актуальные навыки: показывайте работы, которые написали за последние полгода, не больше.
- Pet-проект должен быть качественным. Можно нанять ментора, который укажет на ошибки и подскажет, что и как можно улучшить. Также попросите своих знакомых из сферы взглянуть на код и указать слабые места.
- Если вы программист, выкладывайте проект не на своем сайте, а на GitHub. При этом уделите внимание структуре репозитория: все ветки должны быть правильно выстроены, а история коммитов — выглядеть аккуратно. Это покажет ваши навыки работы с репозиториями.
- Уделите внимание оформлению проекта. Структура должна быть понятной и удобной, с фото и видео, показывающими результат. Так работодатель сразу увидит, в чем суть вашего pet-проекта.
- Если вы делаете мобильное приложение, огромным плюсом будет выложить его в один из магазинов, например, AppStore или Google Play. Так потенциальный работодатель сможет скачать проект и лично увидеть результат вашей работы.
- При выборе темы pet-проекта чаще всего просто нужно посмотреть вокруг и понять, какого функционала не хватает в вашей жизни. Возможно, это будет приложение для жильцов вашего жилого комплекса, которое поможет отправлять показания счетчиков, вызывать сантехников, уведомлять о грядущих отключениях света.
Работайте над своими pet-проектами, ищите темы в повседневной жизни и не забывайте, что мое первое приложение рассчитывало удельную стоимость пиццы на квадратный сантиметр. А мои коллеги, например, написали приложение с упражнениями для снятия напряжения с глаз. Все мы на сегодня успешно трудоустроились.
*Разработчик Instagram, компания Meta, признана экстремистской в России.