Thuật toán Căn bản — Big-O & Cấu trúc tuyến tính
Tier 1 của track thuật toán: cách đo và suy nghĩ về thuật toán (Big-O, đệ quy, amortized, cache locality, problem-solving framework) và các cấu trúc dữ liệu tuyến tính (mảng, danh sách liên kết, stack, queue/deque, circular buffer, hàng đợi ưu tiên). Code trình bày bằng pseudocode ngôn-ngữ-trung-lập.

Giảng viên
OLHub Team18 bài đã sẵn sàng · Đọc kỹ, không xem video
2 module
Học theo từng phần, không bị nhồi
Cơ bản
Phù hợp người mới — không cần tiền đề
18 bài
Text-first — đọc kỹ, không xem video
~5.7 giờ
Tự nhịp, học theo tốc độ của bạn
Bạn sẽ học được gì
Sau khoá học, bạn sẽ:
Explain Big-O và phân biệt độ phức tạp lý thuyết vs hành vi thực tế (cache, branch)
Analyze chi phí amortized của thao tác (dynamic array doubling, accounting/potential method)
Trace đệ quy qua call stack và nhận diện điều kiện dừng / stack overflow
Choose cấu trúc tuyến tính phù hợp (array vs linked list vs stack/queue/heap) theo bài toán
Kỹ năng
Bạn sẽ thành thạo
Chương trình
Nội dung khoá học
2 module sẵn sàng · 18 bài. Mỗi bài 18-25 phút đọc kỹ — không xem video, không hype.
01
Nền tảng — Cách đo và suy nghĩ về thuật toán
8 bài · ~147 phút
- 01Module 1 — Nền tảng: Cách đo và suy nghĩ về thuật toán5p
- 02Độ phức tạp Big-O từ bản chất — Theta, Omega, amortized intro22p
- 03Recursion & call stack — Khi đệ quy phá vỡ giới hạn ngăn xếp20p
- 04Amortized analysis — ArrayList.add() O(1) dù đôi khi tốn O(n)20p
- 05Cache locality — Vì sao mảng nhanh hơn linked list 25 lần22p
- 06Framework giải bài thuật toán — 5 bước biến brute force thành tối ưu18p
- 07Mini-challenge — findCommonElements: naive vs optimized30p
- 08Module 1 — Tổng kết & cheat sheet: Nền tảng thuật toán10p
02
Cấu trúc tuyến tính
10 bài · ~197 phút
- 01Module 2 — Cấu trúc tuyến tính: tổng quan5p
- 02Array vs ArrayList — Khi nào primitive thắng wrapper20p
- 03Linked list — Vì sao production Java gần như không dùng LinkedList22p
- 04Stack — LIFO từ chồng đĩa đến JVM call stack18p
- 05Queue & Deque — FIFO, sliding window, ArrayDeque thay LinkedList22p
- 06Circular buffer — Ring queue cho hot path & log buffer22p
- 07PriorityQueue — Top-K, scheduler, Dijkstra cần queue thứ tự18p
- 08Mini-challenge — Implement LRU Cache thủ công không dùng LinkedHashMap30p
- 09Case Study: LMAX Disruptor — Ring buffer thắng BlockingQueue 10x30p
- 10Module 2 — Tổng kết: cheat sheet cấu trúc tuyến tính10p
Giảng viên
Ai đứng sau khoá này
OLHub Team
Backend engineers
Backend engineers với kinh nghiệm thực tế trên Java/Spring, PostgreSQL, distributed systems. Tự build và maintain platform này, viết toàn bộ nội dung khoá học theo triết lý “hiểu bản chất, không học vẹt”.
Xem hồ sơ team →Gửi khoá này cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Sẵn sàng bắt đầu?
Học miễn phí, không cần thẻ, không thời hạn. Chỉ cần bạn ngồi xuống đọc kỹ.