На ваш взгляд, какой лучше стек определить и возможности в проекте сделать, чтобы набить себе хорошо руку для джуна?
Пока выбрал для себя : photoshop/figma, react, redux, thunk, next, nestjs, typescript, git, docker, insomnia, vscode, mongo, postgre
Если так разбить на основные этапы, пока ты учишь разрабатывать приложения:
Backend:
1. Уметь строить диаграммы баз данных sql, nosql. Помимо простых запросов, также различную агрегацию уметь делать, понимание чуть выше начального уровня, чтобы дополнительно ещё глянуть как отрабатывают запросы, индексы настроить.
"Сложная" выборка + оптимизация.
2. Создаю модули, для каждого расписываю модели, роуты обозначаю.
3. JWT подключаю для регистрации c возможностью добавлять роли
4. По типичным запросам сайтов фильтрация, пагинация, crud операции, ну это 90% процентов учебных курсов
Что посоветуете дополнительно добавить на сайт, чтобы попрактиковаться?
- Там к примеру телеграмм бота, чтобы тебе какую то статистику присылал раз в неделю, или отправлял когда комментарий новый добавился под статьей.
- Оптимизация картинок, обработка видео из одного формата в другой, помню на каком собесе была задача сделать из видео гифку
- Модуль, чтобы стучаться в чужие апи, парсить данные для каких нужд, например тоже сборка инфы какой то, можно там настроить крон, чтобы раз в день этот делал
Пока что не учил микросервисы, и сокет соединения, реалитайм очень поверхностно знаю. Накиньте каких то актуальных задач, чтобы просто какие то популярные библиотеки подключить и выполнить задание. Пока что в рамках монолита думаю, но можно и на будущее что то предложить. Пока на реалтайм первое что приходит в голову, это чтобы сделать какое то подобие торгов.
Но можно и без реалтаймов, просто что то предложить актуальное для сайтов.
Frontend:
1. Подготовка в виде ресет, переменные задать, оптимизировать ассеты
2. Верстать на флексах, гридах, адаптив, в конце глянуть на телефоне, браузерах как отображается
3. В целом на реакте выделить компоненты, состояния стора, сверстать с заглушками, потом уже написать сервис, чтобы стучаться на бэк и уже довести проекта до рабочего вида
4. Добавить анимации
5. Добавить графики в виде three.js, шейдеры чуть запрограммировать, если есть части сайта где просто визуальное представление важно, если хочется уйти больше дизайн
Дополнительно:
- Тесты написать к фронту, бэку
- Подумать об оптимизации меомризацией, кешированием
- Нагрузить сайт, глянуть как память используется, для отладки дебагер, девтулзы
- На финальном этапе, когда вроде доволен, то настроить сборку образа через gitactions, и как то автоматизировать деплой на докере, я пока не сильно разбирался в вопросе этом
- Глянуть также nginx для статики, чтобы раздавать, ну это первое что в голову приходит, я по настройке серверов не сильно разбираюсь
Хотел плюс минус для себя проект написать, чтобы по всем этапам разработки адекватной быть в курсе от дизайна до рабочего сайта на сервере. А то пока это всё больше режим кинотеатра, реального навыка и практики не остается так много, как хотелось бы. Но вроде уже созрел по всем билоитекам, инструментам чтобы фулстэк приложение сделать..
Так шо, подкиньте какие то задачки актуальные, реальные, хочу чуть усложнить имеющися базис типичных приложений из курсов, но кругозор не так велик, в плане того, что в принципе можно было бы реализовать, кроме простого ввод/вывода.
так, мысли..
Понимаю, что можно и уже искать работу, и скорее всего конкуренция не будет супер большая, конечно когда в интернете сидишь, то кажется, что ты аутсайдер, а на самом деле в фирмы приходят те ещё кадры. Устраивался я на таком вайбе в какие то шарашкины контроры и как то больше не хочется. А хочется опередилть себе то что ты хочешь и там по собесу будет понятно, когда фирма нормальная, пишут на современном стэке, это утопия конечно, но лучше когда есть цели и ты к нем стремишься. А то иногда на мидла легче найти вакансию адекватную, чем на джуна, но тут такое, потом могут просто давать задачи, которые ты не вытянишь, хотя собесы проходишь.