Toán cho lập trình viên: những gì thật sự cần biết?

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

"Mình học dở toán thì có làm được lập trình viên không?" Đây là nỗi lo phổ biến và câu trả lời khá nhẹ nhàng: đa số công việc không cần toán cao cấp. Tuy nhiên, một vài mảng kiến thức toán thật sự giúp bạn code tốt hơn.

Toán cơ bản dùng hằng ngày

Gần như mọi lập trình viên đều dùng:

  • Số học: cộng, trừ, nhân, chia, phần trăm. Ví dụ tính giảm giá, thuế, phân trang.
  • Phép chia lấy dư (modulo): kiểm tra chẵn lẻ, xoay vòng chỉ số, tạo hiệu ứng lặp.
  • Đại số sơ cấp: biến đổi biểu thức, giải phương trình đơn giản.
  • So sánh và làm tròn, chú ý sai số của số thực.
tong_so_muc = 47
moi_trang = 10
so_trang = (tong_so_muc + moi_trang - 1) // moi_trang   # làm tròn lên
print(so_trang)   # 5

gia = 200000
giam = 15
print(gia * (100 - giam) / 100)   # 170000.0

Logic và toán rời rạc

Đây là phần toán gần với lập trình nhất:

  1. Logic mệnh đề: and, or, not, điều kiện if; hiểu cách đơn giản hóa biểu thức điều kiện phức tạp.
  2. Tập hợp: giao, hợp, hiệu; cơ sở của truy vấn cơ sở dữ liệu và kiểu set.
  3. Tổ hợp, đếm: ước lượng số trường hợp phải duyệt, hoán vị, chọn.
  4. Quy nạp: nền tảng để chứng minh và hiểu đệ quy.
  5. Đồ thị: mô hình hóa mạng, bản đồ, quan hệ.

Toán cho phân tích thuật toán

Khi học Big O, bạn cần cảm nhận về hàm số tăng trưởng: tuyến tính, bình phương, logarit, mũ. Chỉ cần hiểu ý tưởng: n nhân đôi thì log n chỉ thêm 1, còn n bình phương thì tăng gấp bốn. Không cần chứng minh phức tạp để làm việc hằng ngày.

Toán theo từng lĩnh vực

Lĩnh vựcToán hay dùng
Web, ứng dụng, backendSố học, logic, thống kê cơ bản
GameVector, hình học, lượng giác, vật lý cơ bản
Đồ họa 3DĐại số tuyến tính, ma trận
Dữ liệu, học máyThống kê, xác suất, đại số tuyến tính, giải tích
Bảo mật, mã hóaSố học modulo, lý thuyết số
Lập trình thi đấuTổ hợp, số học, lý thuyết đồ thị

Một ví dụ trong game: khoảng cách và hướng

import math

def khoang_cach(x1, y1, x2, y2):
    return math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

def chuan_hoa(dx, dy):
    do_dai = math.hypot(dx, dy)
    if do_dai == 0:
        return 0, 0
    return dx / do_dai, dy / do_dai

print(khoang_cach(0, 0, 3, 4))   # 5.0
print(chuan_hoa(3, 4))           # (0.6, 0.8)

Đây là định lý Pitago và vector đơn vị: kiến thức phổ thông nhưng làm nền cho việc di chuyển nhân vật, phát hiện va chạm trong game.

Không biết toán thì sao?

Đừng để nỗi sợ toán cản bạn bắt đầu. Cách thực tế là học toán khi cần, gắn với bài toán cụ thể. Bạn làm game và cần xoay nhân vật? Học lượng giác lúc đó, bạn sẽ nhớ lâu vì thấy kết quả ngay. Thư viện hiện nay còn che giấu phần lớn công thức phức tạp.

Thói quen quan trọng hơn kiến thức

  • Chia nhỏ vấn đề lớn thành bước nhỏ.
  • Kiểm tra bằng ví dụ cụ thể.
  • Nghĩ đến trường hợp biên: bằng 0, âm, rỗng.
  • Kiên nhẫn với việc thử sai.

Ba bài toán nhỏ cho thấy toán xuất hiện ở đâu

Hãy thử để thấy toán phổ thông đủ dùng ra sao:

  1. Tính lãi kép. Gửi 100 triệu, lãi 6% mỗi năm, sau n năm có bao nhiêu? Công thức là số tiền nhân (1 + lãi) mũ n.
  2. Chuyển nhiệt độ từ độ C sang độ F: F bằng C nhân 9/5 cộng 32.
  3. Tính xác suất trong game: nếu một đòn đánh có 20% tỷ lệ chí mạng, xác suất có ít nhất một đòn chí mạng trong 5 đòn là 1 trừ 0,8 mũ 5.
von = 100_000_000
lai = 0.06
for nam in range(1, 4):
    print(nam, round(von * (1 + lai) ** nam))

xac_suat = 1 - 0.8 ** 5
print(round(xac_suat, 3))   # 0.672

Ba ví dụ chỉ dùng lũy thừa, phép nhân và phần trăm. Phần lớn toán trong công việc là như vậy: đơn giản nhưng cần cẩn thận về đơn vị, làm tròn và trường hợp biên. Nếu cảm thấy thiếu nền, hãy ôn lại phần trăm, tỷ lệ, hàm số bậc nhất và lũy thừa; đây là bộ kiến thức đem lại nhiều giá trị nhất so với công sức bỏ ra.

Kết luận

Muốn làm lập trình viên bạn không cần là nhà toán học, nhưng cần nền tảng logic, số học cơ bản và sự thoải mái với suy luận từng bước. Hãy xác định lĩnh vực mình định theo, rồi bổ sung đúng phần toán cần thiết cho lĩnh vực đó.

Muốn học bài bản và có người hướng dẫn? Hãy xem các khóa học trên codebem.com để đi từ nền tảng đến dự án thực tế.

author_photo
Nguyễn Đình Cường

0 comment