Learn C Programming from Scratch: 12-Part Series
Tự học lập trình C từ số 0: Lộ trình chi tiết 12 phần
This C programming guide is currently only available in Vietnamese. Please switch the language toggle (🇻🇳) to read the full guide.
C is the bedrock of modern software. This comprehensive 12-part series takes you from compiler installation to advanced pointers, memory management, data structures, preprocessor mastery, and an interactive browser-based visualizer — with professional debugging tools along the way.
Ngôn ngữ C là nền móng vững chắc của lập trình hệ thống, hệ điều hành và khoa học máy tính. Học C giúp bạn rèn luyện tư duy tối ưu hóa tài nguyên phần cứng, hiểu sâu sắc cơ chế hoạt động của bộ nhớ RAM và thiết lập một nền tảng lập trình cực kỳ vững vàng trước khi bước sang các ngôn ngữ khác.
Chuỗi bài viết này được thiết kế theo lộ trình khoa học từ cơ bản đến nâng cao, đi kèm các khung giả lập IDE trực quan và công cụ tương tác ngay trên trình duyệt để việc học lập trình không còn khô khan.
Lộ trình bài học chi tiết:
Bài 1: Cài đặt môi trường, Compiler Flags, Makefile & GDB
Cài đặt GCC/Clang, VS Code, cờ biên dịch chuyên nghiệp (-Wall, -Wextra, -g), tự động hóa build với Makefile và gỡ lỗi cơ bản bằng GDB.
Bài 2: Cú pháp cơ bản, Biến, Kiểu dữ liệu & Nhập xuất
Cấu trúc chương trình C, biến, scanf/printf, format specifiers, type modifiers, sizeof, enum, hằng số và ép kiểu dữ liệu.
Bài 3: Toán tử, Thứ tự ưu tiên & Phép toán Bitwise
Toán tử số học, so sánh, logic. Bảng thứ tự ưu tiên 15 cấp. Bitwise AND/OR/XOR/NOT/Shift, Endianness và ứng dụng thực tế (RGB packing, IP, flags).
Bài 4: Cấu trúc rẽ nhánh & Vòng lặp: Nền tảng thuật toán
Câu lệnh điều kiện (if-else, switch), vòng lặp (for, while, do-while), short-circuit evaluation, jump tables và goto cleanup pattern.
Bài 5: Hàm, Đệ quy & Phạm vi biến
Khai báo hàm, prototype, truyền tham trị, biến cục bộ/toàn cục/static, đệ quy (factorial, fibonacci), variadic functions và con trỏ hàm callback.
Bài 6: Mảng, Chuỗi ký tự & Xử lý văn bản
Mảng 1D/2D, row-major layout, C strings, string.h (strlen, strcpy, strtok...), nhập chuỗi an toàn với fgets, kỹ thuật xử lý chuỗi nâng cao.
Bài 7: Cấu trúc Struct, Union, Typedef & Bit-fields
Kiểu dữ liệu phức hợp struct, padding/alignment, pragma pack, bit-fields, typedef, union và so sánh bản chất lưu trữ RAM.
Bài 8: Làm chủ Con Trỏ (Pointers) từ cơ bản đến nâng cao
Địa chỉ bộ nhớ, con trỏ cấp 1/2, pointer arithmetic, const/restrict, con trỏ hàm, giả lập Vtable OOP và các lỗi con trỏ nguy hiểm.
Bài 9: Cấp phát bộ nhớ động, Quản lý bộ nhớ & Debug Tools
Process memory layout, Stack vs Heap, malloc/calloc/realloc/free, Valgrind, AddressSanitizer và quy trình kiểm tra bộ nhớ chuyên nghiệp.
Bài 10: Cấu trúc dữ liệu, Big O & CPU Cache Locality
Linked List, Stack, Queue từ scratch. Phân tích Big O ($O(1)$ đến $O(N!)$), CPU cache locality, space-time trade-off.
Bài 11: Lập trình đa tệp, Preprocessor & Công cụ Build
Header/source files, header guards, extern/static linkage, C preprocessor (#define, #ifdef, stringification), conditional compilation và Makefile nâng cao.
Bài 12: Trực quan hoá Cấu trúc dữ liệu tương tác trong trình duyệt
Bài học tổng kết. Mô phỏng hoạt ảnh con trỏ liên kết chạy trực tiếp trên web để trực quan hóa cách node hoạt động.