0

[Java Backend Zero to Hello] Lộ Trình Học Backend Java Toàn Diện Từ Con Số 0

Java Backend Zero to Hello

📚 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)

  1. Microservices - Spring Cloud, Eureka, Gateway, Config Server
  2. Message Queue - RabbitMQ, Apache Kafka
  3. Elasticsearch - Full-text search
  4. Kubernetes - Orchestration
  5. Reactive Programming - WebFlux, R2DBC
  6. GraphQL - Thay thế REST
  7. Performance Tuning - JVM, GC, profiling

LỜI KHUYÊN

  1. Code mỗi ngày - Tối thiểu 1-2 giờ/ngày
  2. Đọc code người khác - GitHub, open source
  3. Làm project thực tế - Không chỉ học lý thuyết
  4. Đặt câu hỏi - Stack Overflow, cộng đồng Java Việt Nam
  5. Viết blog - Chia sẻ kiến thức giúp nhớ lâu hơn
  6. Đừ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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí