Java Developer Roadmap
A step-by-step Java Developer roadmap: the full stack, the skills to learn in order and the best places to learn each step.
The stack, end to end
- Fundamentals: Variables and data types, Loops and conditions, Functions, Problem solving, Git, GitHub, Branching and merging, Pull requests
- Backend: Java, Object-oriented programming, Collections, Exceptions, Maven or Gradle, Spring Boot, Spring Data JPA, Dependency injection, Spring Security, REST API design, JSON, HTTP methods and status codes, API documentation, System design, Scalability, Load balancing, Message queues
- Database: SQL, SELECT and WHERE, JOINs, GROUP BY and aggregates, INSERT, UPDATE, DELETE
- Testing: Unit testing, Integration testing, Test-driven development
- DevOps: Docker, Dockerfile, Docker Compose, Container networking
- Get hired: Portfolio projects, Technical resume, Interview preparation
Programming and problem-solving basics
Learn to think in steps: variables, conditions, loops, functions and how to break a big problem into small ones. A structured beginner course gives you the habit of solving problems on your own.
Skills
- Variables and data types
- Loops and conditions
- Functions
- Problem solving
Tips
- Type the examples yourself instead of copying them, and change them to see what breaks.
Where to learn
- CS50: Introduction to Computer Science (course, free)
- freeCodeCamp (course, free)
- The Odin Project (course, free)
Version control with Git and GitHub
Git records the history of your code and lets teams work on the same project. Learn to commit, branch, merge, resolve conflicts and open a pull request on GitHub. Almost every software job expects it.
Skills
- Git
- GitHub
- Branching and merging
- Pull requests
Tips
- Put every practice project on GitHub. It doubles as your portfolio.
Where to learn
- Pro Git book (book, free)
- GitHub Skills (practice, free)
Java
Java is widely used for enterprise and Android back ends. Learn the syntax, object-oriented programming, collections, exceptions, streams and a build tool such as Maven or Gradle.
Skills
- Java
- Object-oriented programming
- Collections
- Exceptions
- Maven or Gradle
Tips
- Write small console programs until classes and interfaces feel natural.
Where to learn
- dev.java: Learn (docs, free)
- MOOC.fi Java Programming (course, free)
SQL basics
SQL is how you ask a relational database questions. Learn SELECT, WHERE, ORDER BY, GROUP BY, aggregate functions, joins and how to create, insert, update and delete data.
Skills
- SQL
- SELECT and WHERE
- JOINs
- GROUP BY and aggregates
- INSERT, UPDATE, DELETE
Tips
- Practise on real-looking data. Write the query by hand before using any tool that writes it for you.
Where to learn
- SQLBolt (practice, free)
- SQLZoo (practice, free)
- Mode: SQL tutorial (course, free)
Spring Boot
Spring Boot is the standard way to build Java back ends: REST controllers, dependency injection, data access with JPA, configuration, security and testing.
Skills
- Spring Boot
- Spring Data JPA
- Dependency injection
- Spring Security
Tips
- Follow one official guide end to end, then rebuild it from memory.
Where to learn
- Spring guides (docs, free)
- Spring Boot reference (docs, free)
REST APIs
An API lets a frontend, a phone app or another system talk to your backend. Learn resources and HTTP methods, status codes, pagination, versioning and how to document an API. Add GraphQL later if you need it.
Skills
- REST API design
- JSON
- HTTP methods and status codes
- API documentation
Tips
- Test every endpoint with a tool such as Postman before building a frontend on it.
Where to learn
- Postman Learning Center (course, free)
- RESTful API tutorial (docs, free)
- GraphQL: Learn (docs, free)
Unit and integration testing
Automated tests catch mistakes early and let you change code with confidence. Learn to write unit tests, use mocks sensibly and test your API and database together.
Skills
- Unit testing
- Integration testing
- Test-driven development
Tips
- Write a test for every bug you fix so it cannot come back unnoticed.
Where to learn
- The Practical Test Pyramid (book, free)
- pytest documentation (docs, free)
- JUnit 5 user guide (docs, free)
Docker and containers
A container packages an app with everything it needs so it runs the same everywhere. Learn images, containers, volumes, networks, Dockerfiles and Docker Compose.
Skills
- Docker
- Dockerfile
- Docker Compose
- Container networking
Tips
- Containerise one of your own projects end to end.
Where to learn
- Docker: Get started (docs, free)
- Play with Docker (practice, free)
System design basics
Learn how larger systems are put together: load balancers, caches, queues, databases and how to scale and keep them reliable. It also helps you explain your choices in interviews.
Skills
- System design
- Scalability
- Load balancing
- Message queues
Tips
- Practise explaining the design of a small system (a URL shortener) out loud.
Where to learn
- System Design Primer (book, free)
Build your portfolio, resume and interview skills
Employers want proof. Finish two or three projects you can show and explain, put them on GitHub, write a clear resume that matches the jobs you apply for, and practise the interview questions for the role.
Skills
- Portfolio projects
- Technical resume
- Interview preparation
Tips
- Describe what you built, why, and what you would improve. That is what interviewers ask about.
Build your resume · Check your resume (ATS) · Interview questions · Salaries · Browse jobs
Frequently asked questions
Where should I start with Java Developer?
Start at step 1 and work down in order, because later steps build on earlier ones. If you are signed in, the roadmap compares your resume with each step and marks where you could start.
Do I need a degree to work as a Java Developer?
It depends on the employer and the country. Many employers accept proven skills and projects, while others ask for a degree. Read the adverts for the roles you want and ask the employer if it is unclear.
How do I know I am ready to apply?
When you can build a small project from start to finish without copying a tutorial, and explain why you made your choices. Apply while you keep learning; you do not need to know everything.