Toán học không phải là môn học bạn phải “vượt qua” để trở thành lập trình viên. Toán học là ngôn ngữ mô tả và giải quyết vấn đề trong Computer Science.
Tài liệu này dành cho ai?
Software Engineer, Backend Engineer, Frontend Engineer, Fullstack Engineer, AI Engineer, Data Engineer, Senior Developer và Solution Architect — những người muốn hiểu bản chất toán học đằng sau thuật toán, cấu trúc dữ liệu và hệ thống phần mềm, thay vì chỉ học công thức hoặc học thuộc lời giải.
Bạn không cần giỏi toán để đọc tài liệu này. Mọi chương đều đi từ trực giác và First Principles, chứng minh vừa đủ để hiểu bản chất, và luôn gắn với bài toán lập trình hoặc hệ thống thực tế.
Triết lý trình bày
Mỗi chủ đề đi theo dòng tư duy:
Problem
↓
Tại sao bài toán này xuất hiện?
↓
Tại sao trực giác thông thường thất bại?
↓
Toán học giải quyết như thế nào?
↓
Thuật toán được xây dựng ra sao?
↓
Trade-off
↓
Ứng dụng thực tế → Production
↓
Sai lầm phổ biếnMỗi chương tuân theo template 10 phần: Problem Statement → Trực giác → First Principles → Mathematical Model → Thuật toán → Trade-off → Production Applications → Interview → Anti-pattern → Best Practices.
Ví dụ code viết bằng Go.
Mục lục
Level 1 – Mathematical Thinking
| # | Chương | Nội dung chính |
|---|---|---|
| 01 | Logic | Mệnh đề, suy luận, De Morgan, điều kiện — nền tảng của mọi câu lệnh if và query optimizer |
| 02 | Set Theory, Functions & Relations | Tập hợp, ánh xạ, quan hệ — nền tảng của SQL, type system, hash map |
| 03 | Proof Techniques | Induction, Contradiction, Invariant — vì sao thuật toán và vòng lặp của bạn đúng |
| 04 | Mathematical Modeling | Biến bài toán thực tế thành mô hình toán — kỹ năng quan trọng nhất của Solution Architect |
Level 2 – Discrete Mathematics
| # | Chương | Nội dung chính |
|---|---|---|
| 05 | Counting & Combinatorics | Permutation, Combination, Pigeonhole, Inclusion-Exclusion — đếm state space, ước lượng collision |
| 06 | Recurrence Relations | Quan hệ truy hồi, Master Theorem — ngôn ngữ của đệ quy và chi phí thuật toán |
| 07 | Trees | Cây, B-Tree, BST — vì sao database index có dạng cây |
| 08 | Graph Theory | BFS, DFS, Shortest Path, MST, Topological Sort, Network Flow |
| 09 | Boolean Algebra | Đại số Boole — từ mạch logic đến bitmap index và query rewriting |
Level 3 – Algorithm Mathematics
| # | Chương | Nội dung chính |
|---|---|---|
| 10 | Complexity Analysis | Big-O, Big-Theta, Big-Omega, Amortized Analysis, benchmark thực tế |
| 11 | Probability | Conditional Probability, Bayes, Expected Value — Cache, Load Balancer, Retry, Randomized Algorithms |
| 12 | Hashing | Hash function, collision, birthday paradox — Redis Hash Table, partitioning |
| 13 | Divide and Conquer | Chia để trị — Merge Sort, MapReduce, tại sao “chia đôi” mạnh đến vậy |
| 14 | Dynamic Programming | Optimal substructure, overlapping subproblems — từ Fibonacci đến diff algorithm |
| 15 | Greedy Algorithms | Exchange argument, matroid intuition — khi nào tham lam là đúng |
| 16 | Sorting, Searching & Heap | Lower bound Ω(n log n), Binary Search, Heap — vì sao không thể sort nhanh hơn |
Level 4 – Advanced Mathematics
| # | Chương | Nội dung chính |
|---|---|---|
| 17 | Linear Algebra | Vector, Matrix, Dot Product, Eigenvalue, PCA — nền tảng của AI, Recommendation, Search |
| 18 | Statistics | Percentile, Variance, Confidence Interval, Hypothesis Testing — Monitoring, A/B Testing, Benchmark |
| 19 | Number Theory | Prime, Modular Arithmetic, GCD, Fast Exponentiation — Cryptography, Hashing, Blockchain |
| 20 | Information Theory | Entropy, Huffman, Arithmetic Coding — ZIP, Kafka Compression, Storage Engine |
| 21 | Optimization | Branch and Bound, Linear Programming, Gradient Descent — scheduling, resource allocation |
| 22 | Computational Geometry | Distance, Convex Hull, KD-Tree — Maps, GIS, Game, Robotics |
Level 5 – Production
| # | Chương | Nội dung chính |
|---|---|---|
| 23 | Probabilistic Data Structures | Bloom Filter, HyperLogLog, Skip List — đánh đổi độ chính xác lấy bộ nhớ |
| 24 | Advanced Data Structures | Trie, Segment Tree, Fenwick Tree, Union-Find, LRU |
| 25 | Distributed Systems Mathematics | Consistent Hashing, Quorum, CAP, thời gian logic, consensus |
| 26 | Cryptography Mathematics | RSA, ECC, Diffie-Hellman, Hash Functions, Merkle Tree |
| 27 | Production Case Studies | PostgreSQL Optimizer, Redis, Kafka, PageRank, Elasticsearch, Git Diff, Kubernetes, Google Maps, Netflix, Blockchain |
Cách đọc
- Mới bắt đầu / chuẩn bị phỏng vấn: đọc tuần tự Level 1 → 3, sau đó chọn chương Level 4–5 theo nhu cầu.
- Đã có kinh nghiệm, muốn hiểu hệ thống: đọc chương 10 (Complexity) trước để nắm chuẩn phong cách, rồi nhảy thẳng vào Level 5, quay lại chương nền tảng khi cần.
- AI/Data Engineer: ưu tiên 11, 17, 18, 20, 21.
- Backend/Infra: ưu tiên 10, 12, 23, 24, 25, 27.
Một nguyên tắc xuyên suốt
Mỗi khái niệm toán học chỉ thực sự có ý nghĩa khi bạn hiểu: vấn đề nó được tạo ra để giải quyết, giới hạn của nó, cách nó được hiện thực hóa thành thuật toán, và cách các hệ thống thực tế dùng nó trong production. Nếu một chương không trả lời được câu hỏi “nếu không có khái niệm này thì điều gì xảy ra?”, chương đó đã thất bại.