Пет-проект для портфолио джуниора. Идея

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

Я скептически отношусь к гитхабу в резюме. Не говорю за других нанимающих менеджеров, но я никогда не видел интересных проектов—обычно это круды типа PetClinic из туториалов спринга.

Тем не менее, лучше хоть что-то, чем вообще ничего, поэтому давайте более четко очертим задачу. Наш пет-проект должен:

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

Под оба этих критерия отлично подходит телеграм-бот с квизами. Звучит просто? Как бы не так.

Проект будет полезен самому джуну. Вопросы и варианты ответов я предлагаю брать из того языка, который он изучает. Если это джава-прогаммист то там может быть что-то вроде "Какого метода нет в классе java.lang.Object?" и четыре варианта ответа. Для других языков придумайте сами.

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

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

  1. Что такое HTTP, гет, пост, json, как его парсить и обрабатывать на выбранном языке.
  2. Как поднять вебсервер, что такое роутинг.
  3. Как настроить получение событий из телеграма, как прокидывать тоннель на свою машину чтобы разрабатывать локально (ngrok).
  4. Как развернуть и подключить базу данных, локально и удалённо.
  5. Как развернуть это на продакшн-окружении (например Heroku) с настоящей базой, как настроить CI/CD на GitHub Actions чтобы каждый коммит делал редеплой приложения. Тут же изучается контейнеризация и докер.

Сама логика бота—лишь 20% работы. Остальные 80%—инфраструктура и автоматизация вокруг.

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


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred