Заказать пиццу на 300 человек, вернуть стену VK и устроиться на работу

c4bdc760-4b0b-4dd1-8631-6f9544906ca9
Мобильный разработчик о том, как pet-проекты открывают двери в Сбербанк и МТС

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, признана экстремистской в России. 

(рейтинг: 5, голосов: 4)
Добавить комментарий