Từ điển chuyên ngành Công nghệ thông tin giải thích ngắn gọn, dễ hiểu các thuật ngữ IT thông dụng, giúp bạn nắm vững khái niệm, viết tắt và từ chuyên môn thường gặp trong học tập, làm việc và giao tiếp trong lĩnh vực CNTT.
Từ điển chuyên ngành Công nghệ thông tin không chỉ giúp tra nghĩa Anh – Việt của thuật ngữ IT, mà còn giúp người học hiểu đúng khái niệm, ngữ cảnh sử dụng và vai trò của từng thuật ngữ trong hệ thống công nghệ. Đây là công cụ cần thiết cho sinh viên, lập trình viên mới, người chuyển ngành và cả nhân sự làm việc trong môi trường kỹ thuật, vì phần lớn tài liệu, mã nguồn, log, API, cấu hình, framework và quy trình dự án đều sử dụng tiếng Anh chuyên ngành.

Các thuật ngữ IT thông dụng có thể chia thành nhiều nhóm như phần cứng, phần mềm, hệ điều hành, lập trình, thuật toán, cấu trúc dữ liệu, phát triển web, mobile, API, cơ sở dữ liệu, dữ liệu lớn, trí tuệ nhân tạo, machine learning, cloud, DevOps, an toàn thông tin và quản lý dự án. Khi tra cứu, người học không nên chỉ dịch từng chữ, mà cần xem thuật ngữ đó xuất hiện trong code, documentation, log, file cấu hình, sơ đồ kiến trúc hay hội thoại công việc để hiểu đúng bản chất.
Bên cạnh các thuật ngữ ổn định như database, algorithm, API, server, framework, còn có nhiều từ viết tắt và tiếng lóng như CRUD, DNS, CI/CD, hotfix, tech debt, legacy code. Muốn học hiệu quả, nên xây glossary cá nhân gồm định nghĩa ngắn, ví dụ thực tế, ngữ cảnh sử dụng và liên kết tài liệu chuẩn.
Từ điển chuyên ngành Công nghệ thông tin là gì và dùng như thế nào?
Từ điển chuyên ngành Công nghệ thông tin hoạt động như một bản đồ khái niệm, giúp người học hiểu đúng bản chất thuật ngữ thay vì chỉ tra nghĩa Anh – Việt. Khi sử dụng, cần chú ý phân loại rõ: thuật ngữ kỹ thuật ổn định, từ viết tắt, và tiếng lóng trong môi trường làm việc IT. Mỗi loại đòi hỏi cách tra cứu khác nhau: đọc documentation, tiêu chuẩn kỹ thuật, ví dụ code, log, cấu hình, hoặc hội thoại thực tế. Để khai thác hiệu quả, nên kết hợp từ điển với glossary cá nhân, nơi bạn ghi lại định nghĩa ngắn gọn, ngữ cảnh sử dụng, ví dụ và liên kết tài liệu. Cách tiếp cận này giúp xây dựng vốn từ vựng gắn với kiến trúc, pattern và trải nghiệm dự án.

Cách tra cứu thuật ngữ IT Anh – Việt theo ngữ cảnh kỹ thuật
Từ điển chuyên ngành Công nghệ thông tin trong thực tế là một hệ thống tri thức thu nhỏ, không chỉ liệt kê cặp từ Anh – Việt, mà còn mô tả mô hình khái niệm đằng sau mỗi thuật ngữ. Mỗi mục từ tốt thường bao gồm: định nghĩa kỹ thuật chính xác, phạm vi áp dụng, ràng buộc, ví dụ sử dụng trong hệ thống thật, các biến thể cách gọi, và đôi khi cả những cảnh báo về dịch sai thường gặp. Đặc biệt trong CNTT, một từ có thể gắn với kiến trúc hệ thống, cấu trúc dữ liệu, giao thức, hoặc thực thể triển khai (service, process, container…), nên việc hiểu đúng vai trò trong kiến trúc quan trọng hơn việc tìm một bản dịch “đẹp” sang tiếng Việt.

Khi gặp một thuật ngữ mới, quy trình tra cứu hiệu quả có thể chi tiết hóa như sau:
Trong nhiều trường hợp, một thuật ngữ có nhiều nghĩa tùy ngữ cảnh kỹ thuật. Ví dụ “session”:
- Trong web application: là phiên làm việc của người dùng, gắn với session ID, cookie, thời gian hết hạn, dùng để lưu trạng thái đăng nhập, giỏ hàng…
- Trong networking: có thể chỉ một phiên kết nối ở tầng session (theo mô hình OSI) hoặc một luồng giao tiếp logic giữa hai endpoint.
- Trong framework (ví dụ: Hibernate Session, SQLAlchemy Session): là đối tượng quản lý context làm việc với database, cache entity, transaction boundary.
Khi tra cứu, cần đọc cả câu, đoạn văn, hoặc xem đoạn code liên quan để xác định đúng nghĩa. Một từ điển chuyên ngành tốt thường cung cấp nhiều nghĩa theo từng lĩnh vực (web, hệ điều hành, bảo mật, cơ sở dữ liệu) và ghi rõ bối cảnh, ví dụ:
- session (web): user session, session cookie, session fixation.
- session (security): session hijacking, session token, session replay.
- session (DB / ORM): session factory, session lifecycle, session flush.
Phân biệt thuật ngữ chuyên ngành, từ viết tắt và tiếng lóng trong IT
Trong tài liệu kỹ thuật, code review, ticket, và giao tiếp nội bộ, ba nhóm từ sau thường bị trộn lẫn nếu không có nền tảng thuật ngữ vững:
Thuật ngữ chuyên ngành (technical term) là các khái niệm có định nghĩa tương đối ổn định, thường gắn với một mô hình hoặc chuẩn kỹ thuật. Ví dụ: “virtual machine”, “load balancer”, “garbage collector”, “message broker”, “rate limiter”. Đặc điểm:
- Có thể truy vết nguồn gốc trong sách, tiêu chuẩn, hoặc documentation chính thức.
- Thường có invariant – tập thuộc tính cốt lõi không đổi dù triển khai khác nhau (ví dụ: mọi garbage collector đều có cơ chế xác định và thu hồi vùng nhớ không còn tham chiếu).
- Khi dịch, nên ưu tiên giữ nguyên tiếng Anh và thêm chú thích tiếng Việt: “virtual machine (máy ảo)”, “load balancer (bộ cân bằng tải)”.

Từ viết tắt (acronym) như API, HTTP, DNS, SQL, CI/CD, JWT, TLS, CRUD thường đại diện cho cụm từ dài hơn. Việc hiểu đầy đủ cụm từ gốc giúp nắm bản chất khái niệm, ví dụ:
- API – Application Programming Interface: giao diện lập trình ứng dụng, định nghĩa cách một thành phần phần mềm “phơi bày” chức năng cho thành phần khác.
- DNS – Domain Name System: hệ thống phân giải tên miền sang địa chỉ IP, có cấu trúc phân cấp, gồm zone, record, resolver, authoritative server.
- CI/CD – Continuous Integration / Continuous Delivery (hoặc Deployment): chuỗi thực hành và công cụ tự động hóa build, test, deploy.
- CRUD – Create, Read, Update, Delete: bốn thao tác cơ bản trên dữ liệu, thường dùng để mô tả API hoặc repository.
Khi gặp acronym mới, nên:
- Mở rộng cụm từ gốc, phân tích từng thành phần để hiểu ý nghĩa (ví dụ: JSON Web Token → token dạng JSON, dùng trên web, có cấu trúc header.payload.signature).
- Kiểm tra xem acronym có nhiều nghĩa trong các domain khác nhau không (ví dụ: ACL có thể là Access Control List hoặc Anti-Corruption Layer).
- Ghi chú cả dạng đầy đủ và acronym trong glossary cá nhân để tránh quên.
Tiếng lóng kỹ thuật (tech slang) xuất hiện nhiều trong hội thoại, chat nội bộ, issue tracker, commit message, ví dụ: “ship code”, “hotfix”, “tech debt”, “legacy code”, “bloat”, “flaky test”, “cowboy coding”. Đặc điểm:
- Ít khi có trong từ điển truyền thống; nghĩa phụ thuộc mạnh vào văn hóa team, công ty, cộng đồng.
- Thường mang sắc thái đánh giá (tích cực / tiêu cực), không trung tính như thuật ngữ chuẩn.
- Có thể thay đổi theo thời gian, trend, hoặc công nghệ mới.
Khi gặp tiếng lóng, nên:
- Tìm trên Stack Overflow, GitHub issue, blog kỹ thuật để xem cách dùng thực tế trong câu, không chỉ tra nghĩa đơn lẻ.
- Đọc nhiều ví dụ khác nhau để phân biệt sắc thái (ví dụ: legacy code không chỉ là “code cũ” mà còn hàm ý khó bảo trì, thiếu test, phụ thuộc công nghệ lỗi thời).
- Không cố dịch sát nghĩa; ưu tiên giải thích ý, ví dụ: “tech debt” → “nợ kỹ thuật (các vấn đề kỹ thuật tồn đọng do giải pháp tạm thời trước đây)”.
Cách xây dựng glossary CNTT cá nhân để học và làm việc hiệu quả
Glossary CNTT cá nhân là một “từ điển mini” do chính bạn xây dựng, tập trung vào những thuật ngữ liên quan trực tiếp đến công việc hoặc lĩnh vực đang học (backend, frontend, DevOps, data engineering, security…). Thay vì cố gắng nhớ hàng nghìn từ vựng rời rạc, glossary giúp tạo ngữ cảnh sâu cho từng thuật ngữ: nó nằm ở lớp nào trong kiến trúc, tương tác với thành phần nào, liên quan đến pattern hay anti-pattern nào. Nhờ đó, việc ghi nhớ trở nên gắn với trải nghiệm thực tế, không chỉ là học thuộc lòng.

Một glossary hiệu quả thường có cấu trúc tối thiểu như sau:
| Trường thông tin | Nội dung gợi ý |
| Thuật ngữ | Tên tiếng Anh, kèm từ viết tắt nếu có (ví dụ: Representational State Transfer (REST)) |
| Loại | Concept, protocol, pattern, tool, role, slang… |
| Định nghĩa ngắn | Một đến hai câu mô tả bản chất kỹ thuật, tránh dịch từng chữ |
| Ngữ cảnh sử dụng | Web backend, mobile, DevOps, data, security… |
| Ví dụ | Đoạn code, câu log, trích tài liệu, hoặc tình huống thực tế |
| Liên kết | Link đến documentation, RFC, bài blog chuyên sâu |
Khi xây dựng glossary, có thể áp dụng một số nguyên tắc thực hành tốt:
Một số kiểu “listing” hữu ích khi thiết kế glossary cá nhân:
- Listing theo lifecycle của request:
- client → DNS lookup → TCP/TLS handshake → HTTP request → load balancer → application server → database → cache → logging/monitoring.
- Mỗi bước gắn với một nhóm thuật ngữ riêng, giúp hiểu luồng end-to-end.
- Listing theo layer kiến trúc:
- Presentation layer: view, component, routing, state management.
- Application layer: service, use case, DTO, validation.
- Domain layer: entity, value object, aggregate, domain event.
- Infrastructure layer: repository, adapter, gateway, message broker.
- Listing theo non-functional requirements:
- Performance: latency, throughput, bottleneck, profiling, caching.
- Reliability: availability, failover, retry, circuit breaker, idempotency.
- Security: authentication, authorization, encryption, audit log.
Thuật ngữ CNTT nền tảng về máy tính và hệ điều hành
Hệ thuật ngữ CNTT nền tảng về máy tính và hệ điều hành bao quát từ lớp phần cứng đến phần mềm, giúp hình dung rõ “ngăn xếp” công nghệ. Ở lớp thấp nhất là phần cứng gồm CPU, RAM, GPU, mainboard, storage và peripheral; mỗi thành phần có chỉ số hiệu năng, giới hạn vật lý và vai trò riêng trong việc xử lý, lưu trữ và giao tiếp dữ liệu. Trên đó là lớp software với firmware, driver, hệ điều hành và ứng dụng, phối hợp để quản lý tài nguyên và cung cấp dịch vụ cho người dùng. Hệ điều hành tổ chức file system, process, thread, memory và permission, đồng thời hỗ trợ cài đặt, cập nhật, sao lưu và khắc phục lỗi, đảm bảo hệ thống vận hành ổn định, an toàn và tối ưu.

Phần cứng máy tính: CPU, RAM, GPU, mainboard, storage và peripheral
Trong từ điển chuyên ngành CNTT, nhóm thuật ngữ về phần cứng (hardware) là nền tảng để hiểu cách hệ thống vận hành ở mức điện tử – kiến trúc – hệ điều hành. Nắm rõ vai trò, cách đo hiệu năng và các giới hạn vật lý của từng thành phần giúp thiết kế, tối ưu và chẩn đoán lỗi hệ thống chính xác hơn.

CPU (Central Processing Unit): bộ xử lý trung tâm, thực thi lệnh của chương trình theo tập lệnh (instruction set) như x86-64, ARM. Một số khái niệm chuyên sâu:
- Core: lõi xử lý vật lý, mỗi core có pipeline, ALU, FPU riêng. Nhiều core cho phép xử lý song song nhiều luồng độc lập.
- Thread: luồng xử lý logic, thường đến từ công nghệ SMT / Hyper-Threading, cho phép một core xử lý xen kẽ nhiều luồng để tận dụng tài nguyên nhàn rỗi.
- Clock speed: tần số xung nhịp (GHz), biểu thị số chu kỳ xử lý mỗi giây. Hiệu năng thực tế còn phụ thuộc IPC (Instructions Per Cycle), kiến trúc vi xử lý, độ rộng pipeline, branch predictor.
- Cache: bộ nhớ đệm tốc độ rất cao đặt trong hoặc gần CPU, giảm độ trễ truy cập RAM. Gồm các mức:
- L1: nhỏ, cực nhanh, tách instruction/data.
- L2: lớn hơn L1, chậm hơn nhưng vẫn rất nhanh.
- L3: dung lượng lớn, thường chia sẻ giữa các core.
- Các thuật ngữ nâng cao: pipeline, out-of-order execution, branch prediction, TDP (Thermal Design Power) ảnh hưởng trực tiếp đến hiệu năng và tiêu thụ điện.
RAM (Random Access Memory): bộ nhớ truy cập ngẫu nhiên, lưu dữ liệu tạm thời khi chương trình đang chạy. RAM có độ trễ thấp hơn nhiều so với storage, nhưng là bộ nhớ volatile (mất dữ liệu khi tắt máy).
- Các chuẩn phổ biến: DDR3, DDR4, DDR5 với tốc độ (MHz/MT/s) và băng thông khác nhau.
- Thông số quan trọng: dung lượng, tốc độ, độ trễ (CAS latency), channel (single/dual/quad channel).
- Trong hệ điều hành, RAM được trừu tượng hóa thành virtual memory, kết hợp với paging, swapping để cho phép process “thấy” nhiều bộ nhớ hơn thực tế.
GPU (Graphics Processing Unit): bộ xử lý đồ họa, thiết kế với số lượng rất lớn core đơn giản để xử lý song song dữ liệu vector/matrix.
- Ban đầu tối ưu cho rendering 2D/3D, shader, rasterization.
- Ngày nay dùng rộng rãi trong GPGPU (General-Purpose computing on GPU), deep learning, HPC nhờ kiến trúc SIMD/SIMT.
- Các khái niệm: VRAM, CUDA core (NVIDIA), Stream processor (AMD), tensor core, ray tracing core.
- Hiệu năng phụ thuộc mạnh vào memory bandwidth giữa GPU và VRAM, cũng như băng thông PCIe nối GPU với CPU.
Mainboard (Motherboard): bo mạch chủ, là nền tảng kết nối và điều phối giao tiếp giữa CPU, RAM, storage và các thiết bị ngoại vi.
- Chứa socket CPU, chipset, slot RAM, PCIe slot, VRM (Voltage Regulator Module), cổng I/O.
- Form factor (ATX, mATX, ITX…) quyết định kích thước vật lý, số lượng khe cắm, khả năng mở rộng.
- Chipset và phiên bản BIOS/UEFI quyết định hỗ trợ loại CPU, số lane PCIe, số cổng SATA/NVMe.
Storage: thiết bị lưu trữ lâu dài, không mất dữ liệu khi tắt máy.
- HDD (Hard Disk Drive): dùng đĩa từ quay, có seek time và rotational latency cao, phù hợp lưu trữ dung lượng lớn, chi phí thấp.
- SSD (Solid State Drive): dùng chip flash NAND, độ trễ thấp, tốc độ đọc/ghi ngẫu nhiên cao, ít nhạy cảm với va đập.
- NVMe: giao thức truy cập SSD qua PCIe, bỏ qua giới hạn của SATA, cho throughput và IOPS rất cao.
- Các chỉ số kỹ thuật:
- Throughput: MB/s hoặc GB/s, tốc độ truyền dữ liệu tuần tự.
- IOPS: số lượng I/O operations per second, quan trọng với workload nhiều truy cập ngẫu nhiên.
- Latency: độ trễ mỗi lần truy cập, ảnh hưởng trực tiếp đến cảm nhận “nhanh/chậm” của hệ thống.
- Độ bền: TBW (Terabytes Written), DWPD (Drive Writes Per Day).
Peripheral: thiết bị ngoại vi, mở rộng khả năng tương tác và kết nối của hệ thống.
- Thiết bị nhập: keyboard, mouse, scanner, microphone.
- Thiết bị xuất: monitor, printer, speaker.
- Giao tiếp phổ biến: USB (2.0/3.x/4), HDMI, DisplayPort, Thunderbolt, Bluetooth, Wi-Fi.
- Nhiều peripheral yêu cầu driver chuyên dụng để OS nhận diện và khai thác đầy đủ tính năng.
Bảng thuật ngữ phần cứng cơ bản:
| Thuật ngữ | Giải thích ngắn | Ghi chú kỹ thuật |
| Clock speed | Tốc độ xung nhịp CPU (GHz) | Không phải lúc nào cao hơn cũng nhanh hơn, còn phụ thuộc kiến trúc |
| Core / Thread | Lõi vật lý / luồng xử lý logic | Liên quan đến khả năng xử lý đa nhiệm, multi-threading |
| Cache | Bộ nhớ đệm tốc độ cao trong CPU | Các mức L1, L2, L3 ảnh hưởng lớn đến hiệu năng |
| Form factor | Kích thước, chuẩn vật lý (ATX, mATX…) | Quan trọng khi chọn mainboard, case, PSU |
| Bandwidth | Băng thông truyền dữ liệu (RAM, PCIe…) | Ảnh hưởng đến tốc độ trao đổi giữa CPU, GPU, storage |
Phần mềm, firmware, driver và hệ điều hành
Nhóm thuật ngữ về software mô tả các lớp logic chạy trên phần cứng, tạo thành “ngăn xếp” (stack) từ mức rất thấp (firmware) đến mức tương tác trực tiếp với người dùng (application). Phân biệt rõ từng lớp giúp xử lý sự cố, tối ưu hiệu năng và đảm bảo bảo mật.

- Software (phần mềm): tập hợp mã lệnh và dữ liệu, chạy trên hệ điều hành. Gồm:
- Application software: ứng dụng phục vụ nhu cầu cụ thể (browser, IDE, office, media player).
- System software: phần mềm hệ thống hỗ trợ vận hành nền tảng (OS, utility, service, daemon).
- Firmware: phần mềm nhúng trong thiết bị phần cứng (router, SSD, BIOS/UEFI, controller). Chạy ở mức rất thấp, thường khởi động trước OS.
- Lưu trong ROM, EEPROM, flash.
- Cập nhật qua firmware update hoặc flash; lỗi cập nhật có thể làm thiết bị “brick”.
- Quy định hành vi cơ bản: khởi động, kiểm tra phần cứng (POST), quản lý power, mapping thiết bị.
- Driver (device driver): phần mềm trung gian cho phép OS giao tiếp với phần cứng cụ thể.
- Chạy ở kernel mode hoặc user mode tùy kiến trúc OS.
- Định nghĩa API/ABI để application truy cập thiết bị mà không cần biết chi tiết phần cứng.
- Driver lỗi hoặc không tương thích thường gây BSOD, kernel panic, crash.
- Operating System (OS): hệ điều hành như Windows, Linux, macOS, Android, iOS, là lớp nền tảng quản lý tài nguyên và cung cấp dịch vụ cho ứng dụng.
- Thành phần cốt lõi: kernel, device driver, file system, process manager, memory manager, network stack.
- Cung cấp system call để application yêu cầu tài nguyên (file, socket, process, thread).
- Thực thi cơ chế security: user, group, permission, sandboxing, isolation.
Bảng so sánh nhanh:
| Loại | Vị trí trong hệ thống | Ví dụ | Đặc điểm |
| Firmware | Giữa phần cứng và OS | BIOS/UEFI, firmware router | Cập nhật ít, lỗi có thể làm thiết bị không khởi động |
| Driver | Trong OS, gần kernel | GPU driver, printer driver | Ảnh hưởng trực tiếp đến ổn định và hiệu năng |
| Operating System | Lớp nền tảng | Windows, Linux, Android | Quản lý process, memory, file system, security |
| Application | Lớp trên cùng | Browser, IDE, office suite | Tương tác trực tiếp với người dùng hoặc hệ thống khác |
File system, process, thread, memory và quyền truy cập hệ thống
Trong hệ điều hành, các khái niệm file system, process, thread, memory management, permission tạo thành nền tảng để hiểu cách chương trình chạy, chia sẻ tài nguyên và bảo vệ dữ liệu.

File system: hệ thống tệp, quy định cách dữ liệu được tổ chức, đặt tên, phân quyền và lưu trữ trên storage.
- Ví dụ: NTFS, ext4, APFS, FAT32, mỗi loại có giới hạn về kích thước file, tính năng (journal, encryption, snapshot).
- Thuật ngữ:
- Directory: thư mục, chứa file và thư mục con.
- Path: đường dẫn đến file (absolute/relative).
- Inode (Unix-like): cấu trúc lưu metadata (owner, permission, timestamp, pointer đến block dữ liệu).
- Partition: phân vùng logic trên disk.
- Mount: gắn file system vào cây thư mục để truy cập.
Process: tiến trình, một chương trình đang chạy với không gian bộ nhớ riêng, tập tài nguyên riêng.
- Mỗi process có PID, trạng thái (running, waiting, zombie…), priority, handle đến file, socket.
- OS dùng scheduler để phân chia CPU time giữa các process, thực hiện context switch khi chuyển CPU từ process này sang process khác.
- Các cơ chế giao tiếp: IPC (Inter-Process Communication) như pipe, socket, shared memory, message queue.
Thread: luồng, đơn vị thực thi nhỏ hơn process, chia sẻ không gian địa chỉ và tài nguyên trong cùng process.
- Cho phép concurrency trong một process, tận dụng multi-core CPU.
- Cần synchronization (mutex, semaphore, lock, atomic operation) để tránh race condition.
- Lập trình đa luồng sai có thể gây deadlock, starvation, livelock.
Memory: bộ nhớ, gồm physical memory (RAM) và virtual memory.
- Stack: vùng bộ nhớ cho biến cục bộ, call frame; quản lý theo LIFO, tự động cấp phát/giải phóng.
- Heap: vùng bộ nhớ cấp phát động (malloc/new), cần giải phóng thủ công hoặc nhờ garbage collector.
- Paging: chia bộ nhớ thành page, mapping giữa virtual address và physical address qua page table.
- Swapping: chuyển page ít dùng ra disk (swap file/partition) để giải phóng RAM.
- Lỗi phổ biến: memory leak, buffer overflow, null pointer dereference.
Permission / Access control: quyền truy cập file, thư mục, tài nguyên hệ thống.
- Trên Unix-like: mô hình read/write/execute cho owner/group/others, biểu diễn bằng ký hiệu (rwx) hoặc số (chmod).
- Trên Windows: dùng ACL (Access Control List) với entry chi tiết cho từng user/group.
- Các cơ chế nâng cao: sudo, UAC, SELinux, AppArmor, sandbox, capability.
Bảng thuật ngữ quản lý tiến trình và bộ nhớ:
| Thuật ngữ | Ý nghĩa | Ngữ cảnh thường gặp |
| Context switch | Chuyển CPU từ process/thread này sang process/thread khác | Hiệu năng hệ điều hành, scheduling |
| Deadlock | Bế tắc do các process/threads chờ tài nguyên của nhau | Lập trình đa luồng, database locking |
| Race condition | Lỗi do thứ tự thực thi không xác định giữa các thread | Concurrency bug, cần synchronization |
| Memory leak | Bộ nhớ được cấp phát nhưng không giải phóng | Ứng dụng chạy lâu, service backend, game |
| Privilege escalation | Tăng quyền truy cập trái phép | Lỗ hổng bảo mật hệ điều hành, ứng dụng |
Cài đặt, cập nhật, sao lưu và khắc phục lỗi máy tính
Trong vận hành hệ thống, các thuật ngữ installation, update, backup, troubleshooting xuất hiện thường xuyên trong tài liệu kỹ thuật, quy trình vận hành (runbook) và giao tiếp nội bộ giữa đội vận hành, phát triển, bảo mật.

Install / Setup: cài đặt phần mềm hoặc hệ điều hành.
- Thường thông qua installer hoặc setup wizard với các bước: kiểm tra prerequisite, chọn thành phần, cấu hình ban đầu.
- Trên server, cài đặt có thể dùng package manager (apt, yum, pacman, choco) hoặc script tự động (Ansible, Chef, Puppet).
- Cấu hình (configuration) được lưu trong file, registry, database; cần quản lý version và backup.
Update / Upgrade / Patch:
- Update: cập nhật nhỏ, thường là bug fix, security fix, cải thiện nhỏ về hiệu năng hoặc tính năng.
- Upgrade: nâng cấp phiên bản lớn (major version), có thể thay đổi API, cấu trúc dữ liệu, yêu cầu migration.
- Patch: bản vá, có thể là file hoặc gói cập nhật, thường tập trung xử lý một hoặc vài lỗi cụ thể, đặc biệt là lỗ hổng bảo mật.
- Thực hành tốt:
- Kiểm thử trên môi trường staging trước khi áp dụng production.
- Kết hợp với backup hoặc snapshot để có khả năng rollback.
- Theo dõi changelog, release note, CVE liên quan.
Backup: sao lưu dữ liệu để phòng mất mát do lỗi phần cứng, phần mềm, tấn công hoặc lỗi người dùng.
- Các kiểu:
- Full backup: sao lưu toàn bộ dữ liệu.
- Incremental backup: chỉ sao lưu phần thay đổi kể từ lần backup gần nhất.
- Differential backup: sao lưu phần thay đổi kể từ lần full backup gần nhất.
- Thuật ngữ:
- Restore: khôi phục dữ liệu từ bản backup.
- Snapshot: ảnh chụp trạng thái hệ thống/tập dữ liệu tại một thời điểm, thường dùng trong VM, storage system.
- Retention policy: chính sách giữ lại bản backup trong bao lâu, bao nhiêu phiên bản.
- Chiến lược phổ biến: quy tắc 3-2-1 (3 bản, 2 loại media, 1 bản offsite).
Troubleshooting: khắc phục sự cố, tập trung vào việc xác định nguyên nhân gốc và đưa hệ thống về trạng thái ổn định.
- Các bước điển hình:
- Diagnose: thu thập triệu chứng, log, metric, tái hiện lỗi.
- Log analysis: phân tích log file, event viewer, syslog, application log.
- Root Cause Analysis (RCA): xác định nguyên nhân gốc, đề xuất biện pháp phòng ngừa tái diễn.
- Công cụ hỗ trợ: task manager, performance monitor, network analyzer, debugger, monitoring system.
Bảng các khái niệm quan trọng khi quản trị máy tính cá nhân và server:
| Thuật ngữ | Mô tả | Lưu ý thực hành |
| Rollback | Quay lại trạng thái trước khi cập nhật | Cần backup hoặc snapshot trước khi upgrade lớn |
| Recovery point | Thời điểm có thể khôi phục dữ liệu | Liên quan đến RPO (Recovery Point Objective) |
| Recovery time | Thời gian cần để khôi phục hệ thống | Liên quan đến RTO (Recovery Time Objective) |
| Log file | Tệp ghi lại sự kiện, lỗi, hoạt động hệ thống | Cần biết cách đọc log để debug và audit |
| Safe mode | Chế độ khởi động tối thiểu để sửa lỗi | Thường dùng khi driver hoặc service gây lỗi boot |
Từ vựng lập trình và phát triển phần mềm phổ biến
Các thuật ngữ lập trình phổ biến xoay quanh ba nhóm chính: ngôn ngữ và cấu trúc code, thuật toán – cấu trúc dữ liệu và quy trình phát triển, vận hành phần mềm. Ở lớp nền tảng, người học cần hiểu programming language, syntax, variable, function, class và object để đọc, viết và tổ chức mã nguồn một cách có hệ thống. Lên mức giải bài toán, algorithm, data structure, recursion và phân tích độ phức tạp (time/space complexity, Big-O) giúp thiết kế giải pháp đúng và hiệu quả. Trong bối cảnh dự án thực tế, khái niệm framework, library, package, dependency, runtime gắn với kiến trúc và môi trường chạy, trong khi debugging, exception, bug, patch và technical debt liên quan trực tiếp đến chất lượng, bảo trì và độ ổn định của hệ thống.

Programming language, syntax, variable, function, class và object
Trong lập trình, nhóm thuật ngữ về ngôn ngữ, cú pháp, cấu trúc chương trình là nền tảng để đọc hiểu tài liệu và code. Việc nắm rõ các khái niệm này giúp bạn hiểu được cách trình biên dịch (compiler) hoặc trình thông dịch (interpreter) xử lý mã nguồn, cũng như lý do vì sao một đoạn code chạy được hoặc báo lỗi.

- Programming language: ngôn ngữ lập trình như Python, Java, C++, JavaScript, Go, Rust. Có thể phân loại theo paradigm:
- Imperative / Procedural: mô tả cách thực hiện, gồm các bước tuần tự (C, Pascal).
- Object-oriented: xoay quanh class, object, trạng thái và hành vi (Java, C#, C++).
- Functional: nhấn mạnh hàm thuần (pure function), bất biến (immutability), hạn chế side effect (Haskell, Elixir, Scala).
- Multi-paradigm: hỗ trợ nhiều phong cách (Python, JavaScript, Kotlin).
Cũng có thể phân loại theo level: - Low-level: gần với máy, thao tác trực tiếp với bộ nhớ, thanh ghi (Assembly, C). - High-level: trừu tượng hóa nhiều chi tiết phần cứng, cú pháp gần ngôn ngữ tự nhiên hơn (Python, Ruby, Java).
- Syntax: cú pháp, tập hợp các quy tắc để viết code hợp lệ. Syntax quy định:
- Statement: câu lệnh hoàn chỉnh (if, for, return, assignment).
- Expression: biểu thức tạo ra giá trị (a + b, func(x), x > 0).
- Keyword: từ khóa dành riêng của ngôn ngữ (if, while, class, def, return).
- Operator: toán tử như
+, -, *, /, &&, ||, ==, ===.
Lỗi cú pháp (syntax error) xảy ra khi code vi phạm các quy tắc này, ví dụ thiếu dấu ;, thiếu dấu đóng ngoặc, dùng keyword sai vị trí.
- Variable: biến, vùng nhớ được đặt tên để lưu giá trị. Một số khái niệm chuyên sâu:
- Type: kiểu dữ liệu (int, float, string, boolean, struct, class). Có static typing (Java, C#) và dynamic typing (Python, JavaScript).
- Scope: phạm vi biến có thể được truy cập (block scope, function scope, global scope).
- Lifetime: thời gian tồn tại của biến trong bộ nhớ (local variable tồn tại trong stack frame của function, object trên heap tồn tại đến khi bị garbage collector thu hồi).
- Constant: giá trị không thay đổi sau khi gán (const, final, readonly).
- Mutable / Immutable: cho biết giá trị có thể thay đổi được hay không. Ví dụ: string trong Java là immutable, list trong Python là mutable.
- Function / Method: hàm / phương thức, khối code thực hiện một nhiệm vụ cụ thể.
- Parameter: tham số được định nghĩa trong khai báo hàm.
- Argument: đối số thực tế được truyền vào khi gọi hàm.
- Return value: giá trị hàm trả về cho caller.
- Pure function: không có side effect, cùng input luôn cho cùng output.
- Higher-order function: nhận hàm khác làm tham số hoặc trả về một hàm.
Trong OOP, method là function gắn với một class hoặc object, có thể truy cập state nội bộ (field, property).
- Class / Object: lớp / đối tượng trong lập trình hướng đối tượng (OOP).
- Class: mô tả cấu trúc (thuộc tính) và hành vi (method) chung.
- Object: instance cụ thể của class, có trạng thái riêng.
- Constructor: hàm khởi tạo object.
- Field / Property: dữ liệu được lưu trong object.
Các khái niệm cốt lõi: inheritance, encapsulation, polymorphism, abstraction là nền tảng để thiết kế hệ thống lớn, dễ mở rộng và bảo trì.
Bảng thuật ngữ OOP cơ bản:
| Thuật ngữ | Định nghĩa ngắn | Ví dụ ngữ cảnh |
| Class | Bản thiết kế cho object | class User { … } trong Java, C#, TypeScript |
| Object | Thể hiện cụ thể của class | const user = new User() |
| Inheritance | Kế thừa thuộc tính, hành vi từ class khác | class Admin extends User |
| Encapsulation | Đóng gói dữ liệu và hành vi, che giấu chi tiết | Dùng private, public, protected |
| Polymorphism | Đa hình, cùng interface nhưng hành vi khác nhau | Override method trong subclass |
Algorithm, data structure, recursion và độ phức tạp thuật toán
Thuật ngữ về thuật toán (algorithm) và cấu trúc dữ liệu (data structure) là trọng tâm trong phỏng vấn kỹ thuật, tối ưu hiệu năng và thiết kế hệ thống. Hiểu rõ mối quan hệ giữa chúng giúp bạn chọn giải pháp phù hợp cho từng bài toán cụ thể.

- Algorithm: tập hợp bước giải quyết một bài toán, thường được mô tả bằng pseudocode hoặc code thực tế.
- Sorting: sắp xếp (quick sort, merge sort, heap sort, bubble sort).
- Searching: tìm kiếm (linear search, binary search, BFS, DFS).
- Dynamic programming: chia bài toán thành các bài toán con chồng lấn, lưu kết quả trung gian để tránh tính lại.
- Greedy: chọn lựa tối ưu cục bộ tại mỗi bước với hy vọng đạt tối ưu toàn cục.
- Divide and conquer: chia bài toán thành các phần nhỏ độc lập, giải từng phần rồi kết hợp kết quả.
Một algorithm tốt không chỉ đúng mà còn phải hiệu quả về thời gian và bộ nhớ.
- Data structure: cách tổ chức và lưu trữ dữ liệu trong bộ nhớ để thao tác hiệu quả.
- Array: mảng, truy cập O(1) theo index, nhưng chèn/xóa giữa mảng thường O(n).
- Linked list: danh sách liên kết, chèn/xóa O(1) nếu đã có reference node, nhưng truy cập theo index là O(n).
- Stack: cấu trúc LIFO (Last In First Out), thao tác chính: push, pop, top.
- Queue: cấu trúc FIFO (First In First Out), thao tác chính: enqueue, dequeue.
- Hash table: ánh xạ key → value, truy cập trung bình O(1), phụ thuộc vào hash function và collision handling.
- Tree: cấu trúc phân cấp (binary tree, BST, AVL, B-tree), dùng nhiều trong database, file system.
- Graph: tập đỉnh (vertex) và cạnh (edge), biểu diễn mạng lưới (social network, routing, dependency graph).
Việc chọn data structure phù hợp có thể giảm độ phức tạp từ O(n²) xuống O(n log n) hoặc O(n).
- Recursion: đệ quy, kỹ thuật trong đó một hàm tự gọi lại chính nó với đầu vào nhỏ hơn hoặc đơn giản hơn.
- Cần có base case để dừng đệ quy.
- Thường dùng trong tree traversal, divide and conquer, backtracking.
- Có thể gây stack overflow nếu độ sâu đệ quy quá lớn hoặc không có điều kiện dừng đúng.
Nhiều thuật toán đệ quy có thể chuyển sang dạng lặp (iteration) để tối ưu stack usage.
- Time complexity / Space complexity: độ phức tạp thời gian / không gian, thường biểu diễn bằng Big-O notation.
- Time complexity: ước lượng số bước thực thi theo kích thước input n.
- Space complexity: ước lượng lượng bộ nhớ phụ trợ cần thêm (không tính input).
- Big-O mô tả upper bound trong trường hợp xấu nhất (worst-case) hoặc trung bình (average-case) tùy ngữ cảnh.
Các lớp độ phức tạp phổ biến: O(1), O(log n), O(n), O(n log n), O(n²) thường được dùng để so sánh và đánh giá thuật toán.
Bảng thuật ngữ độ phức tạp:
| Ký hiệu | Ý nghĩa | Ví dụ thuật toán |
| O(1) | Thời gian hằng số | Truy cập phần tử trong array theo index |
| O(log n) | Tăng chậm theo logarit | Binary search trên mảng đã sắp xếp |
| O(n) | Tuyến tính theo số phần tử | Duyệt toàn bộ mảng một lần |
| O(n log n) | Nhanh cho sắp xếp lớn | Merge sort, quicksort trung bình |
| O(n²) | Chậm khi n lớn | Bubble sort, selection sort |
Framework, library, package, dependency và runtime
Trong phát triển phần mềm hiện đại, việc hiểu rõ các thuật ngữ về framework, library, package, dependency, runtime là rất quan trọng để quản lý dự án, môi trường chạy và quy trình build/deploy.

- Library: thư viện, tập hợp hàm / class dùng lại được, bạn chủ động gọi khi cần.
- Thường giải quyết một nhóm vấn đề cụ thể: xử lý số liệu (NumPy), HTTP client, logging, parsing.
- Không áp đặt kiến trúc tổng thể của ứng dụng.
- Có thể thay thế tương đối dễ nếu API tương đương.
- Framework: khung làm việc, cung cấp cấu trúc và luồng điều khiển, code của bạn “cắm” vào framework.
- Áp dụng nguyên tắc Inversion of Control (IoC): thay vì bạn gọi framework, framework gọi code của bạn tại các hook, callback, controller.
- Định hình kiến trúc: MVC, layered architecture, dependency injection.
- Ví dụ: Spring Boot, Angular, Django, Ruby on Rails.
Việc chọn framework là quyết định kiến trúc quan trọng, ảnh hưởng lâu dài đến maintainability và khả năng mở rộng.
- Package / Module: đơn vị phân phối code (npm package, Python package, Maven artifact).
- Package manager: công cụ quản lý cài đặt, cập nhật, gỡ bỏ package (npm, pip, Maven, Gradle, Composer).
- Registry: kho lưu trữ package (npm registry, PyPI, Maven Central).
- Versioning: đánh số phiên bản (thường dùng Semantic Versioning: MAJOR.MINOR.PATCH).
Module giúp chia nhỏ code thành các đơn vị logic, dễ tái sử dụng và test độc lập.
- Dependency: phụ thuộc, các package hoặc library mà dự án cần.
- Dependency graph: đồ thị biểu diễn quan hệ phụ thuộc giữa các package.
- Transitive dependency: phụ thuộc gián tiếp, được kéo vào thông qua một dependency khác.
- Dependency hell: tình trạng xung đột phiên bản, vòng lặp phụ thuộc, khó nâng cấp.
Quản lý dependency tốt giúp giảm rủi ro bảo mật, tránh xung đột và giữ build ổn định.
- Runtime: môi trường thực thi, ví dụ: JVM, Node.js runtime, .NET runtime.
- Interpreter: thực thi code trực tiếp từng dòng (CPython cho Python, Ruby MRI).
- JIT compiler: biên dịch “just-in-time” từ bytecode sang mã máy khi chạy (JVM, .NET CLR, V8).
- Garbage collector: cơ chế tự động thu hồi bộ nhớ không còn được tham chiếu.
Hiểu runtime giúp tối ưu hiệu năng, quản lý memory, và debug các vấn đề liên quan đến môi trường chạy.
Bảng phân biệt framework và library:
| Tiêu chí | Library | Framework |
| Luồng điều khiển | Bạn gọi library | Framework gọi code của bạn |
| Ảnh hưởng kiến trúc | Ít, linh hoạt | Lớn, định hình cấu trúc dự án |
| Ví dụ | Lodash, NumPy, React (theo nghĩa UI library) | Spring Boot, Angular, Django, Ruby on Rails |
| Độ phụ thuộc | Có thể thay thế dễ hơn | Thay thế tốn kém, ảnh hưởng toàn hệ thống |
Debugging, exception, bug, patch và technical debt
Trong vòng đời phát triển phần mềm, các thuật ngữ về lỗi và sửa lỗi xuất hiện liên tục. Việc hiểu sâu các khái niệm này giúp xây dựng quy trình chất lượng, giảm rủi ro khi release và tối ưu chi phí bảo trì.

Bảng thuật ngữ liên quan đến chất lượng code:
| Thuật ngữ | Ý nghĩa | Tác động |
| Refactor | Cải thiện cấu trúc code mà không đổi hành vi | Giảm nợ kỹ thuật, dễ bảo trì |
| Code smell | Dấu hiệu code có vấn đề thiết kế | Cần refactor trước khi thành bug nghiêm trọng |
| Regression | Lỗi mới xuất hiện do thay đổi gần đây | Cần test hồi quy (regression test) |
| Root cause | Nguyên nhân gốc của lỗi | Phân tích RCA để tránh lặp lại |
| Workaround | Giải pháp tạm thời né lỗi | Thường tạo thêm nợ kỹ thuật nếu kéo dài |
Thuật ngữ phát triển web, ứng dụng di động và API
Các thuật ngữ phát triển web, ứng dụng di động và API xoay quanh việc phân tách rõ vai trò, tầng kiến trúc và cách các thành phần giao tiếp với nhau. Ở phía web, front-end tập trung vào UI/UX, back-end xử lý nghiệp vụ và dữ liệu, full-stack kết nối hai mảng này trong một kiến trúc tổng thể gồm client, server, database, cache, CDN. Kiến trúc có thể theo mô hình monolithic hoặc microservices, kết hợp SPA hay SSR để tối ưu hiệu năng và SEO. Giao tiếp giữa client và server dựa trên HTTP, thông qua API, endpoint, request/response và status code chuẩn. Với mobile, hệ sinh thái xoay quanh mobile app (native, hybrid, cross-platform), SDK, quy trình release, versioning và triển khai lên app store kèm bước review, rollout.

Front-end, Back-end, Full-stack và kiến trúc ứng dụng web
Trong phát triển web, các thuật ngữ front-end, back-end, full-stack mô tả phần nào của hệ thống mà lập trình viên phụ trách, nhưng ở mức chuyên sâu hơn chúng còn gắn với mô hình kiến trúc, quy trình triển khai và cách tổ chức team.

- Front-end: phần giao diện người dùng chạy trên browser, tập trung vào user experience (UX) và user interface (UI). Thường dùng HTML, CSS, JavaScript và các framework như React, Angular, Vue. Front-end hiện đại thường gắn với:
- SPA routing (client-side routing) với React Router, Vue Router.
- State management: Redux, MobX, Pinia, NgRx.
- Build toolchain: Webpack, Vite, esbuild, Babel.
- Performance: code splitting, lazy loading, tree-shaking, bundle optimization.
- Accessibility (a11y): ARIA attributes, keyboard navigation, screen reader support.
- Back-end: phần xử lý logic nghiệp vụ, truy cập database, tích hợp hệ thống bên ngoài, chạy trên server hoặc trong môi trường cloud/container. Công nghệ: Node.js, Java/Spring, .NET, Python/Django, PHP/Laravel, Go. Các khái niệm chuyên sâu:
- Business logic layer, data access layer, service layer.
- ORM/ODM: Hibernate, Entity Framework, Sequelize, Prisma, Mongoose.
- Authentication & Authorization: JWT, OAuth2, OpenID Connect, RBAC, ABAC.
- Scalability: horizontal scaling, vertical scaling, stateless service.
- Observability: logging, metrics, tracing (OpenTelemetry, Jaeger, Prometheus).
- Full-stack: làm cả front-end và back-end, hiểu kiến trúc tổng thể, thường tham gia từ thiết kế API đến triển khai UI. Full-stack engineer thường nắm:
- Thiết kế REST/GraphQL API và tích hợp trên front-end.
- Thiết lập CI/CD cơ bản (build, test, deploy).
- Quản lý database schema, migration, indexing.
- Hiểu về bảo mật end-to-end: HTTPS, CORS, CSRF, XSS, SQL Injection.
- Web architecture: kiến trúc ứng dụng web, gồm client, server, database, cache, load balancer, CDN, cùng với các pattern triển khai:
- Client: browser, mobile app, desktop app, IoT device.
- Application server: nơi chạy code back-end, có thể là container (Docker, Kubernetes).
- Database: SQL (MySQL, PostgreSQL) hoặc NoSQL (MongoDB, Redis, Cassandra).
- Cache: Redis, Memcached để giảm tải database, tăng tốc độ phản hồi.
- Load balancer: Nginx, HAProxy, ELB phân phối traffic giữa nhiều instance.
- CDN: phân phối nội dung tĩnh (image, CSS, JS) gần người dùng, giảm latency.
Bảng thuật ngữ kiến trúc web phổ biến:
| Mô hình | Mô tả | Ví dụ |
| Monolithic | Ứng dụng đơn khối, tất cả logic trong một codebase | Ứng dụng web truyền thống với MVC |
| Microservices | Chia thành nhiều service nhỏ, giao tiếp qua API | Hệ thống lớn, cần scale độc lập từng phần |
| SPA (Single Page Application) | Ứng dụng web tải một lần, cập nhật nội dung bằng JS | React SPA, Angular app |
| SSR (Server-Side Rendering) | Render HTML trên server, gửi về client | Next.js, Nuxt.js, ứng dụng SEO-friendly |
- Monolithic chuyên sâu:
- Cấu trúc thường theo pattern MVC, layered architecture.
- Ưu điểm: đơn giản để bắt đầu, dễ debug trong một codebase, deploy một lần.
- Nhược điểm: khó scale từng phần, deploy chậm, coupling cao giữa module.
- Microservices chuyên sâu:
- Mỗi service có database riêng hoặc schema riêng để giảm coupling.
- Giao tiếp qua HTTP/REST, gRPC, message broker (Kafka, RabbitMQ).
- Cần service discovery, API gateway, centralized logging.
- Đòi hỏi DevOps mạnh: containerization, orchestration (Kubernetes).
- SPA chuyên sâu:
- Render chủ yếu phía client, sử dụng virtual DOM hoặc change detection.
- Vấn đề: SEO, initial load time, cần tối ưu bundle và pre-render khi cần.
- Thường kết hợp với REST/GraphQL API để lấy dữ liệu động.
- SSR chuyên sâu:
- HTML được render trên server cho mỗi request, cải thiện Time to First Byte (TTFB) và SEO.
- Thường kết hợp hydration: client-side JS gắn event vào HTML đã render.
- Có thể dùng ISR (Incremental Static Regeneration) hoặc SSG (Static Site Generation) trong các framework hiện đại.
HTML, CSS, JavaScript, responsive design và UI component
Nhóm thuật ngữ front-end cơ bản là nền tảng để xây dựng giao diện hiện đại, tối ưu hiệu năng và dễ bảo trì.

- HTML (HyperText Markup Language): ngôn ngữ đánh dấu cấu trúc nội dung web. Thuật ngữ: tag, element, attribute, semantic HTML. Các khái niệm chuyên sâu:
- Semantic HTML: sử dụng thẻ như <header>, <nav>, <main>, <article>, <section>, <footer> để cải thiện SEO và accessibility.
- Form & validation: <form>, <input>, <select>, thuộc tính required, pattern, type.
- SEO meta: <title>, <meta name="description">, Open Graph, structured data (JSON-LD).
- CSS (Cascading Style Sheets): ngôn ngữ định kiểu, điều khiển giao diện. Thuật ngữ: selector, property, value, layout, flexbox, grid. Các khái niệm chuyên sâu:
- Specificity & cascade: cách trình duyệt quyết định rule nào được áp dụng.
- Layout: Flexbox cho layout 1 chiều, CSS Grid cho layout 2 chiều phức tạp.
- Responsive unit: %, vw, vh, rem, em, clamp().
- Preprocessor: SASS/SCSS, Less để tổ chức CSS theo module, biến, mixin.
- Utility-first CSS: Tailwind CSS, tập trung vào class nhỏ, tái sử dụng cao.
- JavaScript: ngôn ngữ lập trình chạy trên browser (và server với Node.js). Thuật ngữ: DOM, event, async/await, promise. Các khái niệm chuyên sâu:
- DOM manipulation: querySelector, addEventListener, classList.
- Event loop, call stack, task queue, microtask.
- Asynchronous programming: callback, Promise, async/await, fetch API.
- Module system: ES Modules (import/export), bundling.
- Type safety: TypeScript, static typing để giảm bug runtime.
- Responsive design: thiết kế giao diện thích ứng nhiều kích thước màn hình. Thuật ngữ: media query, breakpoint, mobile-first. Các thực hành:
- Mobile-first: thiết kế cho màn hình nhỏ trước, sau đó mở rộng cho màn hình lớn.
- Media query: @media (min-width: 768px) { ... } để thay đổi layout theo breakpoint.
- Fluid layout: sử dụng đơn vị tương đối, tránh fixed width cứng.
- Responsive image: srcset, sizes, picture để tối ưu hình ảnh cho từng thiết bị.
- UI component: thành phần giao diện tái sử dụng (button, modal, dropdown). Liên quan đến component-based architecture. Đặc điểm:
- Mỗi component có state, props, lifecycle (tùy framework).
- Có thể xây dựng design system hoặc component library (Storybook, Chakra UI, Material UI).
- Quan trọng: tách biệt presentational component và container component để dễ test và tái sử dụng.
Server, client, API, endpoint, request, response và HTTP status code
Trong giao tiếp web, các thuật ngữ về client-server model và HTTP là cốt lõi để hiểu cách dữ liệu di chuyển giữa các hệ thống.

- Client: phía gửi yêu cầu (browser, mobile app, service khác). Client thường:
- Quản lý session, token (JWT, cookie) để xác thực.
- Gửi request qua HTTP/HTTPS, đôi khi qua WebSocket cho real-time.
- Xử lý lỗi dựa trên status code và message trả về.
- Server: phía nhận yêu cầu, xử lý và trả kết quả. Server có thể là:
- Monolith hoặc nhiều microservice phía sau API gateway.
- Stateless (không lưu session trong memory) để dễ scale.
- Tích hợp với cache, database, message queue để xử lý nghiệp vụ phức tạp.
- API (Application Programming Interface): giao diện lập trình, thường là REST API, GraphQL API. Các khái niệm:
- REST: sử dụng HTTP method (GET, POST, PUT, DELETE), resource-based URL.
- GraphQL: client định nghĩa dữ liệu cần lấy, một endpoint duy nhất.
- Rate limiting, throttling: giới hạn số request để bảo vệ server.
- API versioning: v1, v2 trong URL hoặc header để tránh breaking change.
- Endpoint: URL cụ thể của API, ví dụ: /api/users, /api/orders/{id}. Endpoint tốt thường:
- Tuân thủ resource naming (danh từ số nhiều: /users, /orders).
- Hỗ trợ filter, pagination, sorting qua query string.
- Được bảo vệ bằng auth (Bearer token, API key).
- Request: yêu cầu từ client, gồm method (GET, POST, PUT, DELETE), header, body. Các thành phần:
- Headers: Authorization, Content-Type, Accept, User-Agent.
- Body: JSON, form-data, x-www-form-urlencoded, XML.
- Idempotency: một số method (GET, PUT, DELETE) nên không thay đổi kết quả khi gọi lặp lại.
- Response: phản hồi từ server, gồm status code, header, body. Thực hành:
- Trả về JSON schema nhất quán (data, error, meta).
- Sử dụng header cho caching (Cache-Control, ETag).
- Ẩn chi tiết nội bộ, chỉ trả message cần thiết cho client.
Bảng nhóm HTTP status code thường gặp:
| Mã | Nhóm | Ý nghĩa |
| 200 | 2xx – Success | OK – yêu cầu thành công |
| 201 | 2xx – Success | Created – tạo mới thành công |
| 400 | 4xx – Client error | Bad Request – yêu cầu sai định dạng |
| 401 | 4xx – Client error | Unauthorized – chưa xác thực |
| 403 | 4xx – Client error | Forbidden – không có quyền |
| 404 | 4xx – Client error | Not Found – không tìm thấy resource |
| 500 | 5xx – Server error | Internal Server Error – lỗi phía server |
| 503 | 5xx – Server error | Service Unavailable – dịch vụ tạm ngừng |
Mobile app, SDK, release, versioning và app store deployment
Trong phát triển ứng dụng di động, các thuật ngữ quan trọng gắn với vòng đời sản phẩm, từ coding, build, test đến phát hành trên store.

- Mobile app: ứng dụng chạy trên Android, iOS, có thể là native, hybrid, cross-platform. Phân loại chuyên sâu:
- Native: viết bằng ngôn ngữ chính thức (Kotlin/Java cho Android, Swift/Objective-C cho iOS), tối ưu hiệu năng, truy cập đầy đủ API hệ điều hành.
- Hybrid: dùng webview (Ionic, Cordova), code chủ yếu bằng HTML/CSS/JS, đóng gói thành app.
- Cross-platform: React Native, Flutter, Xamarin, chia sẻ phần lớn code giữa Android và iOS.
- SDK (Software Development Kit): bộ công cụ phát triển do nền tảng cung cấp (Android SDK, iOS SDK). SDK thường bao gồm:
- API để truy cập tính năng hệ thống (camera, GPS, notification).
- Tool build, emulator/simulator, debugger.
- Documentation, sample code, CLI tools.
- Release: phát hành phiên bản mới, liên quan đến build, signing, distribution. Các bước:
- Build: tạo binary (APK/AAB cho Android, IPA cho iOS) ở chế độ release.
- Code signing: dùng keystore (Android) hoặc certificate/provisioning profile (iOS) để ký app.
- Distribution: phân phối qua store (Google Play, App Store) hoặc kênh nội bộ (Enterprise, TestFlight, internal testing).
- Versioning: đánh số phiên bản, thường gồm major.minor.patch, ví dụ: 2.3.1. Ý nghĩa:
- Major: thay đổi lớn, có thể không tương thích ngược (breaking change).
- Minor: thêm tính năng mới nhưng vẫn tương thích.
- Patch: sửa bug, cải thiện nhỏ, không thay đổi API.
- Trên mobile còn có version code/build number để hệ thống phân biệt các bản build.
- App store deployment: đưa ứng dụng lên Google Play, App Store, gồm các bước review, approval, rollout. Quy trình:
- Tạo listing: tên app, mô tả, screenshot, icon, privacy policy.
- Upload binary, cấu hình permission, target API level, pricing, region.
- Quy trình review: store kiểm tra guideline, bảo mật, nội dung.
- Rollout: phát hành dần (staged rollout) để giảm rủi ro, theo dõi crash, rating, analytics.
Từ điển cơ sở dữ liệu, dữ liệu lớn và phân tích dữ liệu
Các khái niệm về database và hệ sinh thái dữ liệu tạo thành nền tảng cho mọi hệ thống thông tin hiện đại. Từ database, DBMS, bảng, record, field đến schema và query, chúng phối hợp để lưu trữ, truy xuất và bảo vệ dữ liệu một cách có tổ chức, đảm bảo toàn vẹn và hiệu năng. Trên đó, các khái niệm như SQL, database quan hệ, NoSQL và chuẩn hóa dữ liệu định hình cách thiết kế và tối ưu mô hình dữ liệu cho từng bài toán. Ở tầng phân tích, data warehouse, data lake, quy trình ETL và data pipeline cho phép tập trung, biến đổi và phân phối dữ liệu phục vụ báo cáo, BI và machine learning. Cuối cùng, dashboard, KPI, trực quan hóa và business intelligence biến dữ liệu thành insight hỗ trợ quyết định kinh doanh.

Database, DBMS, table, record, field, schema và query
Trong lĩnh vực dữ liệu, các thuật ngữ cơ bản không chỉ dừng ở mức khái niệm mà còn gắn với cách triển khai thực tế, tối ưu hiệu năng và đảm bảo toàn vẹn dữ liệu.

- Database: cơ sở dữ liệu là tập hợp có tổ chức của dữ liệu, được lưu trữ và quản lý có cấu trúc. Database có thể:
- Chạy trên một máy chủ đơn (on-premise) hoặc trên cloud (AWS RDS, Azure SQL, Cloud SQL…)
- Hỗ trợ nhiều mô hình: quan hệ (relational), tài liệu (document), đồ thị (graph)…
- Đảm bảo các thuộc tính ACID (Atomicity, Consistency, Isolation, Durability) trong database giao dịch truyền thống.
- DBMS (Database Management System): hệ quản trị CSDL là phần mềm trung gian cho phép:
- Định nghĩa schema, tạo/sửa/xóa bảng, chỉ mục, view, stored procedure
- Quản lý truy cập đồng thời, khóa (locking), transaction, backup & restore
- Quản lý phân quyền (user, role, grant, revoke)
Các DBMS phổ biến: MySQL, PostgreSQL, SQL Server, Oracle, mỗi hệ có cơ chế tối ưu query, kiểu dữ liệu, và công cụ quản trị riêng.
- Table: bảng là cấu trúc lưu trữ chính trong database quan hệ, gồm nhiều record (row) và field (column).
- Mỗi row biểu diễn một thực thể hoặc một sự kiện (ví dụ: một khách hàng, một đơn hàng).
- Mỗi column biểu diễn một thuộc tính với kiểu dữ liệu cụ thể (INT, VARCHAR, DATE, JSON…).
- Bảng có thể có ràng buộc (constraint) để kiểm soát dữ liệu hợp lệ.
- Record (row): một bản ghi là một dòng dữ liệu đầy đủ trong bảng.
- Thường được định danh duy nhất bằng primary key.
- Là đơn vị nhỏ nhất được thao tác trong các câu lệnh INSERT, UPDATE, DELETE.
- Field (column): cột là một thuộc tính của thực thể, có:
- Tên cột (column name)
- Kiểu dữ liệu (data type)
- Ràng buộc (NOT NULL, DEFAULT, CHECK…)
- Schema: lược đồ mô tả cấu trúc database:
- Danh sách bảng, cột, kiểu dữ liệu, khóa, index, view, function
- Các mối quan hệ giữa bảng (1-1, 1-n, n-n)
- Trong một DBMS, schema còn là “không gian tên” (namespace) để nhóm các đối tượng.
Thiết kế schema tốt giúp tối ưu truy vấn, dễ mở rộng, giảm rủi ro sai lệch dữ liệu.
- Query: truy vấn là câu lệnh để lấy hoặc thao tác dữ liệu.
- Truy vấn đọc: SELECT với các mệnh đề WHERE, GROUP BY, HAVING, ORDER BY, JOIN…
- Truy vấn ghi: INSERT, UPDATE, DELETE, MERGE
- Truy vấn định nghĩa dữ liệu: CREATE, ALTER, DROP (DDL)
Hiệu năng query phụ thuộc vào thiết kế schema, index, kích thước dữ liệu và optimizer của DBMS.
Bảng thuật ngữ cấu trúc dữ liệu quan hệ:
| Thuật ngữ | Định nghĩa | Ví dụ |
| Primary key | Khóa chính, định danh duy nhất mỗi record | userid trong bảng users |
| Foreign key | Khóa ngoại, tham chiếu đến khóa chính bảng khác | userid trong bảng orders |
| Index | Cấu trúc tăng tốc truy vấn | Index trên cột email để tìm nhanh |
| Constraint | Ràng buộc dữ liệu (NOT NULL, UNIQUE…) | Không cho phép email trùng lặp |
- Primary key thường được cài đặt bằng:
- Giá trị tăng tự động (AUTOINCREMENT, SERIAL, IDENTITY)
- UUID cho hệ phân tán, tránh va chạm giữa nhiều node
Primary key thường được index mặc định, giúp truy vấn theo khóa rất nhanh.
- Foreign key đảm bảo referential integrity:
- Không cho phép chèn bản ghi con nếu không tồn tại bản ghi cha tương ứng.
- Hỗ trợ hành vi ON DELETE CASCADE, ON UPDATE CASCADE để đồng bộ dữ liệu.
- Index có nhiều loại:
- B-tree index: phổ biến cho truy vấn range, equality
- Hash index: tối ưu cho truy vấn equality
- Composite index: index trên nhiều cột, quan trọng cho các query phức tạp
Index giúp tăng tốc SELECT nhưng làm chậm INSERT/UPDATE/DELETE do phải cập nhật thêm cấu trúc index.
- Constraint giúp dữ liệu “tự bảo vệ”:
- NOT NULL: bắt buộc có giá trị
- UNIQUE: không trùng lặp trong toàn bảng hoặc trong một nhóm cột
- CHECK: ràng buộc logic (ví dụ: age >= 18)
SQL, NoSQL, relational database và data normalization
Các thuật ngữ quan trọng trong thiết kế và vận hành hệ thống dữ liệu hiện đại.
- SQL (Structured Query Language):
- Là ngôn ngữ chuẩn để tương tác với database quan hệ.
- Chia thành:
- DDL (Data Definition Language): CREATE, ALTER, DROP
- DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE
- DCL (Data Control Language): GRANT, REVOKE
- TCL (Transaction Control Language): COMMIT, ROLLBACK, SAVEPOINT
- Các hệ quản trị khác nhau có dialect SQL riêng (T-SQL, PL/pgSQL, PL/SQL…).

- Relational database:
- Dựa trên mô hình quan hệ của Codd, dữ liệu được tổ chức thành bảng và quan hệ giữa các bảng.
- Hỗ trợ join phức tạp, transaction mạnh, đảm bảo ACID.
- Phù hợp cho hệ thống nghiệp vụ (OLTP), nơi tính nhất quán và toàn vẹn dữ liệu rất quan trọng.
- NoSQL:
- Là nhóm CSDL phi quan hệ, thiết kế để:
- Chịu tải lớn, phân tán, dễ mở rộng theo chiều ngang (horizontal scaling)
- Linh hoạt về schema, phù hợp dữ liệu thay đổi nhanh
- Các loại chính:
- Document store (MongoDB, Couchbase): lưu tài liệu JSON/BSON, schema linh hoạt.
- Key-value store (Redis, DynamoDB): lưu cặp key–value, truy cập cực nhanh.
- Column family (Cassandra, HBase): tối ưu cho ghi/đọc theo cột, dữ liệu phân tán.
- Graph database (Neo4j): tối ưu cho dữ liệu quan hệ phức tạp dạng đồ thị.
- Thường ưu tiên availability và partition tolerance theo CAP theorem, chấp nhận eventual consistency.
- Normalization (chuẩn hóa dữ liệu):
- Mục tiêu:
- Giảm trùng lặp dữ liệu (redundancy)
- Tránh anomaly khi INSERT/UPDATE/DELETE
- Cải thiện tính nhất quán và dễ bảo trì schema
- Các dạng chuẩn phổ biến:
- 1NF: mỗi ô chỉ chứa một giá trị nguyên tử, không lặp nhóm cột.
- 2NF: 1NF + mọi thuộc tính không khóa phụ thuộc toàn bộ vào khóa chính (áp dụng cho khóa tổng hợp).
- 3NF: 2NF + không có phụ thuộc bắc cầu giữa các thuộc tính không khóa.
- BCNF: dạng mạnh hơn 3NF, mọi phụ thuộc hàm đều có vế trái là super key.
- Trong hệ thống phân tích (OLAP), đôi khi cố ý denormalize để tối ưu tốc độ đọc, chấp nhận trùng lặp.
Data warehouse, data lake, ETL và data pipeline
Trong dữ liệu lớn và phân tích, kiến trúc lưu trữ và luồng xử lý dữ liệu quyết định khả năng khai thác thông tin.

- Data warehouse:
- Là kho dữ liệu tập trung, tích hợp dữ liệu từ nhiều hệ thống nguồn (ERP, CRM, ứng dụng web…).
- Tối ưu cho truy vấn phân tích (OLAP), hỗ trợ:
- Phân tích đa chiều (slice, dice, drill-down, roll-up)
- Báo cáo định kỳ, dashboard, BI
- Thường dùng schema dạng star hoặc snowflake:
- Star schema: bảng fact ở trung tâm, xung quanh là các bảng dimension, cấu trúc đơn giản, query nhanh.
- Snowflake schema: dimension được chuẩn hóa thêm, giảm trùng lặp nhưng query phức tạp hơn.
- Data warehouse hiện đại có thể chạy trên cloud (BigQuery, Snowflake, Redshift) với khả năng tách compute và storage.
- Data lake:
- Là “hồ dữ liệu” lưu trữ dữ liệu thô ở nhiều định dạng:
- Structured: bảng CSV, Parquet, ORC…
- Semi-structured: JSON, XML, log
- Unstructured: hình ảnh, video, audio, tài liệu văn bản
- Áp dụng schema-on-read: chỉ áp schema khi đọc, giúp linh hoạt cho các use case mới.
- Phù hợp cho:
- Machine learning, data science, khám phá dữ liệu (exploratory analysis)
- Lưu trữ lâu dài với chi phí thấp (object storage như S3, GCS, ADLS)
- ETL (Extract, Transform, Load):
- Quy trình kinh điển để đưa dữ liệu vào data warehouse:
- Extract: trích xuất dữ liệu từ nguồn (database giao dịch, API, file log…)
- Transform: làm sạch, chuẩn hóa, join, tính toán chỉ số, đổi kiểu dữ liệu
- Load: nạp vào warehouse (theo batch, incremental, hoặc near real-time)
- Có biến thể ELT (Extract–Load–Transform) khi tận dụng sức mạnh xử lý của data warehouse để transform sau khi load.
- Các công cụ ETL/ELT: Informatica, Talend, dbt, SSIS, Airbyte…
- Data pipeline:
- Là chuỗi bước xử lý dữ liệu tự động, từ nguồn đến đích:
- Ingest dữ liệu (batch hoặc streaming)
- Validate, transform, enrich
- Lưu trữ vào data lake, data warehouse, hoặc hệ thống downstream
- Được điều phối bởi các công cụ orchestration (Airflow, Dagster, Prefect…), có:
- Lịch chạy (scheduling)
- Quản lý phụ thuộc giữa các task
- Giám sát, retry, alert khi lỗi
- Pipeline tốt cần đảm bảo data quality, data lineage và khả năng mở rộng.
Bảng so sánh data warehouse và data lake:
| Tiêu chí | Data warehouse | Data lake |
| Cấu trúc | Có schema rõ ràng | Có thể schema-on-read |
| Mục đích | Báo cáo, BI, phân tích | Lưu trữ dữ liệu thô, ML, khám phá |
| Loại dữ liệu | Chủ yếu structured | Structured, semi-structured, unstructured |
Dashboard, KPI, data visualization và business intelligence
Trong phân tích dữ liệu và BI, lớp trình bày và ngữ cảnh kinh doanh quyết định dữ liệu có thực sự tạo ra giá trị hay không.

- Dashboard:
- Là bảng điều khiển hiển thị các chỉ số quan trọng theo thời gian gần thực (near real-time) hoặc theo kỳ.
- Thường gồm:
- Biểu đồ (line, bar, area, pie, funnel…)
- Card số liệu (metric card) cho các chỉ số chính
- Filter, slicer để người dùng tự khám phá dữ liệu
- Dashboard tốt cần:
- Tập trung vào actionable insight, tránh quá nhiều chi tiết gây nhiễu
- Thiết kế trực quan, nhất quán về màu sắc, đơn vị đo, thời gian
- KPI (Key Performance Indicator):
- Là chỉ số hiệu suất then chốt, gắn trực tiếp với mục tiêu kinh doanh.
- Ví dụ:
- Doanh thu hàng tháng (MRR, ARR)
- Tỷ lệ chuyển đổi (conversion rate)
- Churn rate, retention rate
- KPI cần:
- Được định nghĩa rõ ràng (công thức, nguồn dữ liệu, kỳ đo)
- Có mục tiêu (target) và ngưỡng cảnh báo (threshold)
- Data visualization:
- Là trực quan hóa dữ liệu bằng biểu đồ, đồ thị, bản đồ, heatmap… để:
- Nhận diện xu hướng, mùa vụ, outlier
- So sánh nhóm, phân phối, tương quan
- Lựa chọn biểu đồ phù hợp:
- Time series: line chart, area chart
- So sánh nhóm: bar chart, stacked bar
- Phân phối: histogram, boxplot
- Tương quan: scatter plot
- Cần chú ý:
- Trục, đơn vị, tỷ lệ (scale) để tránh gây hiểu nhầm
- Màu sắc, chú giải (legend), nhãn (label) rõ ràng
- Business Intelligence (BI):
- Là tập hợp công cụ, quy trình và phương pháp biến dữ liệu thô thành thông tin hỗ trợ quyết định.
- Thành phần:
- Data warehouse / data mart
- Công cụ ETL/ELT và data pipeline
- Công cụ BI (Power BI, Tableau, Looker, Superset…)
- BI hiện đại hướng tới:
- Self-service BI: người dùng nghiệp vụ tự tạo report, dashboard
- Data governance: định nghĩa metric chuẩn, phân quyền truy cập, catalog dữ liệu
Ví dụ một truy vấn SQL đơn giản trong bối cảnh BI:SELECT d.date, p.category, SUM(f.revenue) AS totalrevenueFROM factsales fJOIN dimdate d ON f.datekey = d.datekeyJOIN dimproduct p ON f.productkey = p.product_keyWHERE d.date BETWEEN '2024-01-01' AND '2024-01-31'GROUP BY d.date, p.categoryORDER BY d.date, p.category;
Thuật ngữ trí tuệ nhân tạo, Machine Learning và Generative AI
Các thuật ngữ về AI, Machine Learning, Deep Learning và neural network tạo thành một hệ thống phân cấp, trong đó AI là khái niệm rộng nhất, bao trùm mọi phương pháp giúp máy móc thể hiện hành vi “thông minh”. Bên trong AI, Machine Learning tập trung vào việc cho phép hệ thống học từ dữ liệu, còn Deep Learning là nhánh con dùng mạng nơ-ron nhiều lớp để tự động trích xuất đặc trưng và xử lý bài toán phức tạp ở quy mô lớn. Neural network là cấu trúc cốt lõi của Deep Learning, gồm các tầng, neuron, trọng số và hàm kích hoạt, được tối ưu thông qua quá trình lan truyền ngược. Hiểu rõ mối quan hệ phân cấp này giúp định vị đúng vai trò từng công nghệ trong thiết kế giải pháp AI.

Artificial Intelligence, Machine Learning, Deep Learning và neural network
Nhóm thuật ngữ cốt lõi trong lĩnh vực trí tuệ nhân tạo tạo thành một hệ thống phân cấp khái niệm, từ rộng đến hẹp, giúp định vị đúng vai trò của từng công nghệ:
- Artificial Intelligence (AI): trí tuệ nhân tạo, là lĩnh vực nghiên cứu và xây dựng các hệ thống có khả năng thực hiện những nhiệm vụ vốn cần đến trí thông minh của con người, như:
- Nhận thức (perception): nhận diện hình ảnh, giọng nói, chữ viết.
- Lý luận (reasoning): suy luận logic, giải bài toán, lập kế hoạch.
- Ra quyết định (decision-making): chọn hành động tối ưu trong môi trường không chắc chắn.
- Học hỏi (learning): cải thiện hiệu suất theo thời gian dựa trên dữ liệu hoặc trải nghiệm.
AI bao gồm nhiều hướng tiếp cận: symbolic AI (dựa trên luật, logic), machine learning, hệ chuyên gia, lập kế hoạch tự động, xử lý ngôn ngữ tự nhiên, robot thông minh,… Machine Learning chỉ là một nhánh (subfield) trong toàn bộ bức tranh AI.

- Machine Learning (ML): học máy, là nhánh của AI tập trung vào việc phát triển các thuật toán và mô hình cho phép hệ thống:
- Học từ dữ liệu thay vì được lập trình cứng từng quy tắc.
- Khái quát hóa (generalize) sang dữ liệu mới chưa từng thấy.
- Cải thiện hiệu suất khi có thêm dữ liệu hoặc phản hồi.
Các nhóm bài toán chính trong ML:
- Supervised learning: có nhãn (label), ví dụ phân loại email spam/không spam, dự đoán giá nhà.
- Unsupervised learning: không có nhãn, ví dụ phân cụm khách hàng, phát hiện bất thường.
- Semi-supervised learning: kết hợp dữ liệu có nhãn và không nhãn.
- Reinforcement learning: học thông qua tương tác với môi trường và nhận thưởng/phạt.
- Deep Learning: học sâu, là một nhánh con của Machine Learning sử dụng các neural network nhiều lớp (deep neural networks). Đặc trưng:
- Có nhiều tầng ẩn (hidden layers), cho phép mô hình hóa các quan hệ phi tuyến phức tạp.
- Tự động trích xuất đặc trưng (feature learning) từ dữ liệu thô như ảnh, âm thanh, văn bản.
- Rất hiệu quả với dữ liệu lớn (big data) và tài nguyên tính toán mạnh (GPU, TPU).
Các kiến trúc deep learning phổ biến:
- CNN (Convolutional Neural Network): xử lý ảnh, video, dữ liệu dạng lưới.
- RNN, LSTM, GRU: xử lý chuỗi thời gian, ngôn ngữ, tín hiệu.
- Transformer: nền tảng của các Large Language Model hiện đại.
- Neural network: mạng nơ-ron nhân tạo, là cấu trúc tính toán lấy cảm hứng từ não bộ sinh học, gồm:
- Layer: các tầng (input layer, hidden layers, output layer).
- Neuron: đơn vị tính toán cơ bản, nhận input, nhân với trọng số, cộng bias, rồi qua hàm kích hoạt.
- Weight: trọng số, tham số có thể học được, quyết định mức độ ảnh hưởng của từng input.
- Activation function: hàm kích hoạt (ReLU, Sigmoid, Tanh, Softmax, …) tạo tính phi tuyến, giúp mô hình hóa quan hệ phức tạp.
Quá trình học của neural network thường dùng backpropagation kết hợp với các thuật toán tối ưu như SGD, Adam để cập nhật trọng số sao cho hàm mất mát (loss function) được tối thiểu hóa.
Dataset, training data, model, feature, label và inference
Các thuật ngữ trong quy trình huấn luyện mô hình học máy mô tả toàn bộ vòng đời dữ liệu và mô hình, từ chuẩn bị đến triển khai:
- Dataset: tập dữ liệu, là tập hợp có cấu trúc (hoặc bán cấu trúc) các mẫu dữ liệu (samples, instances). Thông thường được chia thành:
- Training set: dùng để huấn luyện mô hình, điều chỉnh trọng số.
- Validation set: dùng để tinh chỉnh siêu tham số (hyperparameters), chọn mô hình tốt nhất, tránh overfitting.
- Test set: dùng để đánh giá cuối cùng, mô phỏng hiệu suất trên dữ liệu hoàn toàn mới.
Chất lượng dataset (độ sạch, cân bằng lớp, đa dạng, không rò rỉ dữ liệu) ảnh hưởng trực tiếp đến hiệu suất và độ tin cậy của mô hình.

- Training data: dữ liệu dùng để huấn luyện mô hình, thường là phần training set của dataset. Đặc điểm:
- Trong supervised learning, mỗi mẫu gồm feature và label.
- Trong unsupervised learning, chỉ có feature, không có label.
- Trong reinforcement learning, dữ liệu là các trải nghiệm (state, action, reward, next state).
Quá trình huấn luyện lặp lại nhiều epoch trên training data để mô hình dần học được cấu trúc và quy luật trong dữ liệu.
- Model: mô hình học máy, là hàm ánh xạ từ input sang output, được tham số hóa bởi một tập tham số (parameters). Một số khía cạnh chuyên môn:
- Kiến trúc (architecture): dạng mô hình (linear, tree-based, neural network, transformer,…).
- Parameters: trọng số được học trong quá trình training.
- Hyperparameters: tham số do người thiết kế chọn (learning rate, số layer, số neuron,…).
Mục tiêu của training là tìm bộ parameters tối ưu để mô hình có khả năng tổng quát tốt trên dữ liệu chưa từng thấy.
- Feature: đặc trưng, là các biến đầu vào mô tả dữ liệu. Trong thực tế:
- Có thể là số (numeric), phân loại (categorical), văn bản, ảnh, tín hiệu,…
- Cần qua bước feature engineering: chọn lọc, biến đổi, chuẩn hóa, mã hóa (encoding) để phù hợp với mô hình.
- Trong deep learning, nhiều bước trích xuất feature được mô hình tự động học từ dữ liệu thô.
Chất lượng feature thường quan trọng không kém, thậm chí quan trọng hơn việc chọn thuật toán.
- Label: nhãn, là giá trị mục tiêu trong supervised learning:
- Trong phân loại: label là lớp (class) như “spam”/“not spam”.
- Trong hồi quy: label là giá trị liên tục như giá nhà, nhiệt độ.
- Trong bài toán đa nhãn (multi-label): một mẫu có thể có nhiều label.
Độ chính xác và nhất quán của label (data labeling quality) là yếu tố then chốt, đặc biệt trong các ứng dụng nhạy cảm như y tế, tài chính.
- Inference: suy luận, là giai đoạn sử dụng mô hình đã huấn luyện để dự đoán trên dữ liệu mới:
- Không cập nhật trọng số (trừ các cơ chế đặc biệt như online learning).
- Yêu cầu tối ưu về độ trễ (latency), thông lượng (throughput) và chi phí tính toán.
- Trong hệ thống sản xuất, inference thường được triển khai qua API, dịch vụ microservice, hoặc nhúng vào ứng dụng.
Đối với Generative AI, inference không chỉ là dự đoán một nhãn mà là sinh ra chuỗi token (văn bản, mã, hình ảnh) theo phân phối xác suất mà mô hình đã học.
Accuracy, precision, recall, overfitting và model evaluation
Trong đánh giá mô hình, các metric và kỹ thuật đánh giá giúp hiểu rõ hiệu suất, điểm mạnh và điểm yếu của mô hình trên các khía cạnh khác nhau:

- Precision: độ chính xác dương tính, đo lường trong số các dự đoán dương tính, bao nhiêu là đúng:
- Precision = TP / (TP + FP).
- Cao khi mô hình ít báo động giả (false alarm).
Precision quan trọng trong các bài toán mà sai dương tính (FP) gây tốn kém, ví dụ: đánh dấu email hợp lệ là spam, khóa nhầm tài khoản người dùng.
- Recall: độ bao phủ dương tính, đo lường trong số các mẫu thực sự dương tính, mô hình bắt được bao nhiêu:
- Recall = TP / (TP + FN).
- Cao khi mô hình bỏ sót ít trường hợp dương tính.
Recall quan trọng trong các bài toán mà bỏ sót (FN) là rất nguy hiểm, ví dụ: phát hiện ung thư, phát hiện gian lận, cảnh báo an ninh.
- Overfitting: quá khớp, xảy ra khi mô hình:
- Học quá chi tiết, thậm chí học cả nhiễu (noise) trong training data.
- Có performance rất tốt trên training set nhưng kém trên validation/test set.
- Thường gặp ở mô hình quá phức tạp so với lượng dữ liệu hoặc regularization yếu.
Các kỹ thuật giảm overfitting: regularization (L1/L2), dropout, early stopping, data augmentation, đơn giản hóa mô hình, tăng dữ liệu.
- Model evaluation: đánh giá mô hình bằng các metric và kỹ thuật:
- Sử dụng nhiều metric: accuracy, precision, recall, F1-score, ROC-AUC, log-loss,… tùy bài toán.
- Phân tích confusion matrix để hiểu chi tiết loại lỗi mô hình hay mắc.
- Dùng cross-validation (k-fold, stratified k-fold) để:
- Ước lượng hiệu suất ổn định hơn trên nhiều phân chia dữ liệu.
- Giảm phụ thuộc vào một lần chia train/test duy nhất.
Trong môi trường sản xuất, model evaluation còn bao gồm theo dõi drift dữ liệu, kiểm tra fairness, robustness và đánh giá định tính (human evaluation) với các mô hình Generative AI.
Large Language Model, prompt, token, RAG và AI agent
Trong Generative AI hiện đại, các thuật ngữ sau mô tả cách mô hình ngôn ngữ lớn hoạt động, tương tác với người dùng và tích hợp vào hệ thống:

- Prompt: đầu vào văn bản hướng dẫn mô hình, đóng vai trò như “ngữ cảnh” và “hướng dẫn nhiệm vụ”:
- Có thể bao gồm: mô tả nhiệm vụ, ví dụ (few-shot), ràng buộc định dạng, vai trò.
- Chất lượng prompt ảnh hưởng mạnh đến chất lượng output (prompt engineering).
- Các kỹ thuật: chain-of-thought, self-consistency, structured prompting,…
Trong nhiều ứng dụng, prompt được xây dựng động từ dữ liệu người dùng, kết quả truy xuất (RAG) và trạng thái hệ thống.
- Token: đơn vị nhỏ của văn bản (từ, subword, ký tự) mà mô hình xử lý:
- Văn bản được mã hóa thành chuỗi token thông qua tokenizer (BPE, WordPiece,…).
- Chiều dài ngữ cảnh (context length) của LLM được đo bằng số token tối đa.
- Chi phí inference thường tỷ lệ với số token input + output.
Thiết kế tokenizer ảnh hưởng đến hiệu quả biểu diễn ngôn ngữ, đặc biệt với ngôn ngữ đa dạng, nhiều dấu, nhiều từ ghép.
- RAG (Retrieval-Augmented Generation): kỹ thuật kết hợp truy xuất tài liệu với sinh văn bản:
- Bước 1: truy xuất (retrieval) các tài liệu liên quan từ kho tri thức (database, vector store, search index).
- Bước 2: đưa tài liệu truy xuất vào prompt để LLM sinh câu trả lời dựa trên ngữ cảnh đó.
- Giúp mô hình:
- Cập nhật kiến thức mà không cần huấn luyện lại toàn bộ.
- Giảm “ảo tưởng” (hallucination) bằng cách bám sát nguồn dữ liệu.
- Hỗ trợ truy vết nguồn (source grounding) cho câu trả lời.
RAG đặc biệt hữu ích trong các hệ thống hỏi đáp nội bộ doanh nghiệp, trợ lý tài liệu, tìm kiếm ngữ nghĩa.
- AI agent: tác nhân AI có khả năng lập kế hoạch, gọi công cụ, tương tác nhiều bước để hoàn thành nhiệm vụ phức tạp:
- Sử dụng LLM làm “bộ não” để hiểu mục tiêu, phân rã nhiệm vụ, ra quyết định bước tiếp theo.
- Có thể gọi các tools như API, cơ sở dữ liệu, trình duyệt web, hệ thống nội bộ.
- Duy trì trạng thái (memory) qua nhiều vòng tương tác để theo dõi tiến độ và bối cảnh.
AI agent là bước tiến từ mô hình “hỏi–đáp một lượt” sang hệ thống có hành vi gần với trợ lý tự động, có khả năng tự chủ một phần trong việc đạt được mục tiêu được giao.
Từ vựng mạng máy tính, cloud và quản trị hệ thống
Từ vựng về mạng máy tính, cloud và quản trị hệ thống bao quát chuỗi khái niệm từ tầng hạ tầng vật lý đến lớp ứng dụng. Ở lớp mạng, các thành phần như network, IP address, DNS, router, switch, firewall, VPN phối hợp để đảm bảo kết nối, phân giải tên, định tuyến và bảo mật lưu lượng. Trên lớp tính toán, server, virtual machine, container, Kubernetes và kiến trúc microservices giúp triển khai ứng dụng linh hoạt, dễ mở rộng và tự động hóa. Trong môi trường cloud, các mô hình IaaS, PaaS, SaaS cùng cloud storage tối ưu chi phí và khả năng scale. Cuối cùng, monitoring, logging, backup, disaster recovery và high availability là nền tảng vận hành, đảm bảo hệ thống ổn định, an toàn và phục hồi hiệu quả.

Network, IP address, DNS, router, switch, firewall và VPN
Trong mạng máy tính hiện đại, các khái niệm cơ bản không chỉ dừng ở định nghĩa đơn giản mà còn gắn với mô hình, giao thức và cách vận hành thực tế trong doanh nghiệp.

- Network: mạng máy tính là một tập hợp các thiết bị (host, server, router, switch, IoT device, v.v.) được kết nối với nhau thông qua các phương tiện truyền dẫn như cáp đồng, cáp quang, Wi-Fi. Về mặt kỹ thuật, network thường được mô tả theo các mô hình:
- Mô hình OSI (7 lớp: Physical, Data Link, Network, Transport, Session, Presentation, Application).
- Mô hình TCP/IP (Network Access, Internet, Transport, Application).
Network có thể được phân loại thành LAN, MAN, WAN, VPN, SD-WAN, mỗi loại có đặc tính về phạm vi, độ trễ, băng thông và chi phí khác nhau.
- IP address: địa chỉ IP là định danh logic của thiết bị trên mạng lớp 3 (Network layer). Có hai phiên bản chính:
- IPv4: 32-bit, thường biểu diễn dạng dotted-decimal, ví dụ:
192.168.1.10. Không gian địa chỉ hạn chế (~4.3 tỷ địa chỉ), dẫn đến việc sử dụng NAT. - IPv6: 128-bit, biểu diễn dạng hex, ví dụ:
2001:0db8:85a3::8a2e:0370:7334. Không gian địa chỉ rất lớn, hỗ trợ tốt hơn cho IoT và routing hiện đại.
IP address thường đi kèm với subnet mask hoặc CIDR (ví dụ: 10.0.0.0/24) để xác định phần network và phần host. Trong quản trị hệ thống, việc thiết kế sơ đồ IP (IP addressing plan) là bước quan trọng để tránh xung đột, tối ưu routing và dễ mở rộng.
- DNS (Domain Name System): hệ thống phân giải tên miền sang địa chỉ IP, hoạt động chủ yếu trên UDP/TCP port 53.
DNS cho phép người dùng truy cập dịch vụ bằng tên dễ nhớ (ví dụ: example.com) thay vì IP. Cấu trúc DNS mang tính phân cấp, bao gồm:
- Root servers, TLD servers (.com, .net, .org, ...), authoritative name servers.
- Các bản ghi phổ biến: A (IPv4), AAAA (IPv6), CNAME, MX, TXT, NS.
Trong môi trường doanh nghiệp, quản trị DNS liên quan đến việc cấu hình DNS nội bộ, split-horizon DNS, và tích hợp với dịch vụ cloud (Route 53, Cloud DNS, Azure DNS).
- Router: thiết bị định tuyến gói tin giữa các mạng khác nhau ở lớp 3.
Router sử dụng bảng định tuyến (routing table) và các giao thức như OSPF, BGP, RIP để quyết định đường đi tối ưu cho gói tin. Một số chức năng chuyên sâu:
- Static routing và dynamic routing.
- NAT/PAT (Network Address Translation / Port Address Translation) để chia sẻ một địa chỉ public cho nhiều host private.
- ACL (Access Control List) cơ bản để lọc traffic.
Trong môi trường cloud, khái niệm router được triển khai dưới dạng virtual router trong VPC/VNet.
- Switch: thiết bị chuyển mạch hoạt động chủ yếu ở lớp 2 (Data Link), dùng MAC address để chuyển frame trong cùng một LAN.
Các khái niệm quan trọng khi làm việc với switch:
- VLAN (Virtual LAN): phân chia mạng logic trên cùng một hạ tầng vật lý.
- Trunking (802.1Q): mang nhiều VLAN trên một đường uplink.
- STP (Spanning Tree Protocol): tránh loop trong mạng chuyển mạch.
Switch layer 3 có thể thực hiện routing cơ bản giữa các VLAN (inter-VLAN routing).
- Firewall: tường lửa kiểm soát lưu lượng vào/ra dựa trên rule.
Firewall có thể là thiết bị phần cứng, phần mềm, hoặc dịch vụ cloud (security group, network ACL). Một số khái niệm chuyên sâu:
- Stateful firewall: theo dõi trạng thái kết nối, cho phép trả lời của kết nối hợp lệ.
- Stateless firewall: xử lý từng packet độc lập, thường dùng cho rule đơn giản, tốc độ cao.
- Next-Generation Firewall (NGFW): hỗ trợ inspection ở lớp ứng dụng, IDS/IPS, URL filtering.
Thiết kế rule firewall liên quan chặt chẽ đến mô hình zero trust, phân vùng mạng (segmentation) và tuân thủ bảo mật.
- VPN (Virtual Private Network): mạng riêng ảo, mã hóa kết nối qua Internet để tạo kênh truyền an toàn giữa các site hoặc giữa user và hệ thống nội bộ.
Các loại VPN phổ biến:
- Site-to-Site VPN: kết nối hai mạng LAN qua Internet.
- Remote Access VPN: user kết nối từ xa vào mạng công ty.
- Các giao thức: IPsec, OpenVPN, WireGuard, SSL VPN.
Trong cloud, VPN thường dùng để nối on-premises với VPC/VNet, là thành phần quan trọng trong kiến trúc hybrid cloud.
Server, virtual machine, container, Kubernetes và microservices
Trong hạ tầng hiện đại, việc triển khai ứng dụng chuyển dịch từ mô hình server truyền thống sang ảo hóa, container và kiến trúc microservices để tăng khả năng mở rộng, tự động hóa và độ linh hoạt.

- Server: máy chủ có thể là vật lý (bare metal) hoặc ảo.
Server vật lý cung cấp tài nguyên CPU, RAM, storage, network cho nhiều workload. Một số vai trò server thường gặp:
- Web server (Nginx, Apache, IIS).
- Application server (Java app server, .NET, Node.js runtime).
- Database server (MySQL, PostgreSQL, SQL Server, NoSQL).
Trong quản trị hệ thống, cần quan tâm đến hardening, patching, capacity planning và automation (Ansible, Chef, Puppet).
- Virtual machine (VM): máy ảo chạy trên hypervisor (ESXi, KVM, Hyper-V, Xen).
VM cung cấp môi trường cách ly hoàn chỉnh với hệ điều hành riêng, driver ảo, tài nguyên ảo. Một số khái niệm chuyên sâu:
- Type 1 hypervisor (bare metal) và Type 2 hypervisor (chạy trên OS host).
- Snapshot, cloning, live migration (vMotion, live migrate).
- Overcommit tài nguyên (CPU, RAM) để tối ưu chi phí.
Trong cloud IaaS, mỗi instance (EC2, Compute Engine, VM trên Azure) về bản chất là một VM được quản lý bởi nhà cung cấp.
- Container: đơn vị đóng gói ứng dụng nhẹ, chia sẻ kernel với host, thường được triển khai bằng Docker hoặc containerd.
Container bao gồm application, dependency, runtime, nhưng không bao gồm kernel, giúp khởi động nhanh và sử dụng ít tài nguyên hơn VM. Một số khái niệm quan trọng:
- Image: template bất biến để tạo container, được build từ Dockerfile.
- Registry: nơi lưu trữ image (Docker Hub, ECR, GCR, ACR).
- Isolation bằng namespace và cgroups trên Linux.
Container rất phù hợp cho CI/CD, microservices và triển khai đa môi trường (dev, staging, production) với cấu hình nhất quán.
- Kubernetes: hệ thống điều phối container (container orchestration) giúp quản lý lifecycle của container ở quy mô lớn.
Kubernetes cung cấp các primitive quan trọng:
- Pod: đơn vị deploy nhỏ nhất, có thể chứa một hoặc nhiều container.
- Deployment: quản lý replica, rolling update, rollback.
- Service: cung cấp stable endpoint, load balancing nội bộ.
- Ingress: expose service ra ngoài cluster, thường kết hợp với ingress controller.
- ConfigMap, Secret: quản lý cấu hình và thông tin nhạy cảm.
Về vận hành, Kubernetes gắn liền với autoscaling (HPA), observability (Prometheus, Grafana), và security (RBAC, NetworkPolicy).
- Microservices: kiến trúc chia nhỏ ứng dụng thành nhiều service độc lập, mỗi service đảm nhiệm một chức năng business cụ thể, giao tiếp qua API (thường là HTTP/REST hoặc gRPC).
Đặc điểm chuyên môn:
- Mỗi microservice có thể có database riêng (database per service) để giảm coupling.
- Triển khai độc lập, cho phép scale theo chiều ngang từng service.
- Yêu cầu cơ chế service discovery, API gateway, circuit breaker, distributed tracing.
Khi kết hợp với Kubernetes, microservices thường sử dụng service mesh (Istio, Linkerd) để quản lý traffic, observability và security ở layer mạng.
Cloud computing, IaaS, PaaS, SaaS và cloud storage
Cloud computing thay đổi cách doanh nghiệp tiêu thụ tài nguyên IT, chuyển từ mô hình đầu tư CAPEX sang OPEX, với khả năng scale linh hoạt và tự động hóa cao.

- Cloud computing: cung cấp tài nguyên IT (compute, storage, network, database, service) qua Internet theo mô hình pay-as-you-go.
Các mô hình triển khai:
- Public cloud: tài nguyên chia sẻ trên hạ tầng của nhà cung cấp (AWS, Azure, GCP).
- Private cloud: hạ tầng cloud riêng, thường dùng OpenStack, VMware, hoặc giải pháp on-premises.
- Hybrid cloud: kết hợp on-premises và public cloud.
Cloud computing gắn liền với automation (Infrastructure as Code), security shared responsibility model, và cost optimization.
- IaaS (Infrastructure as a Service): cung cấp hạ tầng như dịch vụ, bao gồm VM, storage block, network, load balancer.
Người dùng chịu trách nhiệm quản lý OS, middleware, runtime và ứng dụng. Ví dụ điển hình:
- Compute instance (EC2, Compute Engine, Azure VM).
- Virtual network (VPC, VNet), security group, subnet.
- Block storage (EBS, Persistent Disk).
IaaS phù hợp khi cần nhiều quyền kiểm soát hệ điều hành, network và muốn tái sử dụng kiến trúc on-premises.
- PaaS (Platform as a Service): nền tảng như dịch vụ, cung cấp môi trường chạy ứng dụng mà không cần quản lý hạ tầng chi tiết.
Người dùng tập trung vào code và cấu hình ứng dụng, nhà cung cấp chịu trách nhiệm OS, patching, scaling nền tảng. Một số ví dụ:
- App Engine, Azure App Service, Heroku.
- Managed database (RDS, Cloud SQL) thường được xem là dạng PaaS cho database.
PaaS giúp rút ngắn thời gian triển khai, nhưng giảm mức độ tùy biến so với IaaS.
- SaaS (Software as a Service): phần mềm như dịch vụ, cung cấp ứng dụng hoàn chỉnh qua trình duyệt hoặc client nhẹ.
Người dùng chỉ sử dụng ứng dụng, không quản lý hạ tầng, platform hay code. Ví dụ: email doanh nghiệp, CRM, collaboration tools. Các khía cạnh quản trị tập trung vào:
- Quản lý tài khoản, phân quyền, SSO, MFA.
- Tuân thủ bảo mật, data residency, backup do nhà cung cấp thực hiện.
- Cloud storage: lưu trữ đám mây, thường ở dạng object storage (S3, Google Cloud Storage, Azure Blob Storage).
Đặc điểm kỹ thuật:
- Lưu trữ dữ liệu dưới dạng object (data + metadata + unique ID).
- Truy cập qua HTTP/HTTPS API, hỗ trợ versioning, lifecycle policy.
- Nhiều lớp storage: standard, infrequent access, archive, với chi phí và độ trễ khác nhau.
Cloud storage thường dùng cho backup, log, static website hosting, data lake và tích hợp với hệ sinh thái big data/analytics.
Monitoring, logging, backup, disaster recovery và high availability
Trong vận hành hệ thống, các khái niệm này là nền tảng của Site Reliability Engineering (SRE) và DevOps, đảm bảo hệ thống ổn định, có thể quan sát, và phục hồi khi xảy ra sự cố.

- Monitoring: giám sát hệ thống theo thời gian thực, thu thập metric như CPU, RAM, disk I/O, network throughput, latency, error rate.
Các loại monitoring:
- Infrastructure monitoring: host, VM, container, network.
- Application performance monitoring (APM): transaction, trace, dependency.
- Synthetic monitoring: mô phỏng hành vi user để kiểm tra uptime.
Monitoring hiệu quả cần alerting với threshold hợp lý, dashboard trực quan và tích hợp với incident management (PagerDuty, Opsgenie).
- Logging: ghi log sự kiện, lỗi, audit trail từ ứng dụng, hệ điều hành, network device.
Log thường được thu thập tập trung (centralized logging) để dễ tìm kiếm và phân tích. Một số thực hành chuyên sâu:
- Chuẩn hóa format log (JSON log, structured logging).
- Phân loại log: access log, error log, audit log, security log.
- Sử dụng stack như ELK/EFK, hoặc dịch vụ managed logging.
Logging là nguồn dữ liệu quan trọng cho troubleshooting, security forensics và capacity planning.
- Backup: sao lưu dữ liệu để có thể khôi phục khi mất mát hoặc hỏng hóc.
Các chiến lược backup:
- Full backup, incremental, differential.
- Quy tắc 3-2-1: 3 bản sao, 2 loại media, 1 bản offsite.
- Backup on-premises, backup lên cloud storage, snapshot volume.
Quan trọng là phải thường xuyên test restore để đảm bảo backup thực sự sử dụng được khi cần.
- Disaster recovery (DR): khôi phục sau thảm họa (mất data center, lỗi vùng cloud, tấn công ransomware).
DR được thiết kế dựa trên hai chỉ số:
- RPO (Recovery Point Objective): mất tối đa bao nhiêu dữ liệu (tính theo thời gian).
- RTO (Recovery Time Objective): thời gian tối đa để khôi phục hệ thống.
Các mô hình DR:
- Cold site, warm site, hot site.
- Multi-region, multi-AZ deployment trên cloud.
DR plan cần được tài liệu hóa, diễn tập định kỳ và tích hợp với quy trình incident response.
- High availability (HA): đảm bảo hệ thống luôn sẵn sàng, giảm downtime đến mức tối thiểu.
HA thường đạt được bằng cách loại bỏ single point of failure thông qua:
- Redundancy: nhiều instance, nhiều node, nhiều AZ.
- Load balancing: phân phối traffic giữa các instance.
- Failover tự động: health check, auto-restart, auto-scaling.
Thiết kế HA cần cân bằng giữa chi phí, độ phức tạp và mục tiêu SLA/SLO của hệ thống.
Thuật ngữ an toàn thông tin và an ninh mạng
Các thuật ngữ an toàn thông tin và an ninh mạng tạo thành một hệ sinh thái khép kín từ phòng thủ, tấn công đến quản trị rủi ro. Ở lớp kỹ thuật, cybersecurity bao trùm việc bảo vệ tính bí mật, toàn vẹn, sẵn sàng của dữ liệu, trong khi vulnerability và exploit mô tả mối quan hệ giữa điểm yếu và cách thức khai thác. Malware, đặc biệt là ransomware, hiện thực hóa các khai thác này thành thiệt hại cụ thể.

Song song, các cơ chế encryption, hashing, authentication, authorization và access control là nền tảng bảo vệ dữ liệu và tài nguyên. Ở phía tấn công, phishing, social engineering, DDoS cùng nhiều kỹ thuật ứng dụng khác nhắm vào con người, hạ tầng và phần mềm. Cuối cùng, penetration testing, incident response, security audit tạo thành chu trình liên tục giúp tổ chức đánh giá, ứng phó và cải thiện mức độ an toàn.
Cybersecurity, vulnerability, exploit, malware và ransomware
Trong an ninh mạng hiện đại, các thuật ngữ này tạo thành nền tảng để hiểu toàn bộ hệ sinh thái tấn công – phòng thủ. Mỗi khái niệm không chỉ là một định nghĩa đơn lẻ mà còn gắn với quy trình, công cụ và mô hình quản trị rủi ro cụ thể.

- Cybersecurity: an toàn thông tin trên không gian mạng, bao gồm tập hợp các chính sách, quy trình, công nghệ và con người nhằm bảo vệ:
- Tính bí mật (Confidentiality): ngăn truy cập trái phép vào dữ liệu.
- Tính toàn vẹn (Integrity): đảm bảo dữ liệu không bị sửa đổi trái phép.
- Tính sẵn sàng (Availability): hệ thống, dịch vụ luôn sẵn sàng khi người dùng hợp lệ cần.
Cybersecurity thường được triển khai theo các lớp: bảo mật mạng (network security), bảo mật ứng dụng (application security), bảo mật điểm cuối (endpoint security), bảo mật dữ liệu (data security), bảo mật đám mây (cloud security) và bảo mật con người (security awareness).
- Vulnerability: lỗ hổng bảo mật, là một điểm yếu trong:
- Phần mềm (bug logic, lỗi lập trình, cấu hình sai).
- Phần cứng (firmware lỗi, thiết kế kiến trúc không an toàn).
- Quy trình (quy trình phê duyệt lỏng lẻo, thiếu phân tách nhiệm vụ).
- Yếu tố con người (mật khẩu yếu, chia sẻ tài khoản, thiếu nhận thức).
Lỗ hổng thường được định danh bằng các mã như CVE (Common Vulnerabilities and Exposures) và được đánh giá mức độ nghiêm trọng bằng thang điểm CVSS (Common Vulnerability Scoring System). Quản lý lỗ hổng (vulnerability management) bao gồm các bước: phát hiện, đánh giá, ưu tiên, khắc phục (patching, hardening) và theo dõi.
- Exploit: mã hoặc kỹ thuật khai thác lỗ hổng, có thể ở dạng:
- Exploit tự động (script, module trong Metasploit, PoC code).
- Exploit thủ công (chuỗi payload được xây dựng riêng cho từng mục tiêu).
- Exploit local (yêu cầu truy cập cục bộ) hoặc remote (qua mạng).
Exploit thường tận dụng các kỹ thuật như buffer overflow, use-after-free, SQL injection, command injection để chiếm quyền điều khiển hệ thống, leo thang đặc quyền hoặc đánh cắp dữ liệu. Chuỗi tấn công thường là: phát hiện vulnerability → phát triển hoặc tái sử dụng exploit → triển khai payload → duy trì hiện diện (persistence).
- Malware: phần mềm độc hại (virus, worm, trojan), là bất kỳ phần mềm nào được thiết kế với mục đích gây hại, gián điệp hoặc chiếm quyền điều khiển. Một số nhóm chính:
- Virus: lây lan bằng cách chèn mã vào file hoặc chương trình hợp lệ.
- Worm: tự nhân bản qua mạng mà không cần file chủ.
- Trojan: giả dạng phần mềm hợp pháp để đánh lừa người dùng.
- Spyware, keylogger: thu thập thông tin, ghi lại thao tác bàn phím.
- Backdoor: tạo cửa hậu cho phép truy cập trái phép.
Malware hiện đại thường sử dụng kỹ thuật obfuscation, packing, polymorphism để né tránh antivirus truyền thống, và được phân phối qua email, website độc hại, USB, hoặc chuỗi tấn công supply chain.
- Ransomware: mã độc mã hóa dữ liệu đòi tiền chuộc, là một nhánh chuyên biệt của malware. Quy trình tấn công điển hình:
- Xâm nhập ban đầu (phishing, RDP yếu, lỗ hổng VPN, exploit web).
- Di chuyển ngang (lateral movement) trong mạng nội bộ.
- Thu thập và exfiltrate dữ liệu nhạy cảm.
- Mã hóa dữ liệu trên máy chủ, máy trạm, backup.
- Đưa ra yêu cầu tiền chuộc (thường bằng tiền mã hóa) kèm đe dọa công bố dữ liệu.
Các nhóm ransomware hiện nay hoạt động theo mô hình RaaS (Ransomware-as-a-Service), cho phép kẻ tấn công thuê bộ công cụ, hạ tầng và chia lợi nhuận với nhà phát triển.
Encryption, hashing, authentication, authorization và access control
Nhóm thuật ngữ này là nền tảng của mọi hệ thống bảo mật, từ ứng dụng web, hệ điều hành đến dịch vụ đám mây. Chúng thường được kết hợp thành chuỗi: mã hóa dữ liệu, băm mật khẩu, xác thực người dùng, phân quyền và kiểm soát truy cập.

- Encryption: mã hóa, biến dữ liệu thành dạng không đọc được nếu không có key.
- Mã hóa đối xứng (symmetric): dùng cùng một key để mã hóa/giải mã (AES, ChaCha20).
- Mã hóa bất đối xứng (asymmetric): dùng cặp public/private key (RSA, ECC).
Encryption được áp dụng ở nhiều lớp: - Mã hóa dữ liệu khi truyền (TLS/HTTPS, VPN). - Mã hóa dữ liệu khi lưu trữ (disk encryption, database encryption). - Mã hóa ở tầng ứng dụng (field-level encryption cho dữ liệu nhạy cảm).
Thiết kế hệ thống cần chú ý: quản lý key (key management), vòng đời key (rotation, revocation), và tránh tự thiết kế thuật toán mã hóa mà không dựa trên chuẩn đã được kiểm chứng.
- Hashing: băm, ánh xạ dữ liệu thành chuỗi cố định. Hash tốt cần:
- Tính một chiều (one-way): không thể khôi phục dữ liệu gốc từ hash.
- Không va chạm (collision-resistant): khó tìm hai dữ liệu khác nhau có cùng hash.
Trong bảo mật, hashing thường dùng để lưu mật khẩu. Thay vì lưu plaintext, hệ thống lưu hash + salt. Các thuật toán chuyên cho mật khẩu như bcrypt, scrypt, Argon2 được thiết kế chậm và tốn tài nguyên để chống brute force.
- Authentication: xác thực danh tính, trả lời câu hỏi “Bạn là ai?”. Các cơ chế phổ biến:
- Mật khẩu (password-based).
- OTP, token phần cứng, ứng dụng xác thực (MFA/2FA).
- Chứng chỉ số (certificate-based).
- Sinh trắc học (vân tay, khuôn mặt).
Hệ thống hiện đại thường dùng multi-factor authentication kết hợp ít nhất hai yếu tố: cái bạn biết (mật khẩu), cái bạn có (token), cái bạn là (sinh trắc học). Giao thức như OAuth2, OpenID Connect, SAML hỗ trợ xác thực liên kết (federated identity) giữa nhiều hệ thống.
- Authorization: phân quyền truy cập, trả lời câu hỏi “Bạn được phép làm gì?”. Authorization dựa trên:
- Role-based access control (RBAC): phân quyền theo vai trò (admin, user, auditor).
- Attribute-based access control (ABAC): dựa trên thuộc tính (phòng ban, vị trí, thời gian).
- Rule-based, policy-based: dựa trên tập luật, chính sách chi tiết.
Authorization thường được thực thi sau khi authentication thành công, thông qua token (JWT, access token) chứa thông tin quyền hạn, hoặc thông qua hệ thống policy server trung tâm.
- Access control: kiểm soát truy cập tài nguyên, là cơ chế tổng thể bao gồm:
- Xác định đối tượng (subject) và tài nguyên (object).
- Áp dụng chính sách (policy) và quy tắc (rules).
- Ghi log, giám sát và kiểm tra (monitoring, auditing).
Access control có thể ở nhiều lớp: firewall rule, ACL trên hệ điều hành, permission trong ứng dụng, security group trong cloud. Thiết kế tốt thường áp dụng nguyên tắc least privilege (ít quyền nhất) và need-to-know.
Phishing, social engineering, DDoS và các hình thức tấn công phổ biến
Các hình thức tấn công này tập trung vào việc phá vỡ một hoặc nhiều thuộc tính bảo mật (CIA) bằng cách khai thác con người, hạ tầng hoặc ứng dụng. Chúng thường được kết hợp trong các chiến dịch tấn công có chủ đích (APT).

- Phishing: lừa đảo qua email, website giả mạo, thường nhằm:
- Đánh cắp thông tin đăng nhập (credential harvesting).
- Phát tán malware, ransomware.
- Lừa chuyển tiền (business email compromise).
Các biến thể gồm spear phishing (nhắm mục tiêu cụ thể), whaling (nhắm lãnh đạo cấp cao), smishing (qua SMS), vishing (qua cuộc gọi). Phòng chống cần kết hợp: lọc email, sandbox file đính kèm, DMARC/SPF/DKIM, và đào tạo nhận thức người dùng.
- Social engineering: kỹ nghệ xã hội, khai thác yếu tố con người thay vì chỉ tấn công kỹ thuật. Một số kỹ thuật:
- Pretexting: dựng kịch bản giả (giả IT support, giả đối tác).
- Baiting: dùng “mồi nhử” (USB, link hấp dẫn) để dụ người dùng.
- Tailgating: đi theo người có quyền vào khu vực hạn chế.
Social engineering thường là bước đầu để thu thập thông tin, chiếm tài khoản, hoặc cài đặt malware. Biện pháp giảm thiểu gồm: quy trình xác minh đa bước, chính sách không chia sẻ thông tin nhạy cảm qua kênh không chính thức, và kiểm soát vật lý.
- DDoS (Distributed Denial of Service): tấn công từ chối dịch vụ phân tán, dùng nhiều nguồn (thường là botnet) để làm cạn kiệt tài nguyên:
- Băng thông mạng (flooding traffic).
- Tài nguyên hệ thống (CPU, RAM, connection pool).
- Tầng ứng dụng (HTTP flood, tấn công API).
DDoS có thể là volumetric (tập trung vào lưu lượng), protocol-based (SYN flood, UDP flood) hoặc application-layer (HTTP GET/POST flood). Phòng thủ cần kết hợp: CDN, WAF, rate limiting, scrubbing center, và kiến trúc hệ thống có khả năng scale.
- Các dạng khác: SQL injection, XSS, CSRF, brute force.
- SQL injection: chèn câu lệnh SQL độc hại để đọc, sửa, xóa dữ liệu hoặc chiếm quyền hệ thống.
- XSS (Cross-Site Scripting): chèn script vào trình duyệt người dùng, đánh cắp cookie, token.
- CSRF (Cross-Site Request Forgery): lợi dụng phiên đăng nhập hợp lệ để thực hiện hành động trái phép.
- Brute force: thử nhiều mật khẩu hoặc key cho đến khi đoán đúng.
Các tấn công này thường được giảm thiểu bằng: input validation, parameterized query, output encoding, CSRF token, rate limiting, lockout policy và sử dụng captcha hợp lý.
Penetration testing, incident response và security audit
Trong quy trình bảo mật, ba hoạt động này tạo thành chu trình liên tục: đánh giá chủ động – xử lý sự cố – kiểm tra tuân thủ, giúp tổ chức duy trì mức độ an toàn chấp nhận được trước các mối đe dọa thay đổi liên tục.

- Penetration testing (pentest): kiểm thử xâm nhập, mô phỏng tấn công có kiểm soát để đánh giá mức độ dễ bị tổn thương của hệ thống.
- Black-box: không có thông tin nội bộ, giống kẻ tấn công bên ngoài.
- White-box: có đầy đủ thông tin, mã nguồn, cấu hình.
- Gray-box: có một phần thông tin, giống insider hạn chế.
Quy trình pentest thường gồm: - Thu thập thông tin (reconnaissance). - Quét và liệt kê (scanning, enumeration). - Khai thác (exploitation). - Leo thang đặc quyền, duy trì truy cập (post-exploitation). - Báo cáo chi tiết và đề xuất khắc phục.
- Incident response: ứng phó sự cố bảo mật, là tập hợp quy trình và đội ngũ chuyên trách xử lý khi xảy ra tấn công hoặc vi phạm. Các giai đoạn điển hình:
- Chuẩn bị (preparation): xây dựng playbook, kịch bản, đội IR.
- Phát hiện và phân tích (detection & analysis): sử dụng SIEM, log, alert.
- Khoanh vùng (containment): cô lập hệ thống bị xâm nhập.
- Loại bỏ (eradication): gỡ bỏ malware, đóng lỗ hổng.
- Khôi phục (recovery): phục hồi dịch vụ, dữ liệu an toàn.
- Rút kinh nghiệm (lessons learned): cập nhật quy trình, kiểm soát.
Incident response hiệu quả đòi hỏi phối hợp giữa kỹ thuật, pháp lý, truyền thông và quản lý, đồng thời gắn với kế hoạch kinh doanh liên tục (BCP) và khôi phục sau thảm họa (DR).
- Security audit: kiểm toán bảo mật, đánh giá tuân thủ và rủi ro dựa trên chuẩn mực, chính sách và quy định. Security audit có thể:
- Đánh giá tuân thủ chuẩn (ISO 27001, PCI DSS, HIPAA, v.v.).
- Kiểm tra việc thực thi chính sách nội bộ, quy trình vận hành.
- Rà soát cấu hình hệ thống, quyền truy cập, log, backup.
Khác với pentest (tập trung vào tấn công kỹ thuật), security audit có phạm vi rộng hơn, bao gồm cả quản trị, quy trình, tài liệu và bằng chứng vận hành. Kết quả audit thường là báo cáo phát hiện (finding), mức độ rủi ro và khuyến nghị cải thiện.
Từ viết tắt IT thường gặp trong học tập và môi trường doanh nghiệp
Các từ viết tắt IT trong học tập và doanh nghiệp bao phủ nhiều mảng: quy trình phát triển phần mềm, chất lượng – vận hành hệ thống, nền tảng quản trị và các chỉ số quản lý. Nhóm SDLC, Agile, Scrum, Sprint, Kanban mô tả cách tổ chức công việc phát triển, từ phân tích yêu cầu, thiết kế, lập trình, kiểm thử đến triển khai và bảo trì, với trọng tâm là tính linh hoạt, cộng tác và tối ưu luồng công việc. Nhóm QA, QC, UAT, CI/CD, DevOps, DevSecOps tập trung vào đảm bảo chất lượng, tự động hóa và bảo mật xuyên suốt vòng đời sản phẩm. ERP, CRM, CMS, LMS là các hệ thống lõi hỗ trợ vận hành và ra quyết định. Cuối cùng, SLA, KPI, OKR, ROI giúp đo lường hiệu quả và căn chỉnh mục tiêu công nghệ với chiến lược kinh doanh.

SDLC, Agile, Scrum, Sprint, Kanban và quy trình phát triển phần mềm
Trong quản lý dự án phần mềm, các khái niệm sau không chỉ là từ viết tắt mà còn là những “khung tư duy” định hình cách đội ngũ phát triển, kiểm thử và triển khai sản phẩm.

SDLC (Software Development Life Cycle): vòng đời phát triển phần mềm mô tả toàn bộ quá trình từ lúc hình thành ý tưởng đến khi ngừng vận hành hệ thống. Một SDLC điển hình bao gồm các giai đoạn:
- Requirement Analysis: thu thập, phân tích yêu cầu nghiệp vụ, phi chức năng (bảo mật, hiệu năng, khả năng mở rộng).
- System Design: thiết kế kiến trúc (monolith, microservices), thiết kế CSDL, API, giao diện.
- Implementation: lập trình, viết unit test, review code, quản lý nhánh (branch) trong Git.
- Testing: kiểm thử chức năng, tích hợp, hiệu năng, bảo mật.
- Deployment: triển khai lên môi trường staging, production, rollback khi có sự cố.
- Maintenance: sửa lỗi, nâng cấp tính năng, tối ưu hệ thống trong suốt vòng đời.
SDLC có thể được triển khai theo nhiều mô hình như Waterfall, V-Model, Iterative hoặc Agile, tùy thuộc vào mức độ linh hoạt và rủi ro của dự án.
Agile: phương pháp phát triển linh hoạt, nhấn mạnh việc chia nhỏ sản phẩm thành các phần gia tăng (increment), phản hồi liên tục từ khách hàng và cải tiến liên tục. Một số nguyên tắc cốt lõi:
- Ưu tiên working software hơn tài liệu nặng nề.
- Hợp tác chặt chẽ với khách hàng, phản hồi thường xuyên.
- Thích ứng với thay đổi yêu cầu, thay vì cố bám vào kế hoạch cứng nhắc.
- Nhịp độ phát triển bền vững, tránh “crunch time” kéo dài.
Agile không phải là một quy trình cụ thể mà là một tập hợp giá trị và nguyên tắc; các framework như Scrum hay Kanban là cách hiện thực hóa Agile trong thực tế.
Scrum: framework Agile phổ biến, tập trung vào việc chia dự án thành các chu kỳ ngắn lặp lại. Scrum định nghĩa rõ vai trò, sự kiện và artefact:
- Product Owner (PO): chịu trách nhiệm tối đa hóa giá trị sản phẩm, quản lý Product Backlog, ưu tiên tính năng theo giá trị kinh doanh.
- Scrum Master: người “bảo vệ” Scrum, loại bỏ trở ngại (impediments), huấn luyện team về tư duy Agile.
- Development Team: nhóm đa chức năng (dev, tester, BA, designer) tự tổ chức để hoàn thành mục tiêu Sprint.
- Events: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.
- Artefacts: Product Backlog, Sprint Backlog, Increment (phần sản phẩm hoàn thành, có thể triển khai).
Sprint: chu kỳ phát triển ngắn, thường từ 1–4 tuần, trong đó team cam kết hoàn thành một tập mục tiêu cụ thể. Một Sprint hiệu quả thường có:
- Goal rõ ràng: mô tả kết quả kinh doanh hoặc giá trị người dùng đạt được sau Sprint.
- Definition of Done (DoD): tiêu chí hoàn thành chung (code xong, test xong, review xong, tài liệu cập nhật).
- Velocity: tốc độ hoàn thành story points, dùng để dự đoán khả năng của team trong các Sprint sau.
Trong môi trường doanh nghiệp, việc quản lý Sprint tốt giúp dự đoán tiến độ, kiểm soát phạm vi (scope) và giảm rủi ro trễ deadline.
Kanban: phương pháp trực quan hóa luồng công việc, tập trung vào tối ưu flow thay vì các chu kỳ cố định. Đặc trưng của Kanban:
- Kanban board với các cột như: To Do, In Progress, Code Review, Testing, Done.
- WIP Limit (Work In Progress Limit): giới hạn số lượng task đang làm ở mỗi cột để tránh “tắc nghẽn”.
- Đo lường Lead Time và Cycle Time để tối ưu hiệu suất.
Kanban thường phù hợp với team vận hành, support, hoặc các dự án có luồng yêu cầu liên tục, khó đóng khung theo Sprint.
QA, QC, UAT, CI/CD, DevOps và DevSecOps
Các từ viết tắt này liên quan đến chất lượng, kiểm thử và vận hành hệ thống, đóng vai trò quan trọng trong việc đảm bảo sản phẩm ổn định, an toàn và có thể mở rộng.

QA (Quality Assurance): đảm bảo chất lượng ở mức quy trình. QA tập trung vào việc xây dựng và cải tiến các quy trình phát triển, kiểm thử, release để giảm thiểu lỗi ngay từ đầu:
- Xây dựng test strategy, test plan, quy trình review code, quy trình release.
- Định nghĩa tiêu chuẩn coding, tiêu chuẩn tài liệu, quy tắc đặt tên.
- Đánh giá tuân thủ quy trình (process audit), phân tích nguyên nhân gốc rễ (root cause analysis).
QC (Quality Control): kiểm soát chất lượng ở mức sản phẩm, tập trung vào hoạt động kiểm thử cụ thể:
- Thực hiện test case, test script, exploratory testing.
- Ghi nhận bug, phân loại mức độ nghiêm trọng (severity) và ưu tiên (priority).
- Tham gia regression test sau mỗi lần release hoặc hotfix.
Trong nhiều doanh nghiệp, QA và QC thường bị dùng lẫn lộn, nhưng về bản chất QA mang tính phòng ngừa, QC mang tính phát hiện.
UAT (User Acceptance Testing): giai đoạn kiểm thử chấp nhận do người dùng cuối hoặc đại diện nghiệp vụ thực hiện. Một số đặc điểm:
- Diễn ra ở môi trường gần giống production (UAT/Staging).
- Kiểm tra xem hệ thống có đáp ứng đúng quy trình nghiệp vụ thực tế hay không.
- Kết quả UAT thường là điều kiện để “go-live” hoặc ký nghiệm thu.
CI/CD (Continuous Integration / Continuous Delivery/Deployment): tập hợp thực hành tự động hóa trong phát triển phần mềm:
- Continuous Integration: dev liên tục merge code vào nhánh chính, mỗi lần merge đều kích hoạt build, unit test, static code analysis.
- Continuous Delivery: sau khi build và test thành công, artefact (image, package) sẵn sàng để triển khai lên production bất cứ lúc nào.
- Continuous Deployment: tự động triển khai lên production sau khi vượt qua toàn bộ pipeline kiểm thử.
Các công cụ phổ biến: Jenkins, GitLab CI, GitHub Actions, Azure DevOps, giúp giảm lỗi do thao tác thủ công và rút ngắn thời gian release.
DevOps: văn hóa và tập hợp thực hành kết hợp chặt chẽ giữa Development (phát triển) và Operations (vận hành). Một số trụ cột:
- Tự động hóa build, test, deploy, monitoring.
- Infrastructure as Code (IaC) với các công cụ như Terraform, Ansible.
- Logging, metrics, alerting để phát hiện sự cố sớm.
- Trách nhiệm chung về chất lượng và độ ổn định hệ thống, thay vì “đổ lỗi” giữa dev và ops.
DevSecOps: mở rộng DevOps bằng cách tích hợp bảo mật (Security) vào toàn bộ pipeline. Thay vì kiểm tra bảo mật ở cuối, DevSecOps đưa bảo mật vào từng bước:
- Static Application Security Testing (SAST) trong giai đoạn build.
- Dynamic Application Security Testing (DAST) trên môi trường chạy.
- Kiểm tra lỗ hổng dependency, container image scanning.
- Chính sách bảo mật được “mã hóa” (policy as code) và kiểm tra tự động.
ERP, CRM, CMS, LMS và các hệ thống quản trị doanh nghiệp
Các hệ thống ứng dụng doanh nghiệp giúp chuẩn hóa quy trình, tập trung dữ liệu và hỗ trợ ra quyết định dựa trên số liệu.

ERP (Enterprise Resource Planning): hệ thống hoạch định nguồn lực doanh nghiệp, tích hợp nhiều phân hệ:
- Tài chính – kế toán (Finance & Accounting).
- Quản lý mua hàng, kho, chuỗi cung ứng (Procurement, Inventory, Supply Chain).
- Quản lý sản xuất (Manufacturing), kế hoạch vật tư (MRP).
- Nhân sự – tiền lương (HR, Payroll).
ERP giúp giảm trùng lặp dữ liệu, chuẩn hóa quy trình giữa các phòng ban và cung cấp báo cáo tổng hợp theo thời gian gần thực (near real-time).
CRM (Customer Relationship Management): hệ thống quản lý quan hệ khách hàng, tập trung vào toàn bộ vòng đời khách hàng:
- Quản lý lead, cơ hội bán hàng (opportunity), pipeline của sales.
- Lưu trữ lịch sử tương tác: email, cuộc gọi, meeting, ticket hỗ trợ.
- Tự động hóa marketing (email campaign, segmentation, scoring).
CRM giúp tăng khả năng chuyển đổi, giữ chân khách hàng và cá nhân hóa trải nghiệm dựa trên dữ liệu hành vi.
CMS (Content Management System): hệ thống quản lý nội dung, cho phép tạo, chỉnh sửa, xuất bản nội dung mà không cần can thiệp sâu vào code. Một số đặc điểm:
- Quản lý bài viết, trang, media (hình ảnh, video, file).
- Phân quyền người dùng: admin, editor, author, contributor.
- Hỗ trợ plugin, theme để mở rộng tính năng và thay đổi giao diện.
Các CMS phổ biến như WordPress, Drupal thường được dùng cho website doanh nghiệp, blog, cổng thông tin nội bộ.
LMS (Learning Management System): hệ thống quản lý đào tạo, dùng trong trường học, doanh nghiệp, tổ chức đào tạo:
- Quản lý khóa học, lộ trình học, nội dung e-learning (video, quiz, tài liệu).
- Theo dõi tiến độ học, điểm số, chứng chỉ.
- Tích hợp với HR hoặc ERP để đồng bộ dữ liệu nhân sự, đánh giá năng lực.
LMS giúp chuẩn hóa hoạt động đào tạo, đo lường hiệu quả học tập và hỗ trợ mô hình học trực tuyến hoặc blended learning.
SLA, KPI, OKR, ROI và thuật ngữ quản lý dự án công nghệ
Trong quản trị và kinh doanh, các chỉ số và thỏa thuận này giúp đo lường hiệu quả, căn chỉnh mục tiêu và đánh giá lợi ích của các dự án công nghệ.

SLA (Service Level Agreement): thỏa thuận mức dịch vụ giữa nhà cung cấp và khách hàng. Một SLA thường bao gồm:
- Thời gian uptime cam kết (ví dụ: 99.9%/tháng).
- Thời gian phản hồi và xử lý sự cố theo mức độ (P1, P2, P3).
- Cam kết về hiệu năng (thời gian phản hồi API, throughput).
- Cơ chế phạt hoặc bồi thường khi vi phạm SLA (service credit).
KPI (Key Performance Indicator): chỉ số hiệu suất then chốt, dùng để đo lường mức độ hoàn thành mục tiêu. Trong dự án công nghệ, KPI có thể là:
- Tỷ lệ bug nghiêm trọng trên production.
- Lead time từ lúc tạo yêu cầu đến khi triển khai.
- Tỷ lệ uptime hệ thống, số lần outage trong tháng.
- Tỷ lệ hoàn thành Sprint (committed vs. completed story points).
OKR (Objectives and Key Results): khung thiết lập mục tiêu và kết quả then chốt, thường dùng theo quý:
- Objective: mục tiêu định tính, truyền cảm hứng (ví dụ: “Nâng cao trải nghiệm người dùng trên ứng dụng mobile”).
- Key Results: kết quả định lượng, đo được (ví dụ: tăng NPS thêm 20 điểm, giảm crash rate xuống < 0.5%).
OKR giúp căn chỉnh mục tiêu giữa các team (product, engineering, marketing) và tập trung vào kết quả thay vì chỉ hoạt động.
ROI (Return on Investment): tỷ suất hoàn vốn, dùng để đánh giá hiệu quả tài chính của dự án công nghệ. Công thức cơ bản:
- ROI = (Lợi ích thu được – Chi phí đầu tư) / Chi phí đầu tư
Trong bối cảnh IT, lợi ích có thể là doanh thu tăng thêm, chi phí vận hành giảm, năng suất nhân viên tăng, hoặc giảm rủi ro. Việc ước lượng ROI giúp ưu tiên dự án, đặc biệt khi nguồn lực (ngân sách, nhân sự) có hạn.
Thuật ngữ giao tiếp và tuyển dụng trong ngành Công nghệ thông tin
Các thuật ngữ giao tiếp và tuyển dụng trong ngành Công nghệ thông tin tạo thành một hệ sinh thái khái niệm liên kết chặt chẽ từ lúc ứng viên đọc JD đến khi phát triển sự nghiệp dài hạn. Ứng viên cần hiểu JD để nắm rõ phạm vi công việc, yêu cầu kỹ năng và kỳ vọng về hiệu suất; từ đó đối chiếu technical skill và soft skill của bản thân với mức seniority mà doanh nghiệp tìm kiếm. Đồng thời, việc ý thức rõ career path – đi theo hướng chuyên môn sâu hay quản lý – giúp lựa chọn dự án, môi trường và vai trò phù hợp. Khi nắm vững “ngôn ngữ chung” này, ứng viên không chỉ ứng tuyển hiệu quả hơn mà còn chủ động định vị giá trị và lộ trình phát triển trong ngành IT.

Job description, technical skill, soft skill, seniority và career path
Trong tuyển dụng IT, các thuật ngữ này không chỉ là khái niệm cơ bản mà còn là “ngôn ngữ chung” giữa nhà tuyển dụng, HR, Hiring Manager và ứng viên. Hiểu sâu giúp ứng viên đọc JD chính xác hơn, định vị bản thân rõ hơn và thương lượng tốt hơn.

Job description (JD): không chỉ là “mô tả công việc” mà là tài liệu tổng hợp thể hiện:
- Scope of work: phạm vi trách nhiệm chính (ví dụ: phát triển tính năng, bảo trì hệ thống, tối ưu hiệu năng, mentoring).
- Required skills: kỹ năng bắt buộc (must-have) – thường liên quan trực tiếp đến công việc hàng ngày.
- Preferred skills: kỹ năng ưu tiên (nice-to-have) – giúp nổi bật hơn so với ứng viên khác.
- Reporting line: báo cáo cho ai (Team Lead, Engineering Manager, CTO).
- KPIs / Performance indicators: đôi khi JD gợi ý cách đánh giá hiệu quả (tốc độ delivery, chất lượng code, uptime hệ thống).
JD tốt thường phân biệt rõ giữa responsibilities (trách nhiệm) và requirements (yêu cầu), giúp ứng viên tự đánh giá mức độ phù hợp và chuẩn bị ví dụ thực tế khi phỏng vấn.
Technical skill: là tập hợp các năng lực chuyên môn có thể đo lường, kiểm thử và đánh giá tương đối khách quan. Trong ngành IT, technical skill thường chia thành:
- Programming languages: Java, C#, JavaScript/TypeScript, Python, Go, Rust, v.v.
- Frameworks & libraries: Spring Boot, .NET, React, Angular, Vue, Django, Laravel, Node.js.
- DevOps & Cloud: Docker, Kubernetes, CI/CD (Jenkins, GitHub Actions, GitLab CI), AWS, Azure, GCP.
- Database: SQL (MySQL, PostgreSQL, SQL Server), NoSQL (MongoDB, Redis, Cassandra, Elasticsearch).
- Testing: unit test, integration test, end-to-end test, test automation frameworks (JUnit, Jest, Cypress).
- Architecture & design: design patterns, microservices, event-driven architecture, system design.
Technical skill thường được kiểm tra qua coding test, pair programming, review GitHub, hoặc technical interview chuyên sâu (algorithm, system design, troubleshooting).
Soft skill: trong môi trường IT hiện đại, soft skill là yếu tố quyết định khả năng làm việc hiệu quả trong team và với stakeholder. Một số nhóm kỹ năng quan trọng:
- Communication: trình bày ý tưởng rõ ràng, viết email, viết technical documentation, trao đổi với non-technical stakeholder.
- Teamwork & collaboration: làm việc trong Scrum team, pair programming, code review, hỗ trợ cross-functional team (QA, DevOps, Product).
- Problem-solving: phân tích nguyên nhân gốc (root cause analysis), đề xuất giải pháp khả thi, đánh giá trade-off kỹ thuật.
- Time management & prioritization: ước lượng effort, quản lý task trong sprint, xử lý nhiều yêu cầu song song.
- Adaptability: học công nghệ mới, thích nghi với quy trình mới (Agile, DevOps, CI/CD), thay đổi yêu cầu sản phẩm.
Ở cấp độ Senior trở lên, soft skill thường quan trọng không kém technical skill, đặc biệt trong việc dẫn dắt team, làm việc với khách hàng và giải quyết xung đột.
Seniority: thể hiện mức độ kinh nghiệm, phạm vi ảnh hưởng và mức độ tự chủ trong công việc, không chỉ đơn thuần là số năm kinh nghiệm.
- Junior: cần nhiều hướng dẫn, tập trung vào task cụ thể, phạm vi ảnh hưởng nhỏ, chủ yếu học quy trình và best practices.
- Mid-level: tự xử lý được phần lớn task, hiểu rõ domain của team, bắt đầu tham gia vào thiết kế giải pháp và review code.
- Senior: chủ động đề xuất giải pháp, thiết kế kiến trúc cho module lớn, mentoring cho Junior/Mid, tối ưu quy trình kỹ thuật.
- Lead: vừa coding vừa dẫn dắt team, phân chia công việc, đảm bảo chất lượng kỹ thuật, phối hợp chặt với Product Owner/Manager.
- Principal / Staff / Architect: tập trung vào kiến trúc tổng thể, technical vision, tiêu chuẩn kỹ thuật cho nhiều team hoặc toàn bộ tổ chức.
Trong thực tế, mỗi công ty có định nghĩa seniority khác nhau, nhưng điểm chung là càng lên cao thì phạm vi ảnh hưởng càng rộng và yêu cầu về leadership, communication càng lớn.
Career path: lộ trình nghề nghiệp trong IT thường chia thành hai hướng chính:
- Technical track: đi sâu vào chuyên môn kỹ thuật (Senior Engineer → Staff/Principal Engineer → Architect). Tập trung vào kiến trúc, hiệu năng, bảo mật, scalability, technical strategy.
- Management track: chuyển dần sang quản lý con người và quy trình (Team Lead → Engineering Manager → Director/VP of Engineering). Tập trung vào tổ chức team, tuyển dụng, performance review, alignment với business.
Nhiều công ty hiện đại cho phép chuyển hướng giữa hai track hoặc kết hợp (ví dụ: Tech Lead vẫn code nhưng cũng chịu trách nhiệm quản lý kỹ thuật cho team). Việc hiểu rõ career path giúp định hướng học tập, chọn dự án và thương lượng title phù hợp.
CV, portfolio, GitHub, coding test và technical interview
Trong quá trình ứng tuyển IT, mỗi loại tài liệu và vòng đánh giá có vai trò khác nhau trong việc thể hiện năng lực và tiềm năng của ứng viên.

CV / Resume: là bản tóm tắt có cấu trúc về kinh nghiệm, kỹ năng và thành tựu. Một CV hiệu quả trong ngành IT thường:
- Tập trung vào impact (kết quả) thay vì chỉ liệt kê nhiệm vụ: ví dụ “Giảm 30% response time bằng cách tối ưu query và caching”.
- Nhấn mạnh tech stack đã sử dụng: ngôn ngữ, framework, database, công cụ CI/CD, cloud.
- Phân tách rõ project description và responsibilities cá nhân trong từng dự án.
- Liên kết với GitHub hoặc portfolio để nhà tuyển dụng có thể kiểm chứng.
Portfolio: là bộ sưu tập các dự án tiêu biểu thể hiện chiều sâu kỹ thuật và khả năng giải quyết vấn đề thực tế. Portfolio có thể bao gồm:
- Side projects (ứng dụng cá nhân, open-source contribution).
- Sản phẩm đã triển khai thực tế (nếu được phép chia sẻ).
- Demo, screenshot, video walkthrough, hoặc link deploy.
Portfolio tốt thường mô tả rõ: mục tiêu dự án, tech stack, kiến trúc tổng quan, thách thức kỹ thuật và cách giải quyết.
GitHub: không chỉ là nơi lưu trữ code mà còn là “dấu vết” hoạt động kỹ thuật:
- Lịch sử commit thể hiện mức độ hoạt động, nhưng chất lượng quan trọng hơn số lượng.
- Cách đặt tên commit, cấu trúc repository, README, test coverage thể hiện tư duy kỹ thuật và tính chuyên nghiệp.
- Tham gia open-source (pull request, issue, discussion) thể hiện khả năng làm việc trong cộng đồng kỹ thuật.
Coding test: là bài kiểm tra lập trình nhằm đánh giá khả năng giải quyết vấn đề, tư duy thuật toán và chất lượng code. Coding test có thể ở dạng:
- Bài toán algorithm & data structure (array, tree, graph, dynamic programming).
- Bài toán gần với thực tế: xử lý file log, xây dựng API đơn giản, thao tác với database.
- Pair programming với interviewer để đánh giá cách suy nghĩ, giao tiếp và refactor code.
Tiêu chí đánh giá thường bao gồm: độ đúng, độ phức tạp (time/space complexity), readability, testability và khả năng tối ưu.
Technical interview: là vòng phỏng vấn chuyên sâu về kỹ thuật, thường kết hợp nhiều dạng:
- Algorithm & data structure: đánh giá nền tảng CS, khả năng phân tích độ phức tạp.
- System design: thiết kế hệ thống scalable, high availability, fault tolerance, lựa chọn kiến trúc và công nghệ phù hợp.
- Practical coding: giải bài toán gần với công việc thực tế, đọc/hiểu/refactor code có sẵn.
- Technical discussion: trao đổi về kinh nghiệm trong các dự án cũ, quyết định kỹ thuật, trade-off đã lựa chọn.
Technical interview tốt không chỉ kiểm tra kiến thức mà còn đánh giá cách ứng viên suy nghĩ, đặt câu hỏi, xử lý tình huống thiếu thông tin và phản hồi khi được gợi ý.
Stakeholder, product requirement, user story và acceptance criteria
Trong phân tích yêu cầu và phát triển sản phẩm, việc sử dụng đúng thuật ngữ giúp team kỹ thuật, product và business hiểu nhau chính xác, giảm misunderstanding và rework.

Stakeholder: là tất cả các bên bị ảnh hưởng hoặc có ảnh hưởng đến sản phẩm:
- External stakeholder: khách hàng, người dùng cuối, đối tác tích hợp hệ thống.
- Internal stakeholder: Product Owner, Product Manager, Business Analyst, QA, Support, Sales, Marketing, Management.
Việc mapping stakeholder giúp xác định ai là người ra quyết định, ai cung cấp yêu cầu, ai chịu trách nhiệm UAT (User Acceptance Testing) và ai chịu ảnh hưởng khi thay đổi tính năng.
Product requirement: là tập hợp yêu cầu ở mức sản phẩm, thường được mô tả trong:
- Product Requirement Document (PRD).
- Business requirement, functional requirement, non-functional requirement (performance, security, usability).
Product requirement tốt cần rõ ràng, đo lường được và gắn với mục tiêu business (tăng conversion rate, giảm churn, tối ưu cost, v.v.).
User story: là cách diễn đạt yêu cầu từ góc nhìn người dùng, theo mẫu “As a … I want … so that …”. Ví dụ:
- “As a registered user, I want to reset my password via email so that I can regain access if I forget it.”
User story giúp team tập trung vào value cho người dùng thay vì chỉ nghĩ về task kỹ thuật. Một user story tốt thường:
- Đủ nhỏ để hoàn thành trong một sprint.
- Có acceptance criteria rõ ràng.
- Không mô tả giải pháp kỹ thuật quá chi tiết, để team kỹ thuật chủ động thiết kế.
Acceptance criteria: là tập hợp điều kiện cụ thể để xác định user story đã hoàn thành và có thể chấp nhận được. Acceptance criteria thường ở dạng:
- Scenario-based (Given – When – Then).
- Danh sách điều kiện logic (ví dụ: “Password must contain at least 8 characters, including 1 uppercase, 1 number, 1 special character”).
Acceptance criteria là cơ sở cho QA viết test case, cho Dev hiểu rõ phạm vi, và cho Product Owner quyết định “Done” hay chưa.
Remote work, outsourcing, freelance và distributed team
Trong mô hình làm việc hiện đại của ngành IT, các thuật ngữ này phản ánh cách tổ chức nhân sự, quy trình giao tiếp và phương thức hợp tác giữa các bên.

Remote work: là hình thức làm việc từ xa, không yêu cầu có mặt thường xuyên tại văn phòng. Đặc trưng:
- Sử dụng công cụ online: Slack, Teams, Zoom, Jira, Confluence, Git, CI/CD.
- Yêu cầu kỹ năng tự quản lý thời gian, tự chủ trong công việc, giao tiếp rõ ràng bằng văn bản.
- Thường áp dụng mô hình asynchronous communication (không phải lúc nào cũng họp real-time).
Outsourcing: là việc một công ty thuê ngoài dịch vụ phát triển phần mềm cho bên thứ ba (vendor). Đặc điểm:
- Hợp đồng có thể theo dạng time & material, fixed price, hoặc dedicated team.
- Yêu cầu quản lý scope, timeline, quality và communication chặt chẽ giữa client và vendor.
- Thường liên quan đến chênh lệch múi giờ, văn hóa, quy trình (Agile, Waterfall, hybrid).
Freelance: là hình thức làm việc tự do theo dự án hoặc theo giờ, không ràng buộc như nhân viên full-time. Trong IT, freelancer có thể:
- Nhận dự án phát triển web/app, thiết kế UI/UX, tư vấn kiến trúc, audit bảo mật.
- Làm việc song song cho nhiều khách hàng, tự thương lượng rate, scope và deadline.
- Cần kỹ năng tự marketing bản thân, quản lý hợp đồng, invoice, và bảo vệ quyền lợi.
Distributed team: là đội ngũ phân tán ở nhiều địa điểm, nhiều múi giờ, có thể kết hợp cả onsite, remote, outsourcing và freelance. Đặc trưng:
- Quy trình làm việc phải được chuẩn hóa: code review, branching strategy, release process.
- Documentation trở nên cực kỳ quan trọng để tránh phụ thuộc vào giao tiếp miệng.
- Thường áp dụng mô hình “follow the sun” để tận dụng múi giờ khác nhau cho development và support.
Trong distributed team, kỹ năng giao tiếp bằng tiếng Anh, khả năng viết rõ ràng, và sự minh bạch trong reporting, tracking progress là yếu tố then chốt để duy trì hiệu quả và niềm tin giữa các thành viên.
Câu hỏi thường gặp về từ điển chuyên ngành Công nghệ thông tin
Từ điển chuyên ngành Công nghệ thông tin giúp người học hệ thống hóa thuật ngữ cốt lõi, từ lớp khái niệm nền tảng đến các mảng chuyên sâu. Người mới nên ưu tiên nhóm từ vựng về máy tính, hệ điều hành, lập trình cơ bản, web và database, kết hợp đọc định nghĩa với ví dụ code và thực hành nhỏ để khắc sâu. Để nhớ nhanh thuật ngữ tiếng Anh, có thể học qua ngữ cảnh thực tế, xây dựng glossary cá nhân, dùng flashcard và luyện viết comment, commit, issue bằng tiếng Anh. Khi kiến thức tăng, nên tổ chức từ vựng theo từng mảng như web, mobile, data, DevOps, security và gắn tag ngữ cảnh. Việc kết hợp từ điển Anh – Việt với tài liệu gốc tiếng Anh giúp vừa hiểu nhanh, vừa đảm bảo độ chính xác kỹ thuật.

Người mới học CNTT nên bắt đầu với nhóm thuật ngữ nào?
Người mới nên ưu tiên nhóm thuật ngữ nền tảng và xuyên suốt nhiều mảng, vì đây là lớp “từ vựng lõi” xuất hiện trong hầu hết tài liệu, khóa học, video và code thực tế. Khi nắm chắc lớp này, việc đọc hiểu tài liệu nâng cao sẽ dễ hơn rất nhiều.
Có thể chia thành các nhóm chính sau, kèm giải thích và ví dụ ngữ cảnh:
- Thuật ngữ về máy tính và hệ điều hành:
- CPU (Central Processing Unit): bộ xử lý trung tâm, thực thi lệnh. Ví dụ: “This algorithm is CPU-intensive”.
- RAM (Random Access Memory): bộ nhớ tạm, lưu dữ liệu khi chương trình đang chạy. Ví dụ: “The app consumes too much RAM”.
- process: tiến trình, một chương trình đang chạy với không gian nhớ riêng. Ví dụ: “Kill the process and restart the service”.
- thread: luồng, đơn vị thực thi nhỏ hơn process, chia sẻ bộ nhớ trong cùng process. Ví dụ: “Use multiple threads to improve performance”.
- file, folder: đơn vị lưu trữ dữ liệu và thư mục chứa file. Ví dụ: “Save the config file in this folder”.
- OS (Operating System): hệ điều hành như Windows, Linux, macOS. Ví dụ: “This tool only supports Linux-based OS”.
- install, update, uninstall: cài đặt, cập nhật, gỡ bỏ phần mềm. Ví dụ: “Install the latest update before running the script”.
- Thuật ngữ lập trình cơ bản:
- variable: biến, dùng để lưu trữ giá trị. Ví dụ:
let count = 0; - function / method: khối lệnh thực hiện một nhiệm vụ. Ví dụ:
function calculateTotal(). - class, object: khái niệm cốt lõi của OOP. Class là “bản thiết kế”, object là “thực thể” được tạo từ class.
- array, list: cấu trúc dữ liệu lưu nhiều phần tử. Ví dụ:
const users = []; - loop (for, while), condition (if, else): điều khiển luồng chương trình.
- bug: lỗi trong chương trình; debug: quá trình tìm và sửa lỗi, thường dùng debugger, log.
- Thuật ngữ web cơ bản:
- client, server: mô hình client–server. Browser thường là client, backend là server.
- browser: Chrome, Firefox, Edge… dùng để truy cập web.
- HTML, CSS, JavaScript: bộ ba nền tảng web front-end.
- request, response: yêu cầu và phản hồi trong giao tiếp HTTP.
- API (Application Programming Interface): giao diện lập trình cho phép hệ thống giao tiếp với nhau.
- Thuật ngữ database cơ bản:
- table: bảng dữ liệu; record (row), field (column).
- primary key: khóa chính, định danh duy nhất mỗi record.
- query: câu truy vấn dữ liệu; thường dùng SQL (SELECT, INSERT, UPDATE, DELETE).
- index: cấu trúc giúp truy vấn nhanh hơn, đổi lại tốn thêm bộ nhớ và chi phí ghi.
Khi bắt đầu, nên kết hợp đọc định nghĩa với xem ví dụ code và thực hành nhỏ (chạy lệnh, viết đoạn script ngắn) để khắc sâu ý nghĩa từng thuật ngữ.
Làm sao nhớ từ vựng tiếng Anh chuyên ngành IT nhanh hơn?
Để ghi nhớ nhanh và lâu, cần kết hợp cả ngữ cảnh thực tế, lặp lại có chủ đích và ứng dụng ngay trong công việc/học tập. Một số cách hiệu quả:
- Học theo ngữ cảnh thực tế:
- Đọc documentation chính thức (ví dụ: docs của framework, thư viện, ngôn ngữ) thay vì chỉ học danh sách từ rời rạc.
- Quan sát thuật ngữ trong code, log, error message:
- Ví dụ: “NullPointerException”, “connection timeout”, “invalid credentials”, “deprecated API”.
- Ghi lại nguyên câu chứa thuật ngữ, không chỉ ghi mỗi từ đơn lẻ, để nhớ cả cách dùng.
- Xây dựng glossary cá nhân:
- Tạo một file (Markdown, Notion, Google Docs…) chứa:
- Thuật ngữ tiếng Anh (giữ nguyên dạng gốc).
- Định nghĩa ngắn gọn, chính xác, ưu tiên theo tài liệu chính thống.
- 1–2 ví dụ thực tế (đoạn code, câu log, trích dẫn từ docs).
- Liên kết đến tài liệu gốc để tra cứu sâu hơn khi cần.
- Cập nhật glossary liên tục khi gặp thuật ngữ mới trong dự án hoặc khi học công nghệ mới.
- Dùng flashcard (Anki, Quizlet…) với cấu trúc:
- Mặt trước: thuật ngữ + 1 câu hỏi ngắn (ví dụ: “What is a race condition?”).
- Mặt sau: định nghĩa + 1 ví dụ ngắn (code hoặc tình huống thực tế).
- Áp dụng spaced repetition (lặp lại ngắt quãng) để tối ưu hóa trí nhớ dài hạn.
- Thực hành viết comment, commit message, issue bằng tiếng Anh:
Có nên học thuật ngữ CNTT theo từng mảng như lập trình, dữ liệu hay bảo mật không?
Cách học theo mảng chuyên môn giúp xây dựng kiến thức sâu, tránh tình trạng biết nhiều từ rời rạc nhưng không hiểu hệ thống. Tuy nhiên, cần có chiến lược để không bị “ngợp” vì số lượng thuật ngữ quá lớn.
- Học nhóm nền tảng chung trước:
- Máy tính, hệ điều hành, lập trình cơ bản, web cơ bản, database cơ bản.
- Đây là lớp từ vựng “dùng chung” cho mọi mảng: web, mobile, data, DevOps, security, AI/ML…
- Sau đó chọn một mảng chính và đào sâu:
- Web: HTTP, REST, cookie, session, cache, CDN, CORS, middleware, microservice.
- Mobile: activity, fragment, lifecycle, intent, storyboard, constraint layout.
- Data / Data Engineering: ETL, data pipeline, data warehouse, OLTP, OLAP, batch, streaming.
- DevOps: container, image, registry, orchestration, deployment, scaling, monitoring.
- Security: encryption, hashing, token, vulnerability, exploit, XSS, CSRF, SQL injection.
- Ghi chú rõ ngữ cảnh cho mỗi thuật ngữ:
- Nhiều thuật ngữ trùng tên nhưng nghĩa khác tùy mảng:
- token trong security (JWT, access token) khác với token trong NLP.
- pipeline trong DevOps (CI/CD pipeline) khác với pipeline trong data (data pipeline).
- Khi ghi chú, nên thêm tag mảng:
[web], [security], [data] để tránh nhầm.
- Một cách tổ chức từ vựng theo mảng:
Thuật ngữ IT nào thường xuất hiện trong tài liệu lập trình và phỏng vấn xin việc?
Trong tài liệu lập trình, coding interview và system design interview, một số nhóm thuật ngữ xuất hiện với tần suất rất cao. Nắm chắc các nhóm này giúp đọc đề, hiểu yêu cầu và trình bày ý tưởng rõ ràng hơn.
- Thuật toán và cấu trúc dữ liệu:
- array, linked list, stack, queue, hash map (hash table), tree, graph.
- recursion: hàm tự gọi lại chính nó; cần hiểu khái niệm base case, recursive case, call stack.
- complexity (time complexity, space complexity): độ phức tạp thuật toán, thường biểu diễn bằng Big-O: O(1), O(log n), O(n), O(n log n), O(n²)…
- Các thuật ngữ đi kèm: brute force, optimization, trade-off, edge case.
- OOP và design:
- class, object, interface, abstract class.
- inheritance, polymorphism, encapsulation, abstraction.
- design pattern: singleton, factory, strategy, observer, repository…
- Các khái niệm bổ trợ: coupling, cohesion, dependency, dependency injection, composition over inheritance.
- Web và API:
- REST, endpoint, request, response, JSON, XML.
- authentication (xác thực), authorization (phân quyền) – hai khái niệm thường bị nhầm.
- status code: 200, 201, 400, 401, 403, 404, 500… và ý nghĩa từng nhóm (2xx, 4xx, 5xx).
- Các thuật ngữ liên quan: header, body, query parameter, path parameter, rate limiting, throttling.
- Quy trình phát triển:
- Git, branch, merge, rebase, pull request, commit, conflict.
- CI/CD (Continuous Integration / Continuous Delivery or Deployment): pipeline tự động build, test, deploy.
- unit test, integration test, end-to-end test, test coverage.
- Các khái niệm quy trình: agile, sprint, backlog, code review, release, rollback.
Khi chuẩn bị phỏng vấn, nên luyện cách giải thích thuật ngữ bằng tiếng Anh một cách ngắn gọn, có ví dụ, thay vì chỉ hiểu mơ hồ. Việc này giúp trả lời rõ ràng hơn khi được hỏi “What is X?” hoặc “Can you explain Y?”.
Nên dùng từ điển chuyên ngành CNTT Anh – Việt hay đọc tài liệu tiếng Anh gốc?
Cách hiệu quả là kết hợp cả hai theo hướng dùng từ điển như “bệ phóng” ban đầu, sau đó dần chuyển trọng tâm sang tài liệu tiếng Anh gốc để đảm bảo độ chính xác kỹ thuật.
- Dùng từ điển chuyên ngành Anh – Việt:
- Giúp có “điểm tựa” ban đầu, hiểu nhanh ý chính khi mới tiếp xúc với một khái niệm khó.
- Phù hợp khi cần tra cứu nhanh trong lúc học hoặc làm bài tập, đặc biệt ở giai đoạn nền tảng.
- Tuy nhiên, cần lưu ý: một số thuật ngữ dịch sang tiếng Việt có thể không phản ánh đầy đủ sắc thái kỹ thuật hoặc ít được dùng trong môi trường làm việc thực tế.
- Luôn đối chiếu với tài liệu tiếng Anh gốc:
- Documentation chính thức, specification, RFC, blog kỹ thuật từ các hãng lớn thường là nguồn định nghĩa chuẩn.
- Khi gặp thuật ngữ mới:
- Tra nghĩa cơ bản bằng từ điển chuyên ngành.
- Đọc thêm 1–2 đoạn trong tài liệu gốc để hiểu cách dùng trong ngữ cảnh thực tế.
- Cách này giúp tránh hiểu sai khái niệm, đặc biệt với các thuật ngữ phức tạp như eventual consistency, idempotent, race condition, deadlock.
- Giữ nguyên thuật ngữ tiếng Anh trong ghi chú và giao tiếp kỹ thuật: