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ến

Mỗ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ươngNội dung chính
01LogicMệ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
02Set Theory, Functions & RelationsTập hợp, ánh xạ, quan hệ — nền tảng của SQL, type system, hash map
03Proof TechniquesInduction, Contradiction, Invariant — vì sao thuật toán và vòng lặp của bạn đúng
04Mathematical ModelingBiế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ươngNội dung chính
05Counting & CombinatoricsPermutation, Combination, Pigeonhole, Inclusion-Exclusion — đếm state space, ước lượng collision
06Recurrence RelationsQuan hệ truy hồi, Master Theorem — ngôn ngữ của đệ quy và chi phí thuật toán
07TreesCây, B-Tree, BST — vì sao database index có dạng cây
08Graph TheoryBFS, DFS, Shortest Path, MST, Topological Sort, Network Flow
09Boolean AlgebraĐại số Boole — từ mạch logic đến bitmap index và query rewriting

Level 3 – Algorithm Mathematics

#ChươngNội dung chính
10Complexity AnalysisBig-O, Big-Theta, Big-Omega, Amortized Analysis, benchmark thực tế
11ProbabilityConditional Probability, Bayes, Expected Value — Cache, Load Balancer, Retry, Randomized Algorithms
12HashingHash function, collision, birthday paradox — Redis Hash Table, partitioning
13Divide and ConquerChia để trị — Merge Sort, MapReduce, tại sao “chia đôi” mạnh đến vậy
14Dynamic ProgrammingOptimal substructure, overlapping subproblems — từ Fibonacci đến diff algorithm
15Greedy AlgorithmsExchange argument, matroid intuition — khi nào tham lam là đúng
16Sorting, Searching & HeapLower bound Ω(n log n), Binary Search, Heap — vì sao không thể sort nhanh hơn

Level 4 – Advanced Mathematics

#ChươngNội dung chính
17Linear AlgebraVector, Matrix, Dot Product, Eigenvalue, PCA — nền tảng của AI, Recommendation, Search
18StatisticsPercentile, Variance, Confidence Interval, Hypothesis Testing — Monitoring, A/B Testing, Benchmark
19Number TheoryPrime, Modular Arithmetic, GCD, Fast Exponentiation — Cryptography, Hashing, Blockchain
20Information TheoryEntropy, Huffman, Arithmetic Coding — ZIP, Kafka Compression, Storage Engine
21OptimizationBranch and Bound, Linear Programming, Gradient Descent — scheduling, resource allocation
22Computational GeometryDistance, Convex Hull, KD-Tree — Maps, GIS, Game, Robotics

Level 5 – Production

#ChươngNội dung chính
23Probabilistic Data StructuresBloom Filter, HyperLogLog, Skip List — đánh đổi độ chính xác lấy bộ nhớ
24Advanced Data StructuresTrie, Segment Tree, Fenwick Tree, Union-Find, LRU
25Distributed Systems MathematicsConsistent Hashing, Quorum, CAP, thời gian logic, consensus
26Cryptography MathematicsRSA, ECC, Diffie-Hellman, Hash Functions, Merkle Tree
27Production Case StudiesPostgreSQL 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.