Bản đồ dễ hiểu về cách website hoạt động, nên học gì trước và cách thực hành bằng một sản phẩm nhỏ.
Phát triển web là việc tạo trải nghiệm mà mọi người sử dụng qua trình duyệt. Bạn không cần học tất cả ngôn ngữ hay framework. Hãy hiểu hành trình của một request trước, rồi bổ sung kỹ năng theo nhu cầu của dự án.
flowchart LR
Person[Người dùng] --> Browser[Trình duyệt: HTML, CSS, JavaScript]
Browser -->|HTTPS request| API[Backend / API]
API --> DB[(Cơ sở dữ liệu)]
DB --> API
API -->|JSON hoặc HTML response| Browser
Code[Git repository] --> Pipeline[Build và deploy]
Pipeline --> Browser
Hãy hình dung một nhà hàng: trang web là khu vực phục vụ, API là nhân viên nhận yêu cầu, backend là bếp, còn database là kho và sổ đơn hàng. Ví dụ này không hoàn hảo nhưng giúp mỗi thành phần có một nhiệm vụ rõ ràng.
Tìm hiểu URL là gì, DNS tìm server ra sao và HTTP mang request/response như thế nào. Dùng Developer Tools của trình duyệt để quan sát một trang thật. Nhờ vậy, hành vi của framework sau này sẽ bớt “ma thuật”.
HTML tạo ý nghĩa và cấu trúc. CSS điều khiển bố cục và hình thức. JavaScript phản hồi thao tác của người dùng và thay đổi trang.
| Công cụ | Câu hỏi nó trả lời | Bài tập đầu tiên |
|---|---|---|
| HTML | Trang có nội dung gì? | Tiêu đề, văn bản, link, form |
| CSS | Trang trông ra sao và thích nghi thế nào? | Khoảng cách, màu, card responsive |
| JavaScript | Điều gì xảy ra sau thao tác? | Click nút và kiểm tra form |
Backend xử lý các quy tắc không nên đặt trong trình duyệt: xác thực người dùng, tính giá, gọi dịch vụ khác hoặc lưu dữ liệu. Hãy bắt đầu bằng một ngôn ngữ bạn có thể chạy thoải mái; JavaScript, Python, Java, Go, PHP, Ruby và C# đều có thể phục vụ web request.
PostgreSQL và MySQL là lựa chọn mặc định tốt khi dữ liệu có quan hệ rõ. MongoDB phù hợp với record linh hoạt trong một số trường hợp. Redis thường dùng cho dữ liệu tạm và cache tốc độ cao. Chọn theo bài toán, không theo độ nổi tiếng.
API là thỏa thuận để hai phần mềm giao tiếp. JSON phổ biến vì biểu diễn object và array gọn. XML vẫn hữu ích trong một số hệ thống doanh nghiệp hoặc hệ thống nặng về tài liệu.
{
"id": 42,
"name": "Dự án thực hành đầu tiên",
"completed": false
}
Git lưu lịch sử thay đổi và hỗ trợ cộng tác. Deployment biến một phiên bản đã kiểm tra thành website người khác có thể truy cập. Tự động hóa nên chạy các bước kiểm tra trước khi publish để thay trí nhớ và thao tác tay bằng quy trình lặp lại.
Tạo một learning tracker nhỏ:
Dừng ở bước nào bạn vẫn có một sản phẩm dùng được. Mỗi bước sau thêm một lớp mà không bắt bạn khởi động dự án hoàn toàn mới.
Framework, state management nâng cao, authentication provider, queue, cloud, Canvas và SVG quan trọng khi sản phẩm cần. Chúng là nhánh mở rộng, không phải điều kiện để bắt đầu. Mô hình trình duyệt → request → server → dữ liệu sẽ dùng được với nhiều công nghệ.
Bạn sẵn sàng học topic con khi trả lời được: code này chạy ở đâu, dữ liệu nào đi vào, kết quả nào đi ra và làm sao biết nó hoạt động đúng?
Khởi tạo một dự án Next.js từ đầu và hiểu về App Router.
Browser resolve domain qua DNS, mở kết nối bảo vệ bằng HTTPS, gửi HTTP request, nhận resource từ server/CDN rồi render; JavaScript có thể request thêm data.
Thuật ngữ web dễ hiểu hơn khi nhóm theo hành trình: client resolve domain qua DNS, mở network connection, gửi HTTP request, nhận response và render resource được xác định bằng URL.