Меня попросили предложить идею пет-проекта для портфолио джава джуна без опыта. Такой, цитирую, "чтобы при подаче заявки в резюме прикладывать гитхаб и это делало его интересным кандидатом?". Дальше буду говорить о веб-разработке, но принципы применимы к чему угодно.
Я скептически отношусь к гитхабу в резюме. Не говорю за других нанимающих менеджеров, но я никогда не видел интересных проектов—обычно это круды типа PetClinic из туториалов спринга.
Тем не менее, лучше хоть что-то, чем вообще ничего, поэтому давайте более четко очертим задачу. Наш пет-проект должен:
- Быть хоть самую чуточку полезным. PetClinic это хорошо, но что-то, что можно пощупать руками, будет куда интереснее.
- Показывать что джун хорошо разобрался в базе языка, фреймворков, системы контроля версий, деплоймента. Голый исходный код, который нужно собирать и запускать, никуда не годится. Решение должно быть полноценным и законченым. Это должен быть продукт.
Под оба этих критерия отлично подходит телеграм-бот с квизами. Звучит просто? Как бы не так.
Проект будет полезен самому джуну. Вопросы и варианты ответов я предлагаю брать из того языка, который он изучает. Если это джава-прогаммист то там может быть что-то вроде "Какого метода нет в классе java.lang.Object
?" и четыре варианта ответа. Для других языков придумайте сами.
Ссылка на бота в резюме и будет значительно более репрезентативной, нежели "вот мой гитхаб проект, там куча классов, разбирайтесь сами".
Технически бот—это вебсервер, который слушает события от мессенджера и как-то на них реагирует, отправляя запросы в ответ. Копнём глубже, для того чтобы все заработало, нашему джуну нужно разобраться:
- Что такое HTTP, гет, пост, json, как его парсить и обрабатывать на выбранном языке.
- Как поднять вебсервер, что такое роутинг.
- Как настроить получение событий из телеграма, как прокидывать тоннель на свою машину чтобы разрабатывать локально (ngrok).
- Как развернуть и подключить базу данных, локально и удалённо.
- Как развернуть это на продакшн-окружении (например Heroku) с настоящей базой, как настроить CI/CD на GitHub Actions чтобы каждый коммит делал редеплой приложения. Тут же изучается контейнеризация и докер.
Сама логика бота—лишь 20% работы. Остальные 80%—инфраструктура и автоматизация вокруг.
Не факт, что все эти знания пригодятся вам на собеседовании, но то, что вы попадете в верхние 20% условного "рейтинга джунов"—это сто процентов. Завтра поговорим об этапах реализации на примере джава-разработчика, потому что уже на хероку и базе данных можно легко застрять на неделю.
Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred