[Разработка игр, Управление продуктом, Карьера в IT-индустрии] Pet-проекты: прихоть, инструмент самосовершенствования или попытка отвлечься?
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет, Хабр! Меня зовут Кирилл Кошаев, я Java-разработчик в «Газпром информ» и преподаватель профессии Java-разработчик PRO на образовательной платформе Skillbox. Сегодня хотел бы поговорить о такой интересной теме, как pet-проекты. Здесь, на Хабре, они есть у многих, у меня, кстати, тоже. И я хотел бы обсудить важность pet-проектов для представителей IT-отрасли.
Что это — способ убить время, отвлечься от реальности или путь к профессиональному совершенству? Говорить на эту тему я могу долго и обстоятельно, поскольку у меня есть множество собственных pet-проектов. Некоторые из них завершены, другие — благополучно забыты, третьи — находятся на пути к завершению. Сегодня предлагаю подискутировать на тему важности pet-проектов в жизни профессионала. Если интересно — то давайте продолжим под катом.
Личный кейс
Сперва расскажу о собственном опыте ведения pet-проектов. Как и говорилось выше, у меня их много. Но я не веду все их одновременно: большинство идет в «долгий ящик», какие-то забрасываются и забываются, а некоторые становятся серьезными проектами, которые не стыдно и в портфолио показать.
После долгих месяцев работы над проектами “в стол”: приложения для подсчета фруктов в корзине, вывода фигур в консоль при помощи ASCII и кучи тестовых стендов для понимания работы библиотек выбранного мной языка, ко мне пришло осознание определенного застоя на одном месте.
Размышления на эту тему привели меня к следующему решению: необходимо собрать все, что я изучил в одну большую кучу и запилить уже что-то более серьезное, что-то, что будет не просто очередным tutorial example, а самодостаточным приложением, которое воплотит в себе конкретный функционал и будет решать определенные задачи. Появилась амбиция разработать что-то полезное, что можно было бы скачать/загрузить/установить и использовать на своем устройстве всем, кто того пожелает. Осталась сущая малость — придумать идею.
Генерация идеи — камень, на который находит коса всякого начинающего программиста, приступающего к своему первому pet-проекту. В первую очередь, я столкнулся с тем, что куда бы я ни посмотрел и что бы ни придумал, в 90% случаев аналогичное приложение уже существовало на рынке и даже не в единственном воплощении, а оставшиеся 10% занимали идеи, на реализацию которых уже требовалась команда и, соответственно, все необходимые для командной разработки инструменты и технологии, а ведь я только-только разделался с ядром выбранного мной языка программирования.
Как раз здесь обычно и наступает переломный момент, поскольку нечто вроде «Hello, World» и простых задачек писать уже не хочется, а для хорошего pet-проекта нет достойной идеи. У новичков здесь обычно звучит фраза в стиле: “Ну… я не знаю, что делать дальше, все дико сложно и я не очень понимаю, что еще можно написать на этом языке X, кроме всех тех helloworld-ов, которые я уже написал”. Далее программирование либо оказывается заброшенным вообще, либо проходит смену изучаемого языка/технологии/библиотеки/фреймворка (нужное подчеркнуть), и все начинается с самого начала, пока человек снова не придет к этой переломной точке.
Выходом из этой ситуации для меня стало решение воплотить в первом pet-проекте игру. Мне показалось это идеальным форматом по соотношению трудоемкости, интереса и сложности применяемых технологий. Я немедленно приступил к делу и начал раскапывать различную информацию о том, как, с помощью каких технологий и в рамках изучаемого мной языка, я смогу разработать и выкатить в одиночку небольшую инди-игру, пройдя все сопутствующие этапы самостоятельно.
Почему именно игра:
- Во-первых, я хорошо представлял себе, что такое компьютерная игра и из чего она состоит, так как еще с малых лет сам играю.
- Во-вторых, технологически эта затея достаточно плотно концентрировалась вокруг тех вещей, которые я уже знал, а дополнительные навыки я смог освоить уже в процессе реализации.
- В-третьих, написание игр здорово визуализирует то, что вы описываете кодом, а визуальная информация лучше всего оседает в памяти и упрощает понимание сложных и абстрактных вещей.
В результате мой первый pet-проект реализовался в двух небольших играх и минималистичном приложении для создания заметок с функцией шифрования при помощи классических алгоритмов. Все три приложения доступны для скачивания в Google Play. Вы можете лично протестировать их, пройдя по этой ссылке. Кроме того, на сегодняшний день у меня есть совместный pet-проект с моим коллегой и другом из Skillbox Олегом Садовниковым, посвященный исследованию и визуализации данных API Wikipedia, который мы с переменным успехом развиваем в свободное время.
Сколько их будет, 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 программ.
===========
Источник:
habr.com
===========
Похожие новости:
- [JavaScript, Разработка мобильных приложений, Разработка под Tizen, Производство и разработка электроники, Мониторы и ТВ] Разработка Tizen-приложений для Samsung Smart TV: полный гайд для Javascript-разработчиков
- [Производство и разработка электроники, IT-компании] Фабрики Samsung начнут массовый выпуск микросхем по техпроцессу 3 нм не раньше 2024 года
- [Информационная безопасность, Разработка для интернета вещей] Приглашаем на летнюю конференцию KasperskyOS Night
- [Разработка игр, Unity, Игры и игровые приставки] Менеджер качества, или как не спалить лоу-энд девайсы ультра-графикой
- [Информационная безопасность, Разработка мобильных приложений, Разработка под Android] Google до конца года потребует от разработчиков приложений включить двухфакторную авторизацию
- [Карьера в IT-индустрии, Финансы в IT, IT-компании] Как формируются зарплаты с точки зрения экономики и почему программисты столько получают
- [Управление персоналом, Карьера в IT-индустрии, Читальный зал] Трудовые будни Владыки Ситхов
- [Разработка игр] Недельный геймдев: #24 — 27 июня, 2021
- [Разработка игр, Игры и игровые приставки] Ушёл из жизни Near, разработчик точнейших в мире эмуляторов SNES
- [Учебный процесс в IT, Карьера в IT-индустрии] Как перекатиться в Data Science
Теги для поиска: #_razrabotka_igr (Разработка игр), #_upravlenie_produktom (Управление продуктом), #_karera_v_itindustrii (Карьера в IT-индустрии), #_petproekty (pet-проекты), #_razrabotka (разработка), #_razvitie (развитие), #_blog_kompanii_skillbox (
Блог компании Skillbox
), #_razrabotka_igr (
Разработка игр
), #_upravlenie_produktom (
Управление продуктом
), #_karera_v_itindustrii (
Карьера в IT-индустрии
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 06:25
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет, Хабр! Меня зовут Кирилл Кошаев, я Java-разработчик в «Газпром информ» и преподаватель профессии Java-разработчик PRO на образовательной платформе Skillbox. Сегодня хотел бы поговорить о такой интересной теме, как pet-проекты. Здесь, на Хабре, они есть у многих, у меня, кстати, тоже. И я хотел бы обсудить важность pet-проектов для представителей IT-отрасли. Что это — способ убить время, отвлечься от реальности или путь к профессиональному совершенству? Говорить на эту тему я могу долго и обстоятельно, поскольку у меня есть множество собственных pet-проектов. Некоторые из них завершены, другие — благополучно забыты, третьи — находятся на пути к завершению. Сегодня предлагаю подискутировать на тему важности pet-проектов в жизни профессионала. Если интересно — то давайте продолжим под катом. Личный кейс Сперва расскажу о собственном опыте ведения pet-проектов. Как и говорилось выше, у меня их много. Но я не веду все их одновременно: большинство идет в «долгий ящик», какие-то забрасываются и забываются, а некоторые становятся серьезными проектами, которые не стыдно и в портфолио показать. После долгих месяцев работы над проектами “в стол”: приложения для подсчета фруктов в корзине, вывода фигур в консоль при помощи ASCII и кучи тестовых стендов для понимания работы библиотек выбранного мной языка, ко мне пришло осознание определенного застоя на одном месте. Размышления на эту тему привели меня к следующему решению: необходимо собрать все, что я изучил в одну большую кучу и запилить уже что-то более серьезное, что-то, что будет не просто очередным tutorial example, а самодостаточным приложением, которое воплотит в себе конкретный функционал и будет решать определенные задачи. Появилась амбиция разработать что-то полезное, что можно было бы скачать/загрузить/установить и использовать на своем устройстве всем, кто того пожелает. Осталась сущая малость — придумать идею. Генерация идеи — камень, на который находит коса всякого начинающего программиста, приступающего к своему первому pet-проекту. В первую очередь, я столкнулся с тем, что куда бы я ни посмотрел и что бы ни придумал, в 90% случаев аналогичное приложение уже существовало на рынке и даже не в единственном воплощении, а оставшиеся 10% занимали идеи, на реализацию которых уже требовалась команда и, соответственно, все необходимые для командной разработки инструменты и технологии, а ведь я только-только разделался с ядром выбранного мной языка программирования. Как раз здесь обычно и наступает переломный момент, поскольку нечто вроде «Hello, World» и простых задачек писать уже не хочется, а для хорошего pet-проекта нет достойной идеи. У новичков здесь обычно звучит фраза в стиле: “Ну… я не знаю, что делать дальше, все дико сложно и я не очень понимаю, что еще можно написать на этом языке X, кроме всех тех helloworld-ов, которые я уже написал”. Далее программирование либо оказывается заброшенным вообще, либо проходит смену изучаемого языка/технологии/библиотеки/фреймворка (нужное подчеркнуть), и все начинается с самого начала, пока человек снова не придет к этой переломной точке. Выходом из этой ситуации для меня стало решение воплотить в первом pet-проекте игру. Мне показалось это идеальным форматом по соотношению трудоемкости, интереса и сложности применяемых технологий. Я немедленно приступил к делу и начал раскапывать различную информацию о том, как, с помощью каких технологий и в рамках изучаемого мной языка, я смогу разработать и выкатить в одиночку небольшую инди-игру, пройдя все сопутствующие этапы самостоятельно. Почему именно игра:
В результате мой первый pet-проект реализовался в двух небольших играх и минималистичном приложении для создания заметок с функцией шифрования при помощи классических алгоритмов. Все три приложения доступны для скачивания в Google Play. Вы можете лично протестировать их, пройдя по этой ссылке. Кроме того, на сегодняшний день у меня есть совместный pet-проект с моим коллегой и другом из Skillbox Олегом Садовниковым, посвященный исследованию и визуализации данных API Wikipedia, который мы с переменным успехом развиваем в свободное время. Сколько их будет, 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 программ. =========== Источник: habr.com =========== Похожие новости:
Блог компании Skillbox ), #_razrabotka_igr ( Разработка игр ), #_upravlenie_produktom ( Управление продуктом ), #_karera_v_itindustrii ( Карьера в IT-индустрии ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 06:25
Часовой пояс: UTC + 5