Ситуация знакомая: вы прошли курс по Java, написали пять HelloWorld и теперь сидите перед пустым проектом в IntelliJ, не понимая, что делать дальше. Теория без практики — мертвый груз. Pet-проект решает эту проблему: вы пишете что-то работающее, набиваете руку и получаете строчку в портфолио, которую можно показать на собеседовании.
Java стабильно в топ-5 языков программирования. По данным TIOBE на 2025 год — третье место, а в рейтинге РУССОФТ по доле использующих этот язык разработчиков — стабильно первое. На рынке труда Java-разработчики востребованы, но от джуниоров ждут хотя бы минимального портфолио. Собственно, для этого и нужны pet-проекты.
Ниже — 25 идей разного уровня сложности. От консольных штук на пару вечеров до полноценных веб-приложений с базой данных и REST API. Каждый проект — это реальный навык, который пригодится на работе.
- Консольные проекты для старта
- 1. Калькулятор
- 2. Генератор паролей
- 3. Крестики-нолики
- 4. Конвертер валют с API
- 5. Менеджер задач (To-Do)
- Проекты с графическим интерфейсом
- 6. Змейка
- 7. Графический калькулятор
- 8. Конвертер изображений
- 9. Текстовый редактор
- 10. Игра «Угадай число»
- Работа с базами данных
- 11. Записная книжка контактов
- 12. Учет книг в библиотеке
- 13. Конвертер CSV в SQL
- 14. Учет финансов
- 15. Система управления аптекой
- Веб-приложения на Spring Boot
- 16. REST API для списка задач
- 17. Блог
- 18. Сервис сокращения ссылок
- 19. Приложение регистрации и аутентификации
- 20. Онлайн-блокнот с заметками
- Работа с API и интеграции
- 21. Telegram-бот погоды
- 22. Клиент для API фильмов (OMDB/TMDB)
- 23. Агрегатор новостей
- Многопоточность и продвинутые темы
- 24. Параллельный поиск файлов
- 25. Многопоточный веб-скрапер
- Сводная таблица проектов
- Как выжать максимум из pet-проекта
- FAQ
Консольные проекты для старта
Начинать стоит с консоли. Без фреймворков, без баз данных, без фронтенда. Чистая Java, логика и работа с вводом-выводом. Это база, через которую надо пройти.
1. Калькулятор
Классика. Сложение, вычитание, умножение, деление. Кажется банально, но тут вы отработаете Scanner для ввода, условные операторы, обработку исключений (деление на ноль, ввод букв вместо цифр). Потом можно добавить скобки, историю операций, степени и корни.
Стек: Core Java, Scanner, Math
Сложность: легкая
Время: 1-2 вечера
2. Генератор паролей
Пользователь задает длину и какие символы использовать — буквы, цифры, спецсимволы. Программа генерирует случайный пароль. Простая штука, но вы познакомитесь с Random, StringBuilder, работой с массивами символов. Можно добавить проверку пароля на «силу».
Стек: Core Java, Random, StringBuilder
Сложность: легкая
Время: 1 вечер
3. Крестики-нолики
Двумерный массив 3×3, два игрока ходят по очереди. Нужно проверять выигрышные комбинации, обрабатывать ничью, валидировать ввод. Звучит просто, но логика проверки победы заставит подумать. Бонус — добавить примитивного бота, который ходит случайно.
Стек: Core Java, двумерные массивы
Сложность: легкая
Время: 2-3 вечера
4. Конвертер валют с API
Консольное приложение, которое берет курсы валют через HTTP-запрос к бесплатному API (ExchangeRate-API или аналог) и пересчитывает суммы. Тут уже посерьезнее: работа с HTTP-клиентом (java.net.http.HttpClient), парсинг JSON, обработка сетевых ошибок.
Стек: Core Java, HttpClient, JSON (Gson или Jackson)
Сложность: легкая-средняя
Время: 2-3 вечера
5. Менеджер задач (To-Do)
Добавляете задачи, отмечаете выполненные, удаляете. Список сохраняется в файл и загружается при запуске. Это хороший проект для освоения коллекций ArrayList, работы с файлами через Files/BufferedWriter и сериализации.
Стек: Core Java, Collections, File I/O
Сложность: легкая
Время: 2 вечера
Совет: Консольные проекты кажутся скучными, но именно на них вы набиваете руку. Не пропускайте этот этап, даже если очень хочется сразу делать веб-приложение.
Проекты с графическим интерфейсом
GUI в Java — тема спорная. Swing устарел, JavaFX жив, но используется редко. Зато для pet-проектов сойдет отлично: вы поймете принципы событийного программирования и отрисовки интерфейсов.
6. Змейка
Та самая. Змейка двигается, собирает еду, растет. Столкнулась с собой или со стеной — конец. Проект учит работать с таймерами, отрисовкой на Canvas, обработкой клавиш. Одна из лучших игр для обучения, потому что логика простая, а результат наглядный.
Стек: JavaFX или Swing, Timer, KeyListener
Сложность: средняя
Время: 3-5 вечеров
7. Графический калькулятор
То же, что и консольный, но с кнопками и дисплеем. JFrame, JPanel, JButton, JLabel — всё это придется использовать. Практика по компоновке элементов, обработке событий ActionListener. Можно добавить историю вычислений сбоку.
Стек: Java Swing (JFrame, JPanel, JButton)
Сложность: средняя
Время: 2-3 вечера
8. Конвертер изображений
Программа берет картинку, меняет формат (JPEG в PNG и обратно), может изменить размер или применить простой фильтр вроде черно-белого. Работа с BufferedImage и ImageIO. Не самый зрелищный проект, зато практичный.
Стек: Core Java, BufferedImage, ImageIO
Сложность: средняя
Время: 2 вечера
9. Текстовый редактор
Простой блокнот: открытие файлов, редактирование, сохранение. Для продвинутых — поддержка Markdown-разметки, подсветка синтаксиса. Этот проект учит работать с потоками ввода-вывода, JTextArea, меню, горячими клавишами.
Стек: Java Swing, File I/O, JTextArea, JMenuBar
Сложность: средняя
Время: 4-5 вечеров
10. Игра «Угадай число»
Компьютер загадывает число, пользователь угадывает. После каждой попытки — подсказка «больше» или «меньше». Можно реализовать и в консоли, но с GUI получается интереснее: индикатор попыток, визуальные подсказки, таблица рекордов.
Стек: JavaFX или Swing, Random
Сложность: легкая
Время: 1-2 вечера
Работа с базами данных
Без базы данных далеко не уедешь. На работе Java-разработчик 90% времени так или иначе работает с данными. Эти проекты учат SQL, JDBC, а для самых целеустремленных — Hibernate и JPA.
11. Записная книжка контактов
CRUD-приложение: создание, чтение, обновление, удаление контактов. Имя, телефон, email, заметки. Храните в SQLite или H2 — они встроенные, не нужно ничего устанавливать. Начните с чистого JDBC, потом попробуйте переписать на JPA.
Стек: JDBC, SQLite/H2, SQL
Сложность: средняя
Время: 3-4 вечера
12. Учет книг в библиотеке
Книги, авторы, читатели, выданные экземпляры. Тут появляются связи между таблицами: один-ко-многим (автор — книги), многие-ко-многим (книги — читатели). Отличная практика проектирования схемы базы данных.
Стек: JDBC/Hibernate, MySQL/PostgreSQL
Сложность: средняя
Время: 4-5 вечеров
13. Конвертер CSV в SQL
Утилита читает CSV-файл и генерирует SQL-скрипт с INSERT-запросами. Или наоборот — делает SELECT и сохраняет результат в CSV. Практическая штука, которая реально пригождается в работе. Учит парсить файлы, строить SQL-запросы программно.
Стек: Core Java, File I/O, JDBC, OpenCSV
Сложность: средняя
Время: 2-3 вечера
14. Учет финансов
Доходы, расходы, категории, баланс. С возможностью фильтрации по датам и категориям. Можно добавить экспорт в CSV или простенькие графики через JFreeChart. Проект близок к реальным задачам и хорошо смотрится в портфолио.
Стек: JDBC/Hibernate, H2/PostgreSQL
Сложность: средняя
Время: 5-7 вечеров
15. Система управления аптекой
Учет лекарств на складе, поставщики, продажи, сроки годности. Проект посложнее, потому что тут несколько связанных сущностей и бизнес-логика (списание просроченных препаратов, уведомления о низком остатке). Для амбициозных джунов — то, что нужно.
Стек: Hibernate, PostgreSQL, JPA
Сложность: выше средней
Время: 1-2 недели
Подсказка: Для проектов с БД начните с H2 (встроенная) — не нужно ничего устанавливать. Когда разберетесь, мигрируйте на PostgreSQL — этот навык ценят на собеседованиях.
Веб-приложения на Spring Boot
Spring Boot — стандарт индустрии для Java-бэкенда. Если вы хотите работать Java-разработчиком, без него никак. Проекты из этого раздела — уже серьезное портфолио, которое покажет работодателю, что вы знаете не только синтаксис.
16. REST API для списка задач
CRUD через HTTP-запросы. GET, POST, PUT, DELETE. Данные хранятся в базе, ответы в JSON. Это ваш «Hello World» в мире Spring Boot. Проект маленький, но покрывает контроллеры, сервисы, репозитории, DTO — всю типовую архитектуру.
Стек: Spring Boot, Spring Data JPA, PostgreSQL, Lombok
Сложность: средняя
Время: 3-5 вечеров
17. Блог
Статьи, категории, комментарии. Авторизация через Spring Security (хотя бы базовая). Пагинация, поиск. Можно использовать Thymeleaf для рендеринга HTML на сервере. Проект учит работать с шаблонизаторами, формами, валидацией.
Стек: Spring Boot, Thymeleaf, Spring Security, PostgreSQL
Сложность: выше средней
Время: 1-2 недели
18. Сервис сокращения ссылок
Пользователь отправляет длинную ссылку — получает короткую. При переходе по короткой — редирект на оригинал. Плюс статистика переходов. Проект небольшой, но демонстрирует работу с редиректами, генерацией уникальных ID, кешированием.
Стек: Spring Boot, Spring Data JPA, Redis (для кеша)
Сложность: средняя
Время: 3-4 вечера
19. Приложение регистрации и аутентификации
Регистрация, логин, JWT-токены, роли пользователей, восстановление пароля по email. Этот функционал есть в каждом втором проекте на работе, поэтому написать его самому — бесценный опыт. Spring Security может показаться монстром, но разобравшись раз, вы будете благодарны.
Стек: Spring Boot, Spring Security, JWT, JavaMailSender
Сложность: выше средней
Время: 1 неделя
20. Онлайн-блокнот с заметками
Веб-версия блокнота. Создание, редактирование, удаление заметок. Категории, теги, поиск. Данные привязаны к пользователю. Можно добавить Markdown-рендеринг на стороне клиента. Хороший проект, чтобы собрать вместе всё, что вы узнали про Spring Boot.
Стек: Spring Boot, Spring Security, Thymeleaf/React, PostgreSQL
Сложность: выше средней
Время: 1-2 недели
Работа с API и интеграции
Реальные проекты редко живут в вакууме. Они общаются с внешними сервисами, парсят данные, отправляют уведомления. Эти навыки нужны на любой работе.
21. Telegram-бот погоды
Бот принимает название города и возвращает текущую погоду. Используется OpenWeatherMap API для данных и Telegram Bot API для общения. Проект компактный, но покрывает HTTP-запросы, парсинг JSON, webhook/long polling. Pet-проект, который реально используешь каждый день.
Стек: Spring Boot, TelegramBots API, OpenWeatherMap, Jackson
Сложность: средняя
Время: 3-5 вечеров
22. Клиент для API фильмов (OMDB/TMDB)
Поиск фильмов по названию, просмотр деталей (рейтинг, год, описание, постер). Сохранение в «избранное» в локальной базе. Можно сделать как консольное приложение, а потом обернуть в REST API или даже добавить простой фронтенд.
Стек: Core Java / Spring Boot, HttpClient, Jackson, OMDB API
Сложность: средняя
Время: 3-4 вечера
23. Агрегатор новостей
Парсит RSS-ленты нескольких новостных сайтов, складывает в базу, показывает в удобном виде. Фильтрация по источникам, поиск по заголовкам. Можно добавить уведомления в Telegram при появлении новости с определенным ключевым словом.
Стек: Spring Boot, ROME (RSS-парсер), PostgreSQL, Spring Scheduler
Сложность: выше средней
Время: 1-2 недели
Многопоточность и продвинутые темы
Многопоточность — то, о чем спрашивают на каждом Java-собеседовании. Знать теорию мало. Нужно хотя бы раз потрогать руками Thread, ExecutorService, ConcurrentHashMap. Вот проекты, которые помогут.
24. Параллельный поиск файлов
Утилита ищет файлы по имени или содержимому в указанной директории. Каждая поддиректория обрабатывается отдельным потоком. Результаты собираются в ConcurrentLinkedQueue. Проект показывает, зачем нужна многопоточность на реальном примере — скорость поиска растет в разы.
Стек: Core Java, ExecutorService, ConcurrentLinkedQueue, Files.walk
Сложность: выше средней
Время: 3-5 вечеров
25. Многопоточный веб-скрапер
Программа обходит указанный сайт, собирает данные (заголовки страниц, ссылки, цены товаров — что угодно) и сохраняет в CSV или базу. Несколько потоков обрабатывают разные страницы параллельно. Тут пересекается всё: HTTP-запросы, парсинг HTML (Jsoup), многопоточность, работа с файлами.
Стек: Core Java, Jsoup, ExecutorService, File I/O
Сложность: выше средней
Время: 4-7 вечеров
Имейте в виду: при скрапинге чужих сайтов уважайте robots.txt и не перегружайте серверы. Добавьте задержку между запросами.
Сводная таблица проектов
| # | Проект | Уровень | Основной стек | Время |
|---|---|---|---|---|
| 1 | Калькулятор | Легкий | Core Java | 1-2 вечера |
| 2 | Генератор паролей | Легкий | Core Java, Random | 1 вечер |
| 3 | Крестики-нолики | Легкий | Core Java, массивы | 2-3 вечера |
| 4 | Конвертер валют | Легкий-средний | HttpClient, JSON | 2-3 вечера |
| 5 | Менеджер задач (To-Do) | Легкий | Collections, File I/O | 2 вечера |
| 6 | Змейка | Средний | JavaFX/Swing | 3-5 вечеров |
| 7 | Графический калькулятор | Средний | Java Swing | 2-3 вечера |
| 8 | Конвертер изображений | Средний | BufferedImage, ImageIO | 2 вечера |
| 9 | Текстовый редактор | Средний | Swing, File I/O | 4-5 вечеров |
| 10 | Игра «Угадай число» | Легкий | JavaFX/Swing | 1-2 вечера |
| 11 | Записная книжка | Средний | JDBC, SQLite/H2 | 3-4 вечера |
| 12 | Учет книг | Средний | Hibernate, MySQL | 4-5 вечеров |
| 13 | Конвертер CSV в SQL | Средний | File I/O, JDBC | 2-3 вечера |
| 14 | Учет финансов | Средний | Hibernate, PostgreSQL | 5-7 вечеров |
| 15 | Управление аптекой | Выше среднего | Hibernate, JPA | 1-2 недели |
| 16 | REST API To-Do | Средний | Spring Boot, JPA | 3-5 вечеров |
| 17 | Блог | Выше среднего | Spring Boot, Security | 1-2 недели |
| 18 | Сокращатель ссылок | Средний | Spring Boot, Redis | 3-4 вечера |
| 19 | Аутентификация (JWT) | Выше среднего | Spring Security, JWT | 1 неделя |
| 20 | Онлайн-блокнот | Выше среднего | Spring Boot, Thymeleaf | 1-2 недели |
| 21 | Telegram-бот погоды | Средний | Spring Boot, Bot API | 3-5 вечеров |
| 22 | Клиент API фильмов | Средний | HttpClient, Jackson | 3-4 вечера |
| 23 | Агрегатор новостей | Выше среднего | Spring Boot, ROME | 1-2 недели |
| 24 | Параллельный поиск | Выше среднего | ExecutorService | 3-5 вечеров |
| 25 | Веб-скрапер | Выше среднего | Jsoup, ExecutorService | 4-7 вечеров |
Как выжать максимум из pet-проекта
Написать код — полдела. Чтобы проект реально помог в карьере, сделайте еще несколько вещей.
Залейте на GitHub. Без этого проект не существует для работодателя. Пишите понятные коммиты, добавьте README с описанием проекта, стеком технологий и инструкцией по запуску.
Напишите тесты. Хотя бы unit-тесты через JUnit. Даже пять тестов на основную логику покажут, что вы знаете, что такое тестирование. Для Spring Boot проектов — используйте MockMvc для тестирования контроллеров.
Задеплойте. Рабочий проект на сервере производит впечатление сильнее, чем код в репозитории. Бесплатные варианты: Railway, Render, VPS от Selectel. Для Telegram-бота хватит бесплатного тарифа.
Не бросайте на полпути. Лучше один законченный проект, чем пять недоделанных. Честно, работодатели смотрят не на количество репозиториев, а на то, есть ли хотя бы один доведенный до конца.
Главное правило: не пытайтесь сразу сделать идеально. Первая версия будет корявой — это нормально. Вернетесь через месяц и перепишете, когда узнаете больше.
FAQ
Какой pet-проект на Java выбрать первым?
Если вы только изучили основы — начните с калькулятора или крестиков-ноликов. Если уже знаете коллекции и работу с файлами — попробуйте менеджер задач с сохранением в файл. Первый проект не должен быть грандиозным, главное — довести до конца.
Можно ли показывать pet-проекты на собеседовании?
Да, и это приветствуется. Особенно для джуниоров без коммерческого опыта. Проекты на GitHub показывают, что вы умеете писать код, работать с Git и доводить задачи до результата. Главное — чтобы код был чистый и проект работал.
Нужно ли знать Spring Boot для pet-проекта?
Для первых проектов — нет. Начните с Core Java. Но если вы планируете работать Java backend-разработчиком, Spring Boot нужно освоить обязательно. Начните с простого REST API (проект #16 в списке) — это стандартная точка входа.
Сколько pet-проектов нужно для портфолио?
Для джуниора достаточно 2-3 проектов разного уровня сложности. Например: консольная игра, CRUD с базой данных и REST API на Spring Boot. Это покрывает основные навыки, которые ожидают от начинающего разработчика.
Java ещё востребована в 2026 году?
Да. Java входит в топ-5 языков по индексу TIOBE и стабильно на первом месте по доле использующих разработчиков в России (данные РУССОФТ). Корпоративный бэкенд, Android-разработка, финтех — всё это по-прежнему Java.