From Coder to Shipper
Đưa một dự án đi trọn vẹn từ “tôi có một ý tưởng” đến “một người lạ trên internet có thể dùng được nó.”
12 ngày · 3 lần mỗi tuần · khoảng 1 tháng · mỗi buổi 2–3 giờ
Khóa học dành cho ai
Vài lời giới thiệu thẳng thắn trước khi vào lịch học.
Bạn mang đến phần code. Phần còn lại của con đường, khóa học xây cho bạn.
Bạn có sẵn
Một lập trình viên thực thụ: tự tin với JavaScript, đọc được Python, đã từng dùng cd và ls. Bạn viết và hiểu code — phần đó đã xong.
Bạn còn thiếu
Mọi thứ nằm giữa “code xong” và “trực tuyến”: máy chủ, tên miền, DNS, HTTPS, cơ sở dữ liệu, container, vận hành — cả con đường đưa sản phẩm lên đời.
Những gì bạn thực sự làm được
Sở hữu VPS từ A đến Z
Thiết lập, bảo mật, và giữ nó chạy cả khi bạn ngủ.
Tên miền kèm niềm tin
Tên miền, DNS và chứng chỉ HTTPS tự gia hạn mỗi 90 ngày.
Một ứng dụng web thực thụ
Flask cùng SQLite, đóng gói bằng Docker, chạy sau nginx.
Tính năng có giao dịch tiền
Thanh toán, email giao dịch và AI, tất cả sau một API duy nhất.
Phát hiện trước cả người dùng
Kiểm tra uptime, metrics, dashboard, cảnh báo.
Một sản phẩm hoàn chỉnh
Đồ án capstone: ý tưởng của chính bạn, chạy trên chính tên miền của bạn.
Toàn cảnh
Một sơ đồ duy nhất, lặp đi lặp lại cho đến khi thành phản xạ.
Toàn bộ con đường trong một bức tranh
Mỗi ngày học thêm một bước mà bạn có thể tự kể lại được.
Năm nguyên tắc đằng sau mỗi slide
Toàn bộ con đường chính là kỹ năng
Ý tưởng → terminal → VPS → DNS → nginx → HTTPS → trực tuyến. Bạn phải kể lại được mọi bước.
Thô trước, trừu tượng sau
Cài bằng apt, chạy bằng systemd, sửa file bằng tay — rồi mới để Docker đóng gói tất cả.
AI tăng tốc, bạn vận hành
AI viết nhiều phần code. Bạn đọc, rà soát, chỉnh sửa, đưa lên và chịu trách nhiệm.
Một ý mỗi slide
Demo trực tiếp trong playground: curl endpoint, xem log, cố tình làm hỏng.
Một sản phẩm thật mỗi ngày
Một URL truy cập được, một dịch vụ sống qua restart, một cert tự gia hạn.
“Toàn bộ con đường chính là kỹ năng. Nếu bạn kể lại được mọi bước từ ý tưởng đến trực tuyến, bạn là một shipper.”
Nền tảng học tập
Một lần đăng nhập, đủ mọi thứ cho cả khóa học.
Một nền tảng, ba công cụ
Mọi bộ slide của khóa học đều được đăng trên đúng nền tảng đó.
Môi trường playground
Sandbox trực tuyến mô phỏng đúng stack của khóa học — terminal, editor, hộp kiểu VPS. Copy code từ bất kỳ slide nào vào luôn.
Bài tập chấm tự động
Kết quả đạt hay chưa ngay sau mỗi bài tập — tự do luyện tập giữa các buổi trong tuần.
Chatbot hướng dẫn
Hiểu cả khóa học: giải thích mọi slide, gợi ý khi bạn bí, không bao giờ cho đáp án.
Buổi terminal đầu tiên của bạn
Một buổi diễn ra như thế nào
-
1
Ôn lại — khoảng 15 phút
Chatbot tóm tắt kết quả bài tập; gỡ nút thắt còn lại từ ngày trước.
-
2
Slide — 60–90 phút
Từ một đến ba bộ slide liên quan, một ý mỗi slide, demo trực tiếp các điểm chính.
-
3
Thực hành — 45–60 phút
Xây sản phẩm của ngày trong playground; bạn tự kể lại con đường.
-
4
Bài tập — 15 phút
Chấm tự động, nộp trước buổi sau, ôn trước cho slide của ngày mai.
Ứng dụng bạn sẽ xây xong vào ngày 6
Một route Flask, một lần đọc cơ sở dữ liệu, một câu trả lời JSON — tô màu đúng như trong slide.
# app.py — born day 4, live by day 6
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api/health")
def health():
n = 42
return jsonify(ok=True, users=n)
Buổi terminal đưa nó lên đời
Commit, push, build lại, kiểm tra — đúng bốn động tác, lặp lại mỗi ngày.
# day 6 — the first full ship
git add app/ && git commit -m "wire up /api/health"
git push origin main
docker compose up -d
curl -s https://shop.example.com/api/health
{"ok": true, "users": 42}
Toàn bộ trang web trong một file
Compose khai báo mục tiêu; máy giữ cho thực tế đúng với nó.
# the whole site, one file
services:
web:
image: shop:v2
ports:
- "8080:80"
db:
image: sqlite-store
volumes:
- data:/var/lib/shop
volumes:
data:
Lịch 12 ngày
27 bộ slide chuyên đề trong 11 ngày có bài giảng. Ngày 12 là đêm tổng kết.
12 ngày, 4 tuần, 3 buổi mỗi tuần
Chỉ 11 ngày có bài giảng — ngày 12 dành riêng cho đêm tổng kết.
Tuần 1–2: dựng stack
| Ngày | Chủ đề | Bộ slide |
|---|---|---|
| 1 | Mở màn & công cụ | speakers (1 h) · terminal · text-editor |
| 2 | Bên phía client | frontend |
| 3 | Ngôn ngữ | python-basics · python-libs |
| 4 | App kèm dữ liệu | flask-http · sqlite |
| 5 | Lịch sử & đóng gói | git · python-advanced · package-managers |
| 6 | Đóng hộp, dựng cổng | docker · nginx |
Tuần 3–4: lên đời, rồi trình diễn
| Ngày | Chủ đề | Bộ slide |
|---|---|---|
| 7 | Tên, địa chỉ, niềm tin | internet · systemd |
| 8 | Bảo mật & kiếm tiền | backend-security · email · payments |
| 9 | AI kèm vận hành | llama-server · observability · vpns |
| 10 | Vượt xa, tốc độ cao | cdn · k8s · ci-cd · object-storage · message-queue |
| 11 | Chuẩn bị capstone | game-dev · mobile-dev · capstone prep |
| 12 | Ngày capstone — không bài giảng | trình diễn · 2–3 khách mời · nhà tuyển dụng |
“Mười một ngày xây dựng. Một ngày trình diễn — với các nhà tuyển dụng đang ngồi trong phòng.”
Đồ án capstone
Không phải bài thi. Mà là một sản phẩm.
Từ “tôi có ý tưởng” đến một URL trực tuyến
Nó là gì
Dự án của chính bạn, trọn vẹn: tên miền thật, khóa HTTPS, Flask cùng SQLite sau nginx, chạy trong Docker trên VPS của bạn.
Bạn đến đó bằng cách nào
Bài tập và thực hành mỗi ngày đều hướng tới nó. Ngày 11 dành riêng để chuẩn bị capstone. Ngày 12 là sân khấu.
Không bài giảng. Chỉ có trình diễn.
Trình diễn capstone của bạn
Từ ý tưởng đến trang web trực tuyến, do chính bạn kể lại. Cả khóa học cùng xem.
2–3 khách mời
Những người thực chiến nói về ship, scale và sự nghiệp — góc nhìn từ phía ngành.
Gặp nhà tuyển dụng tiềm năng
Gặp gỡ có sắp xếp với các công ty đã thấy bạn xây được gì trong 12 ngày.
Đến lượt bạn
Sẵn sàng ship chưa?
12 ngày, 3 lần mỗi tuần, khoảng 1 tháng. Phía bên kia: một sản phẩm trực tuyến trên chính tên miền của bạn.
Toàn bộ tài liệu nằm trên nền tảng khóa học — kèm playground, bài tập chấm tự động và chatbot.
From coder to shipper.
12 ngày. Ba buổi mỗi tuần. Một sản phẩm trực tuyến.