Пет-проект - онлайн-проект, который разработчик/разработчики делают для оттачивания и демонстрации своих навыков. Пет-проекты демонстрируют то, с какими задачами сталкивался разработчик и как он их решил. Пет-проектом может быть свой маленький стартап или небольшой прикольный скрипт, который можно запустить и поиграться.
Зачем таки нужны пет-проекты? Попробую объяснить в этой статье
Любой разработчик, который выходит на рынок фриланса или поиска работы, сталкивается с тем, что в резюме или в требованиях к исполнителю просят указать опыт и прислать ссылки на несколько запущенных проектов. При этом у разработчика очень мало или вообще нет реальных запущенных проектов, которые он делал. Получается такая ситуация, что на работу идеально подходишь, но по каким-то причинам у тебя нет под рукой ссылок на проекты, которые ещё живы.
Что же можно делать в такой ситуации? Многие заказчики и HR не доверяют разработчикам, если у них нет за спиной каких-нибудь реально сделанных и запущенных проектов. Отчасти это связано с тем, что сейчас рынок IT услуг очень перенасыщен начинающими разработчиками, которые выдают себя за опытных. Многие из них просто копируют резюме более опытных разработчиков, меняют его под себя и пытаются найти работу. Поэтому большое внимание уделяется даже не списку навыков разработчика, а тому, какие именно проекты он делал.
Получается такой замкнутый круг - проектов у тебя нет, потому что никто не даёт тебе работу, потому что проектов у тебя нет. Здесь таки и просыпается необходимость в создании пет-проектов.
Пет-проект, как описано выше, это проект, который демонстрирует навыки разработчика. Ведь для того, чтобы создать проект, разработчику нужно придумать нетривиальную идею, просчитать архитектуру работы проекта, придумать дизайн и т.д. и т.п. Большим плюсом будет то, если над проектом будет работать сразу несколько человек, ибо это поможет научиться работать в команде.
Кратко разберём создание пет-проекта по порядку:
Идея
Очень важно для проекта придумать нетривиальную идею. Она должна вписываться в навыки разработчика, но не должна быть слишком простой. Например создание аналога твиттера или ютюба не прокатит, потому что в интернете куча уроков и готовых решений по этому поводу. Нужно придумать что-то своё.
По классике, разработчики обычно делают соц. сети, мессенджеры, маркетплейсы и другое, что может первое прийти в голову. И это хорошо, можно взять классическую заевшуюся идею, но нужно реализовывать её на уровне. Важно помнить, что ваш пет-проект - олицетворение ваших навыков, качества работы и самого подхода к работе. Нельзя просто для галочки за один вечер создать самую простую соц. сеть. Если вы делаете проект, вы должны придумать к нему крутые фишки, которые нигде или редко где реализованы. Вам нужно впечатлить любого, кто зайдёт по ссылке в ваш проект.
Реализация
Важно делать проект качественно. Попробуйте придумать к нему хороший дизайн. Если не получается - наймите дизайнера или договоритесь, чтобы он поработал с вами бесплатно. Если вы считаете себя главой проекта - действуйте как глава - стройте бизнес-логику проекта, делайте аналитику, включайте креатив и придумывайте классные штуки, которые ещё можно реализовать в проекте. Оценивайте затраты по времени и силам. Тратить слишком мало и слишком много сил на проект не стоит. Вам нужно только показать себя в работе, а не делать проект, который перевернёт мир;
Для повышения мотивации вы можете привлечь в разработку проекта других разработчиков. Ведь другим разработчикам тоже не помешает лишний проект в портфолио, а в команде можно реализовать действительно большой и качественный проект. К тому же, работая в команде, вы натренеруете лидерские качества, опыт совместной разработки и навыки договариваться с людьми;
Будет очень большим плюсом, если работа над проектом будет открыта и прозрачна. Очень желательно держать исходный код проекта в открытом доступе. Так любой желающий сможет посмотреть, какую архитектуру построения проекта вы выбрали и насколько качественно написан код
Проект сделан. Что дальше?
После создания и запуска проекта нужно сделать его презентацию. В ней должно быть полное описание проекта, а также затраченые ресурсы по времени, силам и финансам. Важно рассказать, на каких технологиях создавался проект, почему выбраны именно они. Если в проекте участвовало несколько человек, нужно указать роль каждого человека в проекте. Если вы сталкивались с трудностями - не стесняйтесь рассказать о них. Не бывает проектов без трудностей. Расскажите, с какими трудностями вы столкнулись и сколько времени и сил заняло их решение.
Презентация проекта может быть в любом виде - статья в вашем блоге или соц. сетях; PDF-файл, который вы сможете присылать любому желающему или просто выложить его в открытый доступ.
Зачем всё это нужно?
Если вы разработчик без большого опыта, думать, что у вас получится любой проект - наивно. Невозможно заранее знать, с какими трудностями вы столкнётесь и как оперативно их решить. Если в проекте вы сможете сделать регистрацию/авторизацию по урокам на YouTube, то совсем не факт, что вы с первого раза правильно реализуете систему комментариев, лайков, личных сообщений и систему уведомлений в проекте. Даже если вы всё это реализуете, то, с большой долей вероятности, это всё будет сделано очень некачественно. В проекте вполне будут возможны дыры в безопасности, ваши собственные костыли, о которых вы молчите, слишком замусоренный код, в котором что-то поменять будет намного труднее, чем написать функционал заново и т.д. Если бы вы делали стартап и в один прекрасный момент у него был бы наплыв пользователей, с которым ваш проект не справляется, спрашивать ведь будут с вас.
Любому разработчику нужно пережить разработку серьёзного проекта кто бы что ни говорил. Если вы ни разу в жизни не участвовали в разработке стартапа, не делали серьёзные проекты и не делали большие дорогие заказы - то вам прямая дорога к пет-проектам.
Итоги
Пет-проекты лучше делать во время, пока вы ищете работу или заказы. Важнее показать качество проектов, нежели их количество. Поэтому для первых пяти проектов можете выбрать простую идею, чтобы времени на реализацию ушло не много. После чего, уже можете приступать к созданию серьёзных проектов.
Лучше всего выбирать такие идеи проектов, чтобы они не пересекались между собой. Если вы сделаете 5 плюс-минус одинаковых проектов, это ничего вам не даст, вы просто потеряете время. Гораздо лучше делать проекты, которые затрагивают разные сферы. Например онлайн-коммуникации, финтех, e-commerce и т.д. Чем более разные сферы вы затронете, тем больше вероятность найти себе работу.