Lộ trình học lập trình
Chọn một ngôn ngữ làm nền tảng trước, rồi học thêm ngôn ngữ thứ hai khi đã quen tư duy lập trình. Mỗi mục dưới đây gồm thứ tự học, tài liệu chính thức và bài tập gợi ý.
Gợi ý thứ tự
- Git và dòng lệnh: để quản lý mã và đọc được hướng dẫn cài đặt.
- Python: cú pháp đơn giản, phù hợp học biến, hàm, vòng lặp, cấu trúc dữ liệu.
- JavaScript và TypeScript: để làm web và ứng dụng di động.
- SQL: để hiểu cách lưu và truy vấn dữ liệu, cần cho mọi backend.
- Một ngôn ngữ có kiểu tĩnh (Go, Java hoặc C#): để hiểu kiểu dữ liệu, con trỏ và quản lý bộ nhớ ở mức sâu hơn.
Python
Tài liệu
Thứ tự học
- Kiểu dữ liệu, biến, nhập xuất, toán tử
- Câu lệnh rẽ nhánh, vòng lặp, hàm
- List, dict, set, tuple và comprehension
- Module, file, xử lý ngoại lệ
- Virtual environment và thư viện (pip)
- Làm một API nhỏ bằng FastAPI
Bài tập gợi ý
Viết chương trình quản lý chi tiêu dòng lệnh; đọc file CSV và tính tổng theo tháng; viết bot nhỏ đọc dữ liệu từ API.
JavaScript và TypeScript
Tài liệu
Thứ tự học
- HTML và CSS cơ bản để hiểu trang web hiển thị thế nào
- JavaScript: biến, hàm, mảng, đối tượng, Promise và async/await
- DOM và xử lý sự kiện
- TypeScript: kiểu, interface, generic
- React hoặc Expo Router để làm giao diện thực tế
Bài tập gợi ý
Trang đếm ký tự; ứng dụng todo lưu bằng localStorage; màn hình danh sách gọi API và hiển thị trạng thái loading, lỗi.
SQL và PostgreSQL
Tài liệu
Thứ tự học
- SELECT, WHERE, ORDER BY, LIMIT
- JOIN và GROUP BY, HAVING
- Khoá chính, khoá ngoại, ràng buộc
- Index và đọc kế hoạch truy vấn (EXPLAIN)
- Row Level Security và migration
Git
Tài liệu
Những lệnh dùng hằng ngày
git status
git switch -c feature/ten-tinh-nang
git add -p
git commit -m "Mô tả ngắn gọn thay đổi"
git pull --rebase origin main
git push -u origin feature/ten-tinh-nang
Cách học hiệu quả
- Mỗi ngày code ít nhất 30 phút, đều đặn hơn là học dồn một buổi dài.
- Tự gõ lại ví dụ thay vì copy, rồi thử sửa để xem chuyện gì xảy ra.
- Đưa một dự án nhỏ của bản thân lên GitHub sớm, dù còn đơn sơ.
- Đọc lỗi từ đầu đến cuối trước khi hỏi người khác; ghi lại lỗi đã gặp để tra lại sau.