Пет-проект как один из лучших вариантов практического обучения начинающего программиста
О пет-проектах знают на Хабре многие. У кого-то такой проект крайне сложный, у кого-то попроще. И разрабатываются такие проекты с разной целью — от just for fun до обучения или доказать самому себе — «Я могу». На самом деле, пет-проекты — отличный вариант для практического обучения начинающих программистов. Да и опытные профессионалы, освоив новую технологию, тоже часто делают на базе полученных знаний что-то новое, чтобы закрепить в памяти и получить новый навык. Но максимальный профит от домашних проектов всё же получают новички. Кстати, эта статья — именно для начинающих разработчиков.
Почему пет-проект — хороший вариант для обучения?
Дело в том, что большинству работодателей, за малым исключением, нужны программисты с опытом, пусть и начинающие. Если опыта нет, в плане работы над какими-то проектами в компании, то пет-проект может послужить дополнительной строкой в разделе «Опыт» своего портфолио. При этом сделать можно практически любой проект, соответствующий профилю специалиста, — от чат-бота до 3D-модели.
Конечно, желательно, чтобы такой проект приносил пользу. Не обязательно, но если вы сможете сделать знакомому предпринимателю чат-бота для сайта, сам сайт или же сервис оплаты фотографий для фотографа, то это будет только плюс. Соответственно, и идеи для пет-проекта можно брать, исходя из потребностей — своих собственных или знакомых, друзей, партнёров.
Кроме портфолио, проект поможет закрепить полученные из книг/YouTube/курсов и форумов знания. Если это первый или второй ваш проект, то отдельные кусочки теории начнут постепенно складываться в единое целое, после чего станет понятно, где и как применять всё это на практике.
Как начать работу?
После того, как идея найдена, стоит проконсультироваться со знакомыми, которые могут её оценить. Вдруг они смогут посоветовать что-то полезное либо найдут проблему в самой идее.
Далее нужно на бумаге или в электронном виде расписать свою идею подробно.
Затем — посмотреть, что уже есть из инструментов, выполняющих аналогичную задачу. Это в случае создания первого-второго пет-проекта не самый важный пункт. Можно сделать хоть калькулятор, но чтобы он был хорош.
Затем, если идея комплексная, попробуйте продумать сценарий использования своего проекта, а потом — продумайте ещё и стек технологий. Нужно понимать, какими возможностями будет обладать новый проект, какая логика лежит в его основе. К слову, если вы планируете использовать незнакомые для себя технологии, то лучше взять пока то, что попроще, поскольку освоение совсем нового для себя ЯП может оказаться долгим процессом. Поскольку мы говорим в основном о новичках, то в этом есть смысл, чтобы в ходе решение задачи не пропал запал и сохранилась мотивация. Так будет проще — готов какой-то модуль, запустили — всё работает, видим прогресс.
Нужно также чекнуть версии библиотек и фреймворков, которые вы планируете использовать. Дело в том, что разные версии не всегда совместимы либо же совместимы, но не полностью. Это желательно выяснить ещё на этапе планирования. Ещё достаточно важно снизить количество внешних зависимостей до минимума. А если они есть, тогда стоит брать в работу лишь то, что есть в крупных/регулярно обновляемых репозиториях.
Если проект сложнее, чем тот же калькулятор, то стоит подумать о разработке MVP, который затем можно дать кому-то протестировать. Если будут проблемы, то всё это можно будет оперативно решить.
Не стоит забывать и о GitHub. Если он постоянно обновляется, то потенциальный работодатель это может оценить. Если же всё делать локально, то ваша активность будет заметна только для вас. Ещё одно достоинство работы с GitHub с самого первого дня — возможность включения в резюме лишь ссылки на репо, название проекта и описания технологий, которые использовал разработчик.
Можно также попробовать поработать в команде — снова-таки, это если проект комплексный. Разработали веб-сервис? Друг-дизайнер может продумать и реализовать удобный интерфейс к нему.
Какими могут быть пет-проекты?
Как и говорилось выше, в принципе, любыми. Но лучше всего сделать что-то такое, что можно «потрогать».
Мини-игра
Какая-то небольшая игрушка с интересными особенностями — отличный вариант для разработчика игр либо для фронтендера. Это может быть тетрис, змейка (сделайте её огнедышащей, например), шахматы и т. п.
Специфический сервис
Он может быть не очень сложным, но нужным. Например, можно сделать подбор аналогов различных электронных компонентов — это если вы хорошо разбираетесь в электронике и понимаете, что и как должно работать.
Можно также разработать калькулятор для расчёта заработной платы сотрудников в компании, куда вы планируете устроиться.
Интернет-магазин
Его можно сделать для себя и затем заниматься бизнесом, продавая, например, сделанные при помощи лазерного гравера брелоки, визитные карточки, конструкторы и т. п. Здесь двойной профит — и небольшая прибыль, и строка о проекте в своём портфолио.
Приложение для нумизмата или библиофила
Многие увлекаются коллекционированием монет. Сделать их классификатор либо же разработать сервис для любителей книг — отличная задача. Сначала можно сделать самый простой сервис и приложение, а по мере того, как вы будете набираться опыта, — всё это можно дорабатывать, дополняя возможности и функции.
В конечном итоге вы получите море удовольствия от финального результата, ведь сможете увидеть итог всей работы, поймёте, как реализовать различные фичи и возможности.
Главное здесь — работать над пет-проектом регулярно. Авральный метод, когда пару недель затишье, а потом много часов тратится на работу не подходит, так обычно теряется всякая мотивация, и появляется множество недоработанных проектов. Не надо так.