This repository represents a structured learning path in Java, built using a professional development workflow.
The focus is not only on learning syntax, but on understanding how Java behaves internally and how to apply its core concepts in real-world backend scenarios.
- Strengthen core Java fundamentals
- Develop problem-solving skills using Java
- Build a solid foundation for backend development (Spring Boot)
- Simulate a real-world engineering workflow (tasks, versioning, CI)
This project follows a task-based development approach inspired by real engineering teams:
- Tasks are defined and tracked (Jira-style workflow)
- Each task is developed in an isolated branch (
feat/*) - Code is implemented alongside unit tests
- Commits follow a standardized pattern (Conventional Commits)
- Changes are validated through CI (GitHub Actions)
- Basics (primitives, operators, control flow)
- Object-Oriented Programming (OOP)
- Collections Framework
- Exception Handling
- Streams and Lambdas
- JVM fundamentals
All implementations are expected to include unit tests.
The goal is to validate:
- Expected behavior
- Edge cases
- Code reliability
The codebase is organized by core Java concepts, with isolated modules for each topic:
src/
├── basics/ → control flow, primitives, operators
├── oop/ → encapsulation, inheritance, polymorphism
├── collections/ → List, Set, Map and implementations
├── exceptions/ → custom exceptions and error handling
├── streams/ → functional programming with streams
tests/
Each module contains small, focused implementations designed to reinforce specific concepts.
Each task follows a consistent flow:
- Task definition
- Branch creation (
feat/key-jira) - Implementation
- Unit tests
- Commit using Conventional Commits
- CI validation
This foundation will evolve into a backend application using:
- Spring Boot
- REST APIs
- Database integration
- Clean Architecture / DDD principles
This project follows the Conventional Commits specification:
<type>(scope): <description>
feat: implement arithmetic operations
test: add unit tests for calculator
refactor: improve method naming
This repository is part of a continuous learning process focused on backend engineering, system design, and professional development practices.