![]()
Web Frontend
Làm quen với các thẻ HTML và thuộc tính CSS thường dùng
Sử dụng Chrome Developer Tool, clone các trang web nổi tiếng
CSS Position, thực hành position tạo menu đa cấp
CSS Layout, thực hành tạo các loại layout cho trang web với flexbox, grid, xây dựng ứng dụng Image Gallery
Transition, Animation làm hiệu ứng cho trang web
![]()
JavaScript - DOM
Cú pháp căn bản, biến, kiểu dữ liệu, ...
Các cấu trúc điều khiển: if - else, switch - case, while - do while, for
Hàm, cách khai báo và sử dụng hàm trong JavaScript
Object, lập trình JavaScript OOP
DOM, thao tác với HTML, thay đổi nội dung trên trang, thay đổi CSS, xử lý các sự kiện bằng JavaScript
Một số cú pháp mới trong ES6, ES7, ...
![]()
Databases
Các câu lệnh truy vấn cơ bản: SELECT FROM, WHERE, AND, OR, ORDER, LIMIT, ...
Các hàm tổng hợp SUM, COUNT, AVG, MIN, MAX. Gom nhóm dữ liệu với GROUP BY
Cập nhật dữ liệu với INSERT, UPDATE, DELETE
Tạo CSDL, tạo bảng. Các kiểu dữ liệu trong Database
Khóa: Primary key, foreign key, unique. Quan hệ: 1 - 1, 1 - nhiều, nhiều - nhiều
Truy vấn dữ liệu kết hợp từ nhiều bảng với: JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
![]()
Java Core
Cú pháp cơ bản, biến và các kiểu dữ liệu trong Java
Cấu trúc điều khiển: if - else, for loop, ...
Thực hành Clean Coding, Refactoring
Debug ứng dụng, một số lỗi thường gặp và cách xử lý
Lập trình hướng đối tượng OOP: Class, Object, Getter, Setter, Encapsulation, ...
Refactoring theo lập trình hướng đối tượng
Inheritance (tính kế thừa), Interface
Các kỹ thuật Dependency Injection, Constructor Injection
Annotation, cách xử dụng, cách viết custom annotation
Tìm hiểu về Exeption, cách bắt lỗi, xử lý lỗi trong chương trình
Tìm hiểu về Generics, cách xử dụng, các ràng buộc, type erasure, wildcards, ...
Tìm hiểu về Collections, các Interface trong Java
Lambda function, Functional Interface, ...
Stream, tạo Stream, Inperative Programing vs Declarative Programing, ...
Concurentcy vs Multi-threading, cách tạo, gọi, và quản lý đa luồng trong Java
Lựa chọn và hướng dẫn làm đồ án JavaCore cuối khóa
![]()
Data Structure & Algorithm
Phân loại các cấu trúc dữ liệu và cách ứng dụng
Xử lý mảng: thêm, sửa, xóa, luyện tập trên LeetCode
Các giải thuật sắp xếp cơ bản: Bubble Sort, Insertion Sort, Selection Sort
Kỹ thuật đệ quy, phân loại, tối ưu và khử đệ quy
Sắp xếp nâng cao: Quick Sort, Merge Sort, ...
Độ phức tạp của thuật toán, đánh giá độ phức tạp, ...
Linked List - định nghĩa, đặc điểm, ứng dụng và cách triển khai Linked List
Stack và Queue - định nghĩa, đặc điểm, ứng dụng và cách triển khai
Hash Table - định nghĩa, cách cài đặt hash function, map function và cách sử dụng
Cấu trúc cây - Tree, định nghĩa, đặc điểm và ứng dụng
Cấu trúc đồ thị - Graph, định nghĩa, đặc điểm và ứng dụng, thuật toán tìm kiếm
![]()
Java Spring Boot
Tạo dự án Spring Boot, tìm hiểu về cấu trúc project, cách sự dụng Maven
Spring Bean, Annotation
Spring Bean Lify Cycle, hứng và xử lý sự kiện
@Controller - @Service - @Repository
Thymeleaf, demo shop bán giày, ...
Thực hành tạo REST API cho shop bán giày
Validate dữ liệu, xử lý lỗi và loggin
Kết tới với cơ sở dữ liệu thông qua JPA, cách cấu hình CSDL
Thực hành thiết kế CSDL cho shop bán giày
Chi tiết về Spring Data JPA, Transaction, Named Query, ...
Bảo mật REST với Json Web Token, JWT. Tìm hiểu về các cơ chế bảo mật
Caching, tăng tốc trang web, cách ứng dụng
Kiểm thử với JUnit, viết và chạy test
Tích hợp các service: Gửi email, giao tiếp với RabbitMQ, ...
Đóng gói và triển khai ứng dụng với Docker, cài đặt Https
Socket STOMP, lập trình server ứng dụng chơi cờ caro
Cải tiến shop bán giày, bổ sung các trang admin, ...
![]()
Docker DevOps
Các lệnh cơ bản trong Docker
Docker Hub và Docker private registry, đóng gói và triển khai ứng dụng Spring Boot + MySQL
Viết Dockerfile để đóng gói ứng dụng thành Docker Image
Tìm hiểu về Docker Swarm, các service và task
Swarm network, stack, triển khai ứng dụng
Rolling Update, Health check, Secret