Главная | Все статьи | Дневник студента

Пет-проект — сложно найти, легко забить и невозможно доделать

Время чтения статьи ~5 минут
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Пет-проект — сложно найти, легко забить и невозможно доделать главное изображение

Привет! Ранее я начала рассказ о своем обучении в рамках менторской программы Women in Tech. Сегодня я хочу рассказать о том, как делала пет-проект — чего боялась, как планировала и что в итоге сказал мой ментор.

В предыдущих сериях: я - фронтенд-разработчица с 2+ годами опыта - поставила целью своего 3-месячного обучения прокачаться в мидловских компетенциях. В первом месяце я щелкала задачки с Codewars, учила теорию и занималась английским, а второй месяц провела, проходя курсы на Хекслете.

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

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

Во-вторых, меня напрягали временные рамки. По факту менторская программа длилась не ровно три месяца, а скорее два или два с половиной. Пет-проект мне нужно было подготовить к 1 марта, но половину февраля я проболела и пыталась занять себя чем-то полезным, но не слишком тяжелым (а именно, решала курсы на Хекслете - об этом в предыдущем посте). В итоге на выполнение пет-проекта у меня осталось дней десять.

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

Страх страхом, но у меня оставалось всего десять дней, и надо было начинать. Какие идеи у меня были на старте:

  • Я хочу написать калькулятор (чего-нибудь). По моему изначальному замыслу, я должна была написать клон Тяжеловато — калькулятора бюджета на день. Выглядело не слишком просто, а еще в открытом доступе был блог разработчиков и даже готовые макеты.
  • Писать я буду на Vue (с Composition API) и на TypeScript. В идеале когда-нибудь перепишу это на React — чтобы потренироваться.
  • Вместо вебпака буду использовать Vite.
  • Попробую отойти от структуры, предлагаемой при базовом разворачивании проекта, и вместо этого попробую модульную архитектуру (в идеале вообще хотела попрактиковаться с FSD, но вряд ли это подошло бы для маленького проекта)
  • Т.к. я сильно ограничена по времени, сделаю совсем простой MVP с минимумом функционала, а позже буду его дорабатывать

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

И наконец меня осенило, какой проект я хочу сделать, которым можно будет действительно пользоваться — а не положить в стол. Приложение с делением счета на нескольких человек! Мы с моей компанией друзей пользовались различными аналогами (Splitwise, Tricount), но ни один из них не был удобным, с простым интерфейсом (а про использование на мобильных вообще молчу). Если что, здесь я имею в виду сложный калькулятор с возможностью вводить список покупок и отмечать, кто за что платил — и на этом основании рассчитывать долги.

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

Вот что бы я сделала по-другому, будь у меня больше времени:

  • Я бы продумала все сущности до начала работы. Поначалу я вообще создала один общий store для всего подряд, и только в самом конце разделила его на несколько (с Pinia это конечно было делать гораздо удобнее, чем с Vuex). Однако во время работы я часто путалась, и на это тоже приходилось тратить время.
  • Я бы не забивала на типизацию (даже временно) и не лепила any везде, где мне было лень создавать интерфейс. Это, опять же, только замедляло меня и открывало много возможностей для ошибок.
  • Я бы уделила больше времени организации стилей и вообще файлов.
  • И в целом писала бы аккуратнее и рефакторила бы решения, которые приходят в голову первыми (чтобы не клепать алгоритмы чуть ли не с кубической сложностью)

Перед финальным созвоном с ментором я тревожилась, т.к. отправила ему очень сырой MVP с кучей ошибок. Однако разговор прошел хорошо — ментор похвалил в общих чертах архитектуру проекта и его внешнюю часть, а потом мы сели разбирать ошибки — прошлись по почти всему коду, и ментор предлагал другие варианты решения (или просто подхода к написанию — тоже было интересно узнать, на что обращают внимание в крупных компаниях). В итоге я получила большой план для работы над ошибками, и сейчас возвращаюсь к нему, когда получается найти время.

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

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

Успехов :)

Аватар пользователя Вика Эф
Вика Эф 28 марта 2023
6
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 25 апреля
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 25 апреля
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 25 апреля
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 25 апреля
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 25 апреля
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 25 апреля
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время