Домашний проект: от выбора темы до пункта в резюме.



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



Что писать?

Необязательно придумывать стартап, который изменит мир. Но если идей совсем нет:

1️⃣ Реализуйте с нуля текущий рабочий проект. Это очень удобно:

Знакомая предметная область

Понятные задачи

Можно обсудить с коллегами непонятные места и текущие решения



2️⃣ Если рабочий проект надоел или не нравится, напишите свою версию популярной системы: Tinder, Яндекс.Маркет, «Кто хочет стать миллионером?» и тд. Помните, Вы пишете не "очередной велосипед", а тренируетесь и изучаете лучшие практики.

Понятный функционал

Современные подходы и технологии

Детали реализации оригинала не всегда доступны, поэтому не с чем сравнить результат



Как работать над проектом?

Здесь Вы сами себе проджект-менеджер:

▫️Опишите функции до начала работы. Ориентируйтесь на текущие навыки и добавьте небольшой челлендж

▫️Декомпозируйте и отсортируйте задачи

▫️Составьте план

▫️Поставьте нестрогие дедлайны

▫️Двигайтесь от простого к сложному. Напишите основу на чистой java, добавьте maven/gradle, затем Spring, Spring Boot, базу данных и другие технологии

▫️Пишите тесты, это поможет найти узкие места

▫️Напишите эмулятор запросов, нагрузите приложение и изучите профайлеры



Нужно ли добавлять проект в резюме?

Как хотите🙂 Это большой бонус, если:

🔸Вы только начинаете карьеру разработчика.

🔸Домашний проект больше соответствует вакансии, чем текущее место работы.

🔸Вы хотите показать область своих интересов. Это полезно при собеседовании в компанию с большим количеством проектов.



Как подготовить проект к показу?

Прежде чем добавлять ссылку на проект в резюме, сделайте 2 несложных шага:

1️⃣ Добавьте файл README.md в корневую директорию. Иногда это единственное, на что посмотрит посторонний человек. Не пожалейте времени, тщательно опишите:

▪️О чём проект

▪️Основные функции

▪️Архитектуру (нарисуйте схему)

▪️Используемые технологии



2️⃣ Проработайте структуру проекта - дайте модулям и классам понятные имена. Функции, указанные в README, должно быть легко найти в коде.



Эти простые действия помогут сориентироваться в проекте и лучше оценить Вашу работу.