Pet проекты что это

от admin

Как стать junior-разработчиком (Часть 4) | Изучение языка и Pet Project на примере Java

Язык java в данный момент является одним из самых популярных на российском рынке. Имеется большое количество вакансий и зарплаты по ним, как правило, превышают зарплаты по Python, PHP и JS. Его сложно назвать простым для изучения. Требования к стажеру по Java могут быть значительно более высокими, чем к джуну, по выше перечисленным языкам. Отчасти это связано с необходимостью понимать большое количество применяемых концепций.

Данная статья четвертая в цикле про то, как стать junior-разработчиком.

1 Установка среды разработки

Для того, чтобы приступить к изучению языка и его инфраструктуры, необходимо установить среду разработки. На 2021 год наибольшей популярностью пользуется Intellij Idea от JetBrains. Возможно поставить бесплатную версию Community Edition. Для студентов и преподавателей JetBrains предоставляет лицензию, по которой можно получить их продукты бесплатно.

2 Установка JDK и PostrgeSQL

Код в Java выполняется компилятором — JDK. В него также входят стандартные библиотеки классов Java, документация и различные утилиты.
Проще всего установить JDK при помощи Intellij Idea.
В меню нужно перейти по пути File | Project Structure | Platform Settings | SDKs. И выбрать Download JDK. Установится самая свежая версия — 15. Java имеет обратную совместимость и между версиями java нет разницы в синтаксисе и код написанный на java 6 будет запускаться на java 15. С каждой новой версией добавляются различные инструменты, упрощающие жизнь.

Ситуация с версиями мне видится следующим образом. Java 6 достаточно старая, уже мало где используется, в java 8 добавлено множество полезных инструментов, в ней есть почти все необходимое для работы без подключения сторонних библиотек. Многие компании до сих пор остаются на ней и находятся в процессе перехода на java 11 или уже перешли на нее. Java 13 и 15 встречается редко.

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

После установки Java необходимо установить базу данных. Чаще всего в крупных компаниях применяется PostgreSQL и Oracle. Установка Oracle представляется собой значительное более сложный процесс, поэтому для обучения удобнее поставить PostgreSQL. Процесс установки по шагам хорошо описан тут.

3 Изучение синтаксиса языка

Синтаксис языка проще начинать изучать с видеоуроков, из них же будет понятно, как запускать код. Мне в 2016 году подошли видеоуроки от Гоши Дударя, у него на канале есть плейлист из 20 уроков и одного видео на час, с выжимкой из 20 отдельных уроков. Если уже есть опыт программирования, то достаточно будет просмотра одного видео. Со времени когда я обучался было выпущено большое количество новых уроков и, возможно, есть уроки значительно лучше.

Из книг для начинающих по Java мне понравилась Head First Java. Она слега устарела и не все примеры собираются, но подача материала очень легкая. У меня на нее ушло около недели.

Все непонятные моменты при изучении лучше сразу гуглить и сразу с ними разбираться. Много полезной информации есть на сайте Java Rush. После того, как будет понятен основной синтаксис языка, можно приступать к изучению фреймворка и написанию своего проекта.

4 Изучение фреймворка и написание Pet Project

Чаще всего Java используется в связке с фреймворком Spring. Перед началом работы с ним можно попробовать почитать статьи на хабре, чтобы появилось понимание что это и для чего нужно.

Будет много непонятных слов и концепций, первое время их можно игнорировать. Вместе с практикой изучать их гораздо проще.

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

На канале letsCode есть хорошие видеоуроки для начинающих по написанию приложений с использование Spring:
1) Плейлист один
2) Плейлист два
Можно просто повторять действия из видео, опять же, поначалу будет ничего непонятно. После просмотра второго плейлиста, скорее всего, примерно вырисуется картина происходящего.
После этого стоит еще раз перечитать статьи, указанные выше, многие вещи станут понятны.

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

Для чего разработчики делают пет-проекты

Pet-project — это индивидуальный (реже групповой) проект, который вы делаете ради себя, с особой старательностью и заботой, он создается дома вне остальной деятельности, характеризующийся как исключительно личный фаворит программиста. Работа над пет-проектом может длиться неделями, месяцами и даже годами: по мере того, как у автора появляется свободное время и новые идеи.

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

  • веб-сайты, блоги;
  • игры;
  • полезные приложения для мобильных устройств;
  • утилиты для компьютерного ПО;
  • программы дополненной реальности;
  • софт для робототехники;
  • чат-боты и т.д.

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

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

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

Кроме того, делать первые шаги в профессиональной среде, даже если вас уже взяли в команду разработчиков, может быть непросто. Зачастую у новичка боязнь предложить неверное решение, которое он не сможет реализовать, тем самым подведя команду, не позволяет в полной мере раскрыть его потенциал. Работая над своим проектом можно совершать ошибки, пробовать что-то новое, искать пути решения разных задач. Таким образом начинающий разработчик выработает полезную профессиональную привычку – постоянно генерировать новые идеи. К тому же, самостоятельный поиск и анализ больших объемов новой информации – то, без чего невозможно реализовать ни один проект, будь он коммерческим или "домашним".

Создание пет-проекта поможет также формулировать задачи (пусть и самому себе), выработать самодисциплину. Вы можете также получать обратную связь от пользователей вашего продукта. А если найдете единомышленников для группового проекта, то усовершенствуете навыки командной работы и управления проектом. Таким образом, вы попробуете себя не только в роли разработчика, но и в качестве менеджера, заказчика, тестировщика и т. д.

Пет-проекты могут быть полезны не только новичкам, но и разработчикам с опытом. Как правило, в профессиональной деятельности специалисту приходится сталкиваться с одним конкретным видом задач (верстка веб-страниц, разработка игр и приложений, создание ботов для соцсетей и алгоритмов для создания персонифицированной email-рассылки или что-то еще). Пет-проект поможет расширить свою профессиональную сферу, поддерживать другие навыки на нужном уровне, тем самым повышая свою привлекательность для других работодателей. Также "домашний" проект – отличный способ освоить новые инструменты программирования и работы с данными.

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

Что должен уметь новичок для создания пет-проекта

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

  • верстку HTML-страниц; ; ;
  • JavaScript

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

Как приступить к работе и правильно оценить результат

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

К выбору тематики и концепции пет-проекта нужно подходить осознанно. Проанализируйте, что бы вы хотели изучить и отработать на практике, а не работайте с уже имеющимися у вас навыками и инструментами. И главное – результат пет-проекта должен приносить практическую пользу, иначе сложно будет оценить ваши старания. Например, это может быть приложение для планирования вашего дня или изучения иностранных языков. Создайте что-то, чем бы сами с удовольствием пользовались. Это поможет нацелиться на создание коммерчески удачных проектов в будущем (а некоторым разработчикам все же удается монетизировать и сами пет-проекты). Для получения объективной оценки можно предложить протестировать разработанный продукт друзьям и знакомым, а также интернет-сообществу, при этом не забудьте получить обратную связь. Чтобы быть уверенным в непредвзятости оценок, можно создать лендинг и настроить на него рекламу, чтобы пользователи могли познакомиться с вашим продуктом и оставить комментарии. Это также даст вам представление о том, интересна ли случайным пользователям Сети ваша идея. Затем останется внести правки, доработать интерфейс и функционал. В ходе взаимодействия с реальными пользователями, со временем вы начнете лучше понимать целевую аудиторию.

О чем еще нужно знать

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

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

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

Каков итог?

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

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

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

Читать:
Как удалить файл mp4 который перечеркнут крестом

Многие компании также пытаются стимулировать такую активность работников – в 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-проект может «не полететь», или специалист может увлечься другой технологией и захотеть попробовать что-то сделать с ее использованием. В таком случае текущий проект придется забросить или убить, это может быть психологически непросто. Ситуация усугубляется, если проект уже привлек первых пользователей, тогда неудача становится публичной. Такой негатив в дополнение к сложностям на основной работе нужен далеко не всем.

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

  • Инженерам нравится заниматься своими проектами. Мы опросили пару десятков человек, и только четверо заявили о том, что не ведут никаких хобби-проектов от автоматизации собственных рабочих задач, до телеграм-ботов и робототехники.
  • Изучение новых технологий – один из основных приоритетов. Наиболее частый ответ на вопрос «Зачем?» заключается в изучении новых технологий и профессиональном развитии.
  • Дополнительный заработок – важный стимул. Половина опрошенных заявили, что серьезно рассматривают или задумываются о том, чтобы начать зарабатывать на своих pet-проектах.
  • Самое главное – удовольствие. Инженеры хотят получать удовольствие от работы, и pet-проекты дают им это.

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

Что такое пет-проект и где искать идеи: опыт студентов Хекслета

Пет-проекты — еще одна возможность для джуна получить реальный опыт работы. Это собственные проекты, которые иногда становятся глобальными сервисами (например, Gmail и AdSense когда-то были пет-проектами), но чаще помогают в процессе саморазвития и закреплении изученного материала. Придумать идею для собственного проекта бывает не просто. Для вдохновения рассказываем о пет-проектах наших студентов: от аналога Trello до программы для интерактивного дисплея на клавиатуре.

Что такое пет-проекты

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

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

Для студентов

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

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

Для разработчиков

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

В некоторых крупных компаниях существует практика поощрения собственных проектов сотрудников. Например, введенное в 2004 году Google «Правило 20%» позволяло разработчикам тратить пятую часть рабочего времени на пет-проекты. Так появились Gmail и AdSence. Стоит отметить, что в случае с Google такая политика предполагала, что все разработки становятся интеллектуальной собственностью компании.

Где взять идеи для проекта

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

Мы попросили студентов Хекслета рассказать о своих пет-проектах: вероятно, эти кейсы помогут вам придумать идею для собственного проекта.

Рустем Тарасевич, JS/TS-разработчик

В моем GitHub репозитории около 10 пет-проектов. Первые три — помидорный таймер, сервис для составления списков задач и приложение погоды — своего рода Hello, World в портфолио каждого начинающего фронтенд-разработчика. Не буду останавливаться на них подробно, а расскажу про более сложные проекты.

Чат для комьюнити. Упрощенный аналог чата комьюнити Хекслета в Slack, который я сделал в качестве четвертого, финального учебного проекта. Приложение представляет собой чат с входом по регистрации и отдельными комнатами для обсуждений. Сообщения в нем можно редактировать и удалять.

На проект я потратил больше двух недель — за это время успел разобраться в вебсокетах, интернационализации, кастомных хуках, Redux Tool Kit и другими технологиями.

Трекер задач. Идею для этого проекта я взял из книги Fullstack React with Typescript. На русский язык она не переведена, так что во время чтения подтянул английский до уровня B1\B2.

Проект похож на доску Trello: это канбан-доска с возможностью перетаскивать задачи курсором (Drag and drop). Для реализации этого функционала я использовал библиотеку React-DND, а стэйт-менеджмент написал с помощью Redux Tool Kit, самостоятельно типизировал логику с помощью документации. Это потребовалась, поскольку в оригинале предполагалось реализовать приложение на чистом Redux.

В ходе проекта я также изучил библиотеку styled-components, которая позволяет писать стили компонентов прямо в tsx-файле.

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

Читайте также: Как сохранять фокус на протяжении всего обучения: советы от Хекслета

Иван Иванов, разработчик на С++

Свой первый проект я сделал около семи лет назад, когда самостоятельно учил C++. Тогда я купил игровую клавиатуру Logitech с черно-белым экраном и столкнулся с тем, что для нее доступно очень мало программ. Я решил сделать свою программу, которая будет выводить на экран сообщения из Skype (на тот момент главной платформы для общения геймеров, по аналогии с Discord) и позволит отвечать на них, не сворачивая окно с игрой.

Рядом с экраном находилось четыре кнопки: первую я использовал для того, чтобы открыть окно с сообщениями, вторую — для автопрокрутки. Третья кнопка перехватывала ввод с клавиатуры и перенаправляла его на экран клавиатуры, а четвертая — отправляла сообщение.

Для работы над проектом я изучил API Windows, которое использовал Skype, и API клавиатуры — это была библиотека на языке C, с которым я раньше не сталкивался. Нужно было разобраться, как подключать C-библиотеки и использовать их в программах, написанных на C++, и как работать с пиксельной черно-белой пиксельной графикой.

Результат работы я выложил на американский форум LogitechFans, где было самое большое сообщество пользователей таких клавиатур. На форуме получил фидбэк и несколько установок программы. На тот момент решение было уникальным, по крайней мере в сегменте бесплатных — единственный аналог стоил достаточно дорого. Исходный код проекта можно посмотреть здесь.

Константин Мамонтов, PHP-разработчик

Мой пет-проект — интернет-магазин, точнее, интернет-склад. Он не решал никакую конкретную проблему и всегда был некоммерческим. Его целью было закрепление знаний и поиск подводных камней при разработке подобных продуктов.

Основа проекта — база данных, написанная на моем основном языке PHP. В процессе работы над складом я изучил JavaScript для создания пользовательского интерфейса и добавил формы приема заказа и регистрации через Bootstrap.

Этот опыт пригодился мне на собеседовании, которое благодаря курсам и проекту я прошел почти моментально, и во время выполнения тестового задания. В результате я нашел первую работу PHP-программистом на Laravel.

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Похожие статьи