[Java Backend Zero to Hello] Lộ Trình Học Backend Java Toàn Diện Từ Con Số 0
📚 Bài viết thuộc series Java Backend Zero to Hello 📌 Phần: Lộ Trình Tổng Quan | Bài 1/86
LỘ TRÌNH HỌC BACKEND JAVA CHO NGƯỜI MỚI
Tài liệu này được tạo và lưu trữ tại folder
lession/. Mỗi phase có folder riêng chứa các bài giảng chi tiết.
MỤC TIÊU TỔNG QUAN
Sau khi hoàn thành lộ trình này, bạn sẽ có khả năng:
- Nắm vững nền tảng Java Core (cơ bản + nâng cao)
- Sử dụng thành thạo Maven/Gradle để quản lý project
- Làm việc với cơ sở dữ liệu quan hệ (MySQL/PostgreSQL) thông qua JPA/Hibernate
- Xây dựng RESTful API với Spring Boot
- Viết unit test, integration test
- Đóng gói, triển khai ứng dụng với Docker
- Áp dụng best practices: SOLID, Clean Code, Design Patterns
Thời gian ước tính: 6 - 9 tháng (mỗi tuần ~10-15 giờ)
CẤU TRÚC LỘ TRÌNH
lession/
├── ROADMAP.md # File bạn đang đọc
├── phase-01-java-basic/ # Java Core cơ bản (4-6 tuần)
├── phase-02-java-advanced/ # Java Core nâng cao (3-4 tuần)
├── phase-03-build-tools/ # Maven, Gradle, Git (1-2 tuần)
├── phase-04-database/ # SQL, JDBC, JPA/Hibernate (3-4 tuần)
├── phase-05-spring/ # Spring Framework & Spring Boot (4-5 tuần)
├── phase-06-rest-api/ # REST API, Security, Best Practices (3-4 tuần)
├── phase-07-testing-devops/ # Testing, Docker, CI/CD (2-3 tuần)
├── phase-08-project/ # Project thực tế cuối khóa (4-6 tuần)
└── resources/ # Tài liệu tham khảo, cheatsheet
PHASE 1: JAVA CORE CƠ BẢN (4-6 tuần)
Mục tiêu: Nắm cú pháp Java, tư duy OOP, xử lý ngoại lệ, Collections cơ bản.
| # | Bài học | Nội dung chính |
|---|---|---|
| 1.1 | Giới thiệu Java & Cài đặt môi trường | JDK, JRE, JVM, IDE (IntelliJ), Hello World |
| 1.2 | Biến, kiểu dữ liệu, toán tử | Primitive, Reference, ép kiểu, Scanner |
| 1.3 | Cấu trúc điều khiển | if/else, switch, for, while, do-while |
| 1.4 | Mảng & String | Mảng 1D/2D, String pool, StringBuilder |
| 1.5 | Phương thức & Tái sử dụng code | Method signature, overloading, recursion |
| 1.6 | Lập trình hướng đối tượng (OOP) | Class, Object, Constructor, this |
| 1.7 | 4 tính chất OOP | Encapsulation, Inheritance, Polymorphism, Abstraction |
| 1.8 | Abstract class & Interface | abstract, interface, default method |
| 1.9 | Xử lý ngoại lệ (Exception) | try-catch-finally, throw/throws, custom exception |
| 1.10 | Collections Framework (phần 1) | List, Set, ArrayList, LinkedList, HashSet |
| 1.11 | Collections Framework (phần 2) | Map, HashMap, TreeMap, Iterator |
| 1.12 | Wrapper class & Autoboxing | Integer, Double, Boolean, autoboxing |
Bài tập cuối phase: Quản lý sinh viên (CRUD console app với ArrayList)
PHASE 2: JAVA CORE NÂNG CAO (3-4 tuần)
Mục tiêu: Generic, Lambda, Stream API, đa luồng, I/O, Java 8+ features.
| # | Bài học | Nội dung chính |
|---|---|---|
| 2.1 | Generic | Type parameter, bounded type, wildcards |
| 2.2 | Lambda Expression | Functional interface, lambda syntax, method reference |
| 2.3 | Stream API | filter, map, reduce, collect, parallel stream |
| 2.4 | Optional | Tránh NullPointerException |
| 2.5 | Date/Time API | LocalDate, LocalDateTime, DateTimeFormatter |
| 2.6 | Đa luồng (Multithreading) | Thread, Runnable, synchronized, volatile |
| 2.7 | Executor Framework | ThreadPool, ExecutorService, Future |
| 2.8 | I/O & File | File, FileInputStream, BufferedReader, NIO |
| 2.9 | Annotation & Reflection | @Override, custom annotation, Class API |
| 2.10 | Enum & Nested class | enum, static nested, inner class, anonymous |
| 2.11 | Java 9-17 features | var, record, sealed class, switch expression |
Bài tập cuối phase: Xử lý file CSV với Stream API + đa luồng
PHASE 3: CÔNG CỤ & BUILD TOOLS (1-2 tuần)
Mục tiêu: Quản lý project chuyên nghiệp với Maven, Git workflow.
| # | Bài học | Nội dung chính |
|---|---|---|
| 3.1 | Git cơ bản | init, add, commit, push, pull, branch, merge |
| 3.2 | Git nâng cao | rebase, stash, cherry-pick, conflict resolution |
| 3.3 | Maven cơ bản | pom.xml, dependency, lifecycle, repository |
| 3.4 | Maven nâng cao | Multi-module, profile, plugin tùy chỉnh |
| 3.5 | Gradle (tùy chọn) | build.gradle, Kotlin DSL, so sánh với Maven |
| 3.6 | Logging | SLF4J, Logback, Log4j2 |
Bài tập cuối phase: Tạo project Maven đa module, quản lý version với Git
PHASE 4: DATABASE & SQL (3-4 tuần)
Mục tiêu: SQL thành thạo, JDBC, ORM với JPA/Hibernate.
| # | Bài học | Nội dung chính |
|---|---|---|
| 4.1 | Cơ sở dữ liệu quan hệ | Khái niệm RDBMS, ACID, normalization |
| 4.2 | SQL cơ bản | SELECT, INSERT, UPDATE, DELETE, WHERE, JOIN |
| 4.3 | SQL nâng cao | Subquery, GROUP BY, HAVING, Index, View |
| 4.4 | MySQL/PostgreSQL thực hành | Cài đặt, tạo DB, user, phân quyền |
| 4.5 | JDBC | Connection, Statement, PreparedStatement, ResultSet |
| 4.6 | Connection Pool | HikariCP, cấu hình pool |
| 4.7 | JPA/Hibernate cơ bản | Entity, EntityManager, persistence.xml |
| 4.8 | Quan hệ trong JPA | @OneToMany, @ManyToOne, @ManyToMany |
| 4.9 | Query nâng cao | JPQL, Criteria API, Native Query |
| 4.10 | Transaction & Locking | @Transactional, isolation level, deadlock |
Bài tập cuối phase: Ứng dụng quản lý thư viện với JDBC + Connection Pool
PHASE 5: SPRING FRAMEWORK & SPRING BOOT (4-5 tuần)
Mục tiêu: Làm chủ Spring Boot, xây dựng ứng dụng enterprise.
| # | Bài học | Nội dung chính |
|---|---|---|
| 5.1 | Tổng quan Spring | IoC, DI, Bean, ApplicationContext |
| 5.2 | Spring Boot cơ bản | @SpringBootApplication, auto-configuration, starter |
| 5.3 | Bean & Dependency Injection | @Component, @Service, @Repository, @Autowired |
| 5.4 | Spring Data JPA | Repository, method naming, @Query, Pageable |
| 5.5 | Spring Web MVC | @Controller, @RequestMapping, Model, ViewResolver |
| 5.6 | Spring Boot REST | @RestController, @GetMapping, @PostMapping |
| 5.7 | Validation | @Valid, @NotNull, @Size, custom validator |
| 5.8 | Exception Handling | @ControllerAdvice, @ExceptionHandler, ResponseStatus |
| 5.9 | Spring Security cơ bản | Authentication, Authorization, JWT |
| 5.10 | Spring Boot Actuator | Health check, metrics, monitoring |
| 5.11 | Caching | @Cacheable, @CacheEvict, Redis |
| 5.12 | AOP (Aspect-Oriented Programming) | @Aspect, @Before, @After, pointcut |
Bài tập cuối phase: Blog API với Spring Boot + JPA + Security
PHASE 6: REST API & BEST PRACTICES (3-4 tuần)
Mục tiêu: Thiết kế API chuẩn, code sạch, design pattern.
| # | Bài học | Nội dung chính |
|---|---|---|
| 6.1 | RESTful API Design | Resource, URI, HTTP method, status code |
| 6.2 | API Documentation | OpenAPI/Swagger, SpringDoc |
| 6.3 | DTO & Mapper | Tách layer, MapStruct, ModelMapper |
| 6.4 | SOLID Principles | 5 nguyên lý thiết kế hướng đối tượng |
| 6.5 | Design Patterns thường gặp | Singleton, Factory, Builder, Strategy, Observer |
| 6.6 | Clean Code | Naming, function, comment, formatting |
| 6.7 | Pagination & Sorting | Pageable, PageRequest, cursor-based |
| 6.8 | File Upload/Download | MultipartFile, S3, streaming |
| 6.9 | Email & Notification | JavaMailSender, template |
| 6.10 | Logging & Monitoring | Structured logging, ELK stack |
Bài tập cuối phase: E-commerce API hoàn chỉnh với Swagger
PHASE 7: TESTING & DEVOPS CƠ BẢN (2-3 tuần)
Mục tiêu: Đảm bảo chất lượng code, triển khai ứng dụng.
| # | Bài học | Nội dung chính |
|---|---|---|
| 7.1 | Unit Test với JUnit 5 | @Test, assertion, lifecycle |
| 7.2 | Mockito | Mock, Stub, Spy, @MockBean |
| 7.3 | Integration Test | @SpringBootTest, Testcontainers |
| 7.4 | Docker cơ bản | Dockerfile, image, container, volume |
| 7.5 | Docker Compose | Multi-container, network |
| 7.6 | CI/CD với GitHub Actions | Workflow, build, test, deploy |
| 7.7 | Triển khai lên cloud | AWS EC2, Railway, Render |
Bài tập cuối phase: Dockerize ứng dụng + setup CI/CD pipeline
PHASE 8: PROJECT THỰC TẾ CUỐI KHÓA (4-6 tuần)
Mục tiêu: Xây dựng sản phẩm hoàn chỉnh, đưa vào portfolio.
Đề xuất project: Hệ thống quản lý bán hàng (E-commerce Backend)
Tính năng chính:
- Quản lý người dùng (đăng ký, đăng nhập, JWT)
- Quản lý sản phẩm, danh mục
- Giỏ hàng, đặt hàng
- Thanh toán (mock)
- Phân quyền (Admin, Customer)
- Upload ảnh sản phẩm
- Thống kê, báo cáo
- API documentation với Swagger
- Docker + CI/CD
Tech stack:
- Java 17, Spring Boot 3.x
- Spring Security + JWT
- Spring Data JPA + PostgreSQL
- Redis (caching)
- Docker, Docker Compose
- GitHub Actions
- Swagger/OpenAPI
TÀI LIỆU THAM KHẢO
Sách
- Effective Java - Joshua Bloch
- Clean Code - Robert C. Martin
- Spring in Action - Craig Walls
- Java Concurrency in Practice - Brian Goetz
Online
Video (tiếng Việt)
- Tự học Java trên YouTube
- Khóa học Spring Boot trên Udemy
LỘ TRÌNH NÂNG CAO (sau khi hoàn thành)
- Microservices - Spring Cloud, Eureka, Gateway, Config Server
- Message Queue - RabbitMQ, Apache Kafka
- Elasticsearch - Full-text search
- Kubernetes - Orchestration
- Reactive Programming - WebFlux, R2DBC
- GraphQL - Thay thế REST
- Performance Tuning - JVM, GC, profiling
LỜI KHUYÊN
- Code mỗi ngày - Tối thiểu 1-2 giờ/ngày
- Đọc code người khác - GitHub, open source
- Làm project thực tế - Không chỉ học lý thuyết
- Đặt câu hỏi - Stack Overflow, cộng đồng Java Việt Nam
- Viết blog - Chia sẻ kiến thức giúp nhớ lâu hơn
- Đừng sợ sai - Debug là cách học tốt nhất
Bắt đầu ngay với Phase 1: Java Core cơ bản
🧭 Điều Hướng Series
📋 Lộ trình tổng quan: Xem Toàn Bộ Series
➡️ Bài tiếp theo: PHASE 1: JAVA CORE CƠ BẢN - Tổng Quan & Mục Tiêu
All rights reserved