Пет-проект – это собственный, «домашний» проект разработчика, который демонстрирует его владение различными инструментами и технологиями и может рассказать работодателю гораздо больше, чем резюме. Зачастую это еще и любимое детище программиста, которое может превратиться во что-то поистине великое. Не все, например, знают, что почтовый сервис Gmail вырос именно из пет-проекта.
Поговорим о том, как сложность проекта зависит от квалификации его создателя, как найти идею и воплотить ее в жизнь, как создать качественное портфолио.
Для разных уровней специалистов – разные проекты
Пет-проекты чаще всего ассоциируются с деятельностью джунов, собирающих портфолио для собеседования. В таком формате начинающий разработчик может показать все свои умения и навыки и произвести наилучшее впечатление на работодателя. Для этого обычно достаточно нескольких простых разработок, объединенных в общее портфолио: Telegram-бот, to-do-list, калькулятор, несложная игра и т. д. Например, мой сайт, с которым я получил пять офферов из первых шести собеседований на позицию джуна,
выглядел так.
Для мидла пет-проект также не является чем-то чуждым. Он может убедительно показать, что специалист готов взяться за реализацию какой-то более-менее крупной разработки и грамотно довести ее до конца. На этом этапе не стоит взваливать на себя слишком амбициозный проект, требующий более серьезной квалификации и опыта, – вроде социальной сети. Лучше выбрать менее громкую, но полезную идею, которую вы сможете воплотить в жизнь красиво и целостно. Например, это может быть сервис для укорачивания ссылок. Для начала делаем простой бэкенд и фронтенд. Если получилось, можно двигаться дальше: усложнить программный код, внедрить Docker, подсчитать максимальную нагрузку, при которой сервис сможет корректно функционировать, наладить CI/CD и тестирование.
Для сеньоров пет-проекты на собеседованиях редко являются необходимостью, однако их наличие станет несомненным преимуществом. Можно взять разработку, сделанную на уровне мидла, и масштабировать ее, внедрить лучшие практики написания кода, провести рефакторинг. Если решитесь на создание более серьезного проекта, стоит иметь в виду, что от senior-специалиста ожидают демонстрации всех возможных навыков.
Рассчитывайте на то, что этот проект окажется долгим в создании. Например, год назад я, уже будучи старшим разработчиком, начал очередной пет-проект, которому посвящал всё свободное время. И только через полгода у меня был готов MVP.
Выбираем тему и инструменты для пет-проекта
Если типовые проекты вроде to-do list для вас пройденный этап и хочется чего-то большего, поищите источник вдохновения вокруг себя. Посмотрите, какие повседневные процессы вы могли бы автоматизировать с помощью имеющихся навыков и освоения новых.
Например, однажды я обнаружил, что у меня нет удобного сервиса для хранения нужной информации (на тот момент Notion обошел меня стороной), получения быстрого доступа к ней в случае необходимости и одновременно легкого обмена этими данными. Так родилась идея создания
ManKey. Одна из целей этого проекта, помимо его практической направленности, – развитие hard skills. Поэтому я старался придерживаться лучших практик как в стиле написания кода, так и в инструментах.
Представляем проект на собеседовании
Если главной целью вашего проекта является презентация на собеседовании, создавайте его с оглядкой на свою идеальную должность в компании. Распишите обязанности, которые будете выполнять, и технологии, с которыми будете работать. Объедините это всё в проекте, чтобы на собеседовании показать навыки именно в тех областях, которые требуются работодателю.
Важно продемонстрировать реально работающий проект, доступный для других пользователей. Для этого залейте его на какой-нибудь хостинг. Кроме того, вы должны уметь грамотно рассказать о внутренней реализации проекта. Идеально будет показать отдельный модуль, который, на ваш взгляд, наиболее элегантно и эффективно реализован, раскрыть подробности его функционирования.
Помните: работодатель ждет, что программист в его команде сможет воплотить заданную идею в коде, добиться его работоспособности и хорошо представлять себе, как этот код работает. Ваша задача – показать, что вы на это способны.
Оценка пет-проекта: на что обратить внимание?
Представляемый пет-проект должен быть как минимум в стадии работающего прототипа или MVP. Даже если будет функционировать лишь малая часть от всей идеи, это гораздо лучше, чем «почти законченный» крупный проект, который нигде и никак нельзя «пощупать». Просто смотря на код, работодателю сложно понять, как это все будет взаимодействовать и будет ли. А пространные объяснения того, какая это крутая разработка, никого не удовлетворят.
Красиво написанный код пет-проекта для портфолио имеет больше шансов понравиться людям, ответственным за формирование команды разработчиков. Понятный нейминг, красивая архитектура, читаемый код станут вашим преимуществом.
Если пет-проект нацелен на создание продукта, то важно, чтобы он работал качественно. Идеально, если в нем сочетаются красивый и понятный UI (при наличии), быстрый backend (тоже при наличии), минимум багов.
Признаки хорошего портфолио
На мой взгляд, на качество портфолио программиста влияют следующие факторы:
Количество завершенных проектов. Один небольшой законченный проект лучше, чем пять амбициозных, но незаконченных. Множество проектов, не доведенных до конца, характеризует специалиста как человека, который по какой-то причине может бросить дело на полпути. Такого не каждый решится взять в команду.
Возможность посмотреть программный код из портфолио. Наличие ссылок на репозиторий с кодом подтверждает, что это собственный проект соискателя, а не чужой. Еще один плюс такого подхода на собеседовании – можно сразу обсудить с работодателем готовый код. Это намного меньший стресс, чем писать код непосредственно при встрече.
Релевантный стек технологий в проектах портфолио. Например, если вы претендуете на должность backend-разработчика, то портфолио, состоящее только из лендингов, мало чем поможет.