Пэт проект что это

Pet-проект для джуна. Или зачем и как выбрать pet project. (+личный опыт)

Предисловие

Привет Хабр! Эта публикация написана джуном для джунов (но возможно и специалисты более высокого уровня что-то найдут для себя / своих падаванов).

Зачем нужны pet проекты?

Для саморазвития как разработчика и закрепления изученного материала.

Если Вы днями на пролёт «штурмуете» теорию: читаете посты, смотрите туториалы, но при этом не применяете изученное на практике, то времени на освоение выбранной Вами темы понадобится в разы больше.

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

Для джуна без постоянного места работы, pet проект заменяет тут самую работу (со стороны разработки). Вы ставите себе задачу/цель и делаете всё возможное что бы её выполнить. При разработке Вы ещё глубже погружаетесь в тему, а иногда находите новые объекты для изучения.

Суммируя pet проекты нам нужны для:

изучения / закрепления нового материала;

получения удовольствия от разработки чего-то интересного лично Вам;

пополнения своего портфолио;

(bonus) есть шанс что Ваш pet проект может кому-то приглянуться и тогда из этого можно получить финансовую выгоду.

Как выбрать и на что обратить внимание?

Я рассматривал этот вопрос со стороны фронтенд разработчика и возможно для других отраслей приведенные ниже тезисы будут не валидны.

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

Технологии

Раз Вы выбрали определенные технологии для своего домашнего проекта, то скорее всего они Вас интересуют и проблема приведенная выше Вас не касается. (Или же Вас заставляют писать на том что Вам отвратно?)

Дизайн

Тут все зависит от человека и ситуации. Есть два варианта:

Запариться и сделать крутейший дизайн.

lvl up как дизайнера;

обычно свой дизайн очень приятен;

так как это собственный макет Вы в нём хорошо ориентируетесь и ещё на этапе дизайна продумываете некоторые фичи.

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

Найти готовый дизайн и работать с ним.

быстро (хотя поиск может затянуться, об этом ниже);

не нужно отвлекаться на дизайн.

не всегда можно найти дизайн для Вашей задумки, особенно если она не типичная;

готовые бесплатные макеты не всегда красивые.

Если авторские идеи не Ваше то на просторах интернета существуют множество тем проектов в которых можно использовать любые нужные Вам технологии.

Вот пару вечно актуальных примеров:

Личный опыт

В этом блоке я раcскажу как придумывались / создавались мои pet проекты.

Начало (AniList)

Шёл июль 2020 года. Спустя семестр изучения JavaScript’а в колледже я решил изучить какой-то фреймворк. Выбор пал на React. Через пару дней ознакомления с фреймворком я наткнулся на серию видеороликов по разработке веб-приложения пиццерии на ютуб канале Archakov Blog. И решил сразу же применять изученное в видео на реальном проекте, но просто переписывать код из видео в IDE было не интересно. По этому я решил делать аниме список.

Выше я писал про два варианта получения дизайна для проекта. Какой же из вариантов выбрал я при создании макета? Оба. Для начала я зашёл на уже существующие сайты с такой-же тематикой потом пролистал Behance и собрал своего «франкенштейна» из собственных идей и кусков уже готовых дизайнов.

Скриншот проекта из Figma

По готовому макету я понял что мне нужно будет где-то брать информацию об аниме (API, AJAX), где-то хранить её (Redux), а также как-то организовать авторизацию и хранение информации о пользователях (Firebase) + работа с версиями файлов(GIT, GitHub). В итоге мне предстояло ознакомиться как минимум с 5 новыми технологиями помимо React.

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

ToDo list

Следующим проектом должен был стать todo list. Мой одногруппник (тоже начинающий фронтендер) должен был делать frontend на Angular, а я (неожиданно) backend. Тут мне пристояло погрузиться в мир backend’а и может не изучить, но хорошо так ознакомиться с NodeJS, Express, MongoDB, mongoose, cors, dotenv, способами авторизации, деплоем на Heroku и ещё глубже понять работу API.

По итогу вышло так что и я и мой товарищ каждый для себя писали back и front end.

Остальное

Потом было ещё пару проектов. Вкратце напишу что для себя я вынес из них.

Приложение погоды:

рисование на canvas’е;

работа с геолокацией;

анимация React компонентов.

парсинг информации из сайта;

работа с Excel таблицами в NodeJS.

Менеджер подписок:

Магазин аксесcуаров (backend) (в разработке):

более глубоко познал MongoDB + mongoose;

Портфолио (на стадии дизайна):

создание кастомного курсора.

Заключение

Недавно меня постигла идея переписать свой первый pet project (Аниме список), но теперь с новыми навыками: backend на NodeJS, Express, GraphQl вместо Firebase, и frontend React + Apollo Client, ну и дизайн по красивше сделать. Эта мысль является результатом моего прогресcа который я постиг благодаря pet проектам.

«Всякое дело совершенствуется овладением техники. Всякий навык достигается упражнением.» Гиппократ

Источник

Pet-проекты: зачем они нужны, и стоит ли тратить на это время в 2020 году + опрос

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

Читайте также:  скб контур что это такое

Многие компании также пытаются стимулировать такую активность работников – в Google было правило 20%, которое привело к рождению Gmail, AdSense и Google News, а в Twitter инженеры получали неделю свободную от обычных обязанностей для экспериментов – найти вакансии от столь же продвинутых компаний можно через бота @g_jobbot.

Да что далеко ходить – недавно мы делали вебинар с Android-разработчиком Дмитрием Рязанцевым (вот его статья про работу на Toptal) – запущенную им игру Draw and Ride скачали 250,000 раз, а начиналась она именно как pet-проект. Звучит вдохновляюще, но насколько подход pet-проектов актуален в конце 2020 года? Считают ли до сих пор инженеры наличие таких проектов важным для себя и профессионального развития? С какими проблемами сталкиваются те, кто ими занимается? В новой статьей мы решили найти ответы на эти вопросы.

Зачем нужны pet-проекты: аргументы «За»

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

Pet-проекты приносят удовольствие и позволяют развиваться

Разработчик из Лондона Чанна Джайамуни (Channa Jayamuni) в своей статье на LinkedIn так описывает пользу pet-проектов:

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

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

Личные проекты помогают найти лучшую работу

Многие руководители прямо заявляют о том, что наличие портфолио собственных проектов у инженера – один из ключевых пунктов при найме.

Так директор компании-разработчика открытой NoSQL базы данных RAVENDB Айенде Райен (Ayende Rahien) говорит о том, что при поисках разработчиков смотрит на наличе страсти к работе. По мнению топ-менеджера, у специалистов, которые не могут найти время на развитие собственных проектов, такой страсти нет, они не собираются выходить за рамки рабочих обязанностей. Нанимать таких разработчиков в небольшую команду может быть не лучшей идеей.

Хотите найти работу, на которой пригодятся полученные в ходе запуска pet-проектов навыки? Используйте наш бот @g_jobbot. Его просто и быстро настроить: нужно указать свою сферу и стек технологий, желаемую зарплату, локацию или «релокейт». Подходящие вам варианты будут приходить в Телеграм.

Компаниям выгодно стимулировать эксперименты сотрудников

Майк Миллер (Michael Miller) работает на позиции Engineering Manager в Bloomberg LP и считает, что компании должны официально позволять ведущим специалистам развивать свои проекты в рабочее время, и что такой подход может быть отдельной HR-плюшкой для талантливых работников:

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

Что может пойти не так

Несмотря на очевидные плюсы, существует и целый ряд трудностей при работе над дополнительными проектами вне работы. Кто-то называет эти трудности мифами, как инженер Twitter Аннель Де Джагер (Annelle De Jager). Тем не менее, вот как выглядит этот список:

Нехватка времени

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

Отношения с друзьями и семьей

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

Негативные эмоции в случае неудачи проекта

Что в итоге: немного статистики и опрос

Мы решили прояснить отношение разработчиков к ведению pet-проектов в текущих условиях удаленки и глобальной пандемии. Поэтому мы опросили знакомых инженеров из таких компаний как Gett, «Лаборатория Касперского», Uber, Smartcat и др. и задали им вопросы о том, развивают ли они pet-проекты и с какими трудностями сталкиваются при этом. Вот главные выводы по итогам опроса:

UPD: как к pet-проектам относятся читатели на Хабре

Первые данные нашего опроса позволили нам собрать вот такую интересную статистику. Итак, большинство читателей Хабра ведут pet-проекты:

При этом только треть опрошенных думают заработать на своих хобби-проектах:

Если вы ведете свои pet-проекты, укажите в боте @g_jobbot информацию о своих проектах, чтобы получать вакансии с учетом использованных в них технологий. Новая работа – отличный способ «монетизации» хобби!

Мы будем обновлять информацию по мере поступления новых голосов!

Источник

Pet-проекты: зачем они нужны, и стоит ли тратить на это время

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

Многие компании также пытаются стимулировать такую активность работников – в Google было правило 20%, которое привело к рождению Gmail, AdSense и Google News, а в Twitter инженеры получали неделю свободную от обычных обязанностей для экспериментов. Да что далеко ходить – мы делали вебинар с Android-разработчиком Дмитрием Рязанцевым (вот его статья про работу на Toptal) – запущенную им игру Draw and Ride скачали 250,000 раз, а начиналась она именно как pet-проект.

Читайте также:  айрапетов карен георгиевич биография

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

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

Разработчик из Лондона Чанна Джайамуни (Channa Jayamuni) в своей статье на LinkedIn так описывает пользу pet-проектов:

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

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

Многие руководители прямо заявляют о том, что наличие портфолио собственных проектов у инженера – один из ключевых пунктов при найме.

Так директор компании-разработчика открытой NoSQL базы данных ravendb Айенде Райен (Ayende Rahien) говорит о том, что при поисках разработчиков смотрит на наличе страсти к работе. По мнению топ-менеджера, у специалистов, которые не могут найти время на развитие собственных проектов, такой страсти нет, они не собираются выходить за рамки рабочих обязанностей. Нанимать таких разработчиков в небольшую команду может быть не лучшей идеей.

Майк Миллер (Michael Miller) работает на позиции Engineering Manager в Bloomberg LP и считает, что компании должны официально позволять ведущим специалистам развивать свои проекты в рабочее время, и что такой подход может быть отдельной HR-плюшкой для талантливых работников:

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

Несмотря на очевидные плюсы, существует и целый ряд трудностей при работе над дополнительными проектами вне работы. Кто-то называет эти трудности мифами, как инженер Twitter Аннель Де Джагер (Annelle De Jager). Тем не менее, вот как выглядит этот список:

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

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

Мы решили прояснить отношение разработчиков к ведению pet-проектов в текущих условиях удаленки и глобальной пандемии. Поэтому мы опросили знакомых инженеров из таких компаний как Gett, «Лаборатория Касперского», Uber, Smartcat и др. и задали им вопросы о том, развивают ли они pet-проекты и с какими трудностями сталкиваются при этом. Вот главные выводы по итогам опроса:

Если вы ведете свои pet-проекты, укажите в боте @g_jobbot информацию о своих проектах, чтобы получать вакансии с учетом использованных в них технологий. Новая работа – отличный способ «монетизации» хобби!

Ведете ли pet-проекты вы? Если да, то зачем?

Источник

Pet-проекты: прихоть, инструмент самосовершенствования или попытка отвлечься?

Привет, Хабр! Меня зовут Кирилл Кошаев, я Java-разработчик в «Газпром информ» и преподаватель профессии Java-разработчик PRO на образовательной платформе Skillbox. Сегодня хотел бы поговорить о такой интересной теме, как pet-проекты. Здесь, на Хабре, они есть у многих, у меня, кстати, тоже. И я хотел бы обсудить важность pet-проектов для представителей IT-отрасли.

Личный кейс

Сперва расскажу о собственном опыте ведения pet-проектов. Как и говорилось выше, у меня их много. Но я не веду все их одновременно: большинство идет в «долгий ящик», какие-то забрасываются и забываются, а некоторые становятся серьезными проектами, которые не стыдно и в портфолио показать.

После долгих месяцев работы над проектами “в стол”: приложения для подсчета фруктов в корзине, вывода фигур в консоль при помощи ASCII и кучи тестовых стендов для понимания работы библиотек выбранного мной языка, ко мне пришло осознание определенного застоя на одном месте.

Размышления на эту тему привели меня к следующему решению: необходимо собрать все, что я изучил в одну большую кучу и запилить уже что-то более серьезное, что-то, что будет не просто очередным tutorial example, а самодостаточным приложением, которое воплотит в себе конкретный функционал и будет решать определенные задачи. Появилась амбиция разработать что-то полезное, что можно было бы скачать/загрузить/установить и использовать на своем устройстве всем, кто того пожелает. Осталась сущая малость — придумать идею.

Генерация идеи — камень, на который находит коса всякого начинающего программиста, приступающего к своему первому pet-проекту. В первую очередь, я столкнулся с тем, что куда бы я ни посмотрел и что бы ни придумал, в 90% случаев аналогичное приложение уже существовало на рынке и даже не в единственном воплощении, а оставшиеся 10% занимали идеи, на реализацию которых уже требовалась команда и, соответственно, все необходимые для командной разработки инструменты и технологии, а ведь я только-только разделался с ядром выбранного мной языка программирования.

Читайте также:  сведения о банковском счете получателя что это

Как раз здесь обычно и наступает переломный момент, поскольку нечто вроде «Hello, World» и простых задачек писать уже не хочется, а для хорошего pet-проекта нет достойной идеи. У новичков здесь обычно звучит фраза в стиле: “Ну… я не знаю, что делать дальше, все дико сложно и я не очень понимаю, что еще можно написать на этом языке X, кроме всех тех helloworld-ов, которые я уже написал”. Далее программирование либо оказывается заброшенным вообще, либо проходит смену изучаемого языка/технологии/библиотеки/фреймворка (нужное подчеркнуть), и все начинается с самого начала, пока человек снова не придет к этой переломной точке.

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

Почему именно игра:

Сколько их будет, pet-проектов?

Я уверен, что pet-проекты были, есть и будут время от времени возникать в практике практически любого программиста. Почему? Я считаю, что, когда заканчивается эра Hello World программ, начинается эра pet-проектов. Иными словами, когда вы, как начинающий программист, упираетесь в потолок практической ценности от написания простейших программ типа “вывод в консоль звездочками елочек”, “greetings app”, и тому подобных, для дальнейшего роста вам придется переходить к написанию более сложных программ, то есть pet-проектов.

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

И так будет происходить еще не раз до тех пор, пока вы не достигните Олимпа всей этой ИТ-тусовки и не станете senior-архитектором в уважаемой корпорации, владельцем собственного стартапа или осядете где-то на подступах, предпочтя расти по горизонтали, а не вертикали.

А времени сколько на это уходит?

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

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

Еще один важный нюанс — судьба таких проектов. На мой взгляд, предопределить ее нельзя. Внезапно вас может озарить, кажущаяся на первый взгляд совершенно гениальной идея. Вы на голом энтузиазме напишете пару тысяч строк кода, а потом внезапно поймете, что запал прошел и изначальная идея уже не кажется такой гениальной, как раньше. В другой раз вы проведете за развитием очередного pet-проекта пару месяцев, доведете дело до версии 1.0, выполните релиз, но дальше версии 1.0 уже не пойдете, предпочитая переключиться на что-то другое. И конечно, есть все шансы, что вы попадете в яблочко, и ваш pet-проект начнет стремительный взлет к высотам production-grade проектов.

Польза pet-проекта для начинающего программиста

Новичку работа над pet-проектами позволяет перейти от экспериментов с возможностями изучаемого языка к реальными командным проектам, за работу над которыми платят деньги. Для продвинутых программистов работа над pet-проектами — возможность исследовать и пробовать в деле различные технологии, например с помощью pet-проекта подробно изучить процесс создания REST-сервисов. Наконец, pet-проекты можно создавать и ради фана. Например, я иногда люблю воспроизводить в различных вариациях game of life, чтобы в качестве разрядки отвлечься от работы и предотвратить выгорание.

Начинать свой первый pet-проект следует в интересной для себя области. Моим первым языком программирования был VisualBasic, но хоть сколько-нибудь значимые программы я начал писать только после 1.5 лет программирования на Java. В этом языке, на мой взгляд, есть в целом два больших направления: enterprise и мобильная разработка. И поскольку к enterprise-разработке я впервые подошел только спустя еще год, на момент создания первого pet-проекта мой выбор был очевиден. Именно поэтому первый мой проект — небольшая 2D игра для смартфона. C тем же успехом это могло бы быть все, что угодно, например, какие-нибудь Arduino/RaspberryPI проекты в том случае, если бы я увлекался электротехникой. Или, скажем, какая-нибудь новая js-библиотека, если бы моим основным языком был JavaScript, а не Java.

В качестве вывода

Pet-проект — нечто среднее между простейшими программами, на которых вы учитесь работать с выбранным языком, и production-grade проектами, на которых вы зарабатываете деньги. Зачем они нужны? Pet-проекты, в первую очередь, учат разработке. Не простейших программ, а именно проектов, из которых позднее и при благоприятном стечении обстоятельств могут вырасти production-grade проекты.

Pet-проекты — это личный гараж-мастерская, где программист или даже небольшая команда разработчиков, комбинируя различные технологии, идеи и подходы к их реализации, может в итоге получить то, что называется MVP — минимально жизнеспособный продукт. Вместе с тем, pet-проекты позволяют вам не только экспериментировать и весело проводить время. Как было сказано выше, они учат создавать целостные проекты, ориентироваться в огромном мире библиотек, фреймворков и прочих инструментов. Pet-проекты заставляют нас двигаться дальше, осваивать новые технологии, расширять свой инструментарий, работать в команде, выйти за пределы HelloWorld и MyFirstGreetingsApp программ.

Источник

Обучающий портал