learning.
learning4 min read

learning · giáo trình tự học cho lập trình viên

Bộ giáo án tự học viết theo một template cố định — mỗi bài có mục tiêu, cây file, walkthrough, pitfalls, bài tập và đáp án. Dành cho người tự học có kỷ luật, muốn ra được sản phẩm thật.

T\u1ef1 h\u1ecdc c\u00f3 k\u1ef7 lu\u1eadt \u2014 nh\u1ecbp c\u1ee7a ri\u00eang b\u1ea1n, v\u1eabn ra s\u1ea3n ph\u1ea9m

M\u00ecnh nh\u1edb l\u1ea7n \u0111\u1ea7u t\u1ef1 h\u1ecdc m\u1ed9t framework l\u1ea1, kh\u00f4ng c\u00f3 ai ng\u1ed3i c\u1ea1nh \u0111\u1ec3 h\u1ecfi. M\u00ecnh m\u1edf m\u01b0\u1eddi c\u00e1i tab, \u0111\u1ecdc ba quy\u1ec3n s\u00e1ch song song, l\u00e0m theo hai kh\u00f3a YouTube \u2014 v\u00e0 sau hai tu\u1ea7n, m\u00ecnh v\u1eabn kh\u00f4ng build n\u1ed5i m\u1ed9t th\u1ee9 ch\u1ea1y \u0111\u01b0\u1ee3c. V\u1ea5n \u0111\u1ec1 kh\u00f4ng ph\u1ea3i l\u00e0 thi\u1ebfu t\u00e0i li\u1ec7u. V\u1ea5n \u0111\u1ec1 l\u00e0 m\u00ecnh thi\u1ebfu m\u1ed9t b\u1ea3n \u0111\u1ed3 \u2014 th\u1ee9 g\u00ec c\u1ea7n \u0111\u1ecdc tr\u01b0\u1edbc, th\u1ee9 g\u00ec \u0111\u1ec3 sau, v\u00e0 l\u00e0m sao bi\u1ebft m\u00ecnh \u0111\u00e3 hi\u1ec3u th\u1eadt s\u1ef1. Th\u01b0 vi\u1ec7n gi\u00e1o \u00e1n n\u00e0y ch\u00ednh l\u00e0 c\u00e1i b\u1ea3n \u0111\u1ed3 \u0111\u00f3 \u2014 phi\u00ean b\u1ea3n m\u00e0 m\u00ecnh \u01b0\u1edbc m\u00ecnh c\u00f3 h\u1ed3i \u0111\u00f3.

B\u1ea1n \u0111ang \u0111\u1ecdc trang \u0111\u1ea7u c\u1ee7a m\u1ed9t th\u01b0 vi\u1ec7n gi\u00e1o \u00e1n t\u1ef1 h\u1ecdc. M\u1ecdi series \u1edf \u0111\u00e2y \u0111\u01b0\u1ee3c vi\u1ebft theo m\u1ed9t template c\u1ed1 \u0111\u1ecbnh \u2014 b\u1ea1n bi\u1ebft tr\u01b0\u1edbc m\u1ed7i b\u00e0i s\u1ebd c\u00f3 g\u00ec, ph\u1ea3i l\u00e0m g\u00ec, v\u00e0 l\u00e0m sao bi\u1ebft m\u00ecnh \u0111\u00e3 l\u00e0m \u0111\u00fang.

V\u00ec sao h\u1ecdc \u1edf \u0111\u00e2y

B\u1ea1n \u0111\u00e3 bao gi\u1edd \u0111\u00f3ng m\u1ed9t kh\u00f3a h\u1ecdc gi\u1eefa ch\u1eebng ch\u1ec9 v\u00ec kh\u00f4ng bi\u1ebft m\u00ecnh \u0111ang \u1edf \u0111\u00e2u trong l\u1ed9 tr\u00ecnh ch\u01b0a? Ph\u1ea7n n\u00e0y n\u00f3i v\u1ec1 ba th\u1ee9 m\u00e0 th\u01b0 vi\u1ec7n n\u00e0y c\u1ed1 t\u00ecnh thi\u1ebft k\u1ebf \u0111\u1ec3 b\u1ea1n kh\u00f4ng b\u1ecf gi\u1eefa ch\u1eebng l\u1ea7n n\u1eefa.

  • Nh\u1ecbp c\u1ee7a ri\u00eang b\u1ea1n. Kh\u00f4ng l\u1edbp h\u1ecdc, kh\u00f4ng k\u1ef3 thi \u0111\u00e8, kh\u00f4ng ph\u1ea3i \u0111u\u1ed5i k\u1ecbp ai. B\u1ea1n d\u1eebng l\u1ea1i bao l\u00e2u c\u0169ng \u0111\u01b0\u1ee3c, mi\u1ec5n l\u00e0 cu\u1ed1i series c\u00f3 s\u1ea3n ph\u1ea9m ch\u1ea1y \u0111\u01b0\u1ee3c tr\u00ean m\u00e1y m\u00ecnh.
  • T\u1ef1 ch\u1ea5m \u0111i\u1ec3m b\u1ea3n th\u00e2n. M\u1ed7i b\u00e0i k\u00e8m ph\u1ea7n "How to verify" \u2014 c\u00e1ch b\u1ea1n t\u1ef1 ki\u1ec3m tra k\u1ebft qu\u1ea3 m\u00e0 kh\u00f4ng c\u1ea7n ai duy\u1ec7t h\u1ed9.
  • \u0110i t\u1eeb th\u1ef1c t\u1ebf, kh\u00f4ng l\u00fd thuy\u1ebft su\u00f4ng. Nghe c\u00f3 v\u1ebb s\u00e1o r\u1ed7ng, nh\u01b0ng \u00fd m\u00ecnh r\u1ea5t c\u1ee5 th\u1ec3: m\u1ed7i series g\u1eafn v\u1edbi m\u1ed9t d\u1ef1 \u00e1n c\u00f3 th\u1eadt \u2014 build game Sudoku b\u1eb1ng C++ + ImGui, vi\u1ebft engine pixel art b\u1eb1ng L\u00d6VE, deploy h\u1ec7 th\u1ed1ng FastAPI l\u00ean VPS\u2026 B\u1ea1n h\u1ecdc b\u1eb1ng c\u00e1ch l\u00e0m, r\u1ed3i m\u1edbi \u0111\u1ecdc l\u1ea1i \u0111\u1ec3 hi\u1ec3u v\u00ec sao n\u00f3 ch\u1ea1y.

H\u1ecdc nh\u01b0 th\u1ebf n\u00e0o

Tu\u1ea7n tr\u01b0\u1edbc m\u1ed9t ng\u01b0\u1eddi b\u1ea1n nh\u1eafn m\u00ecnh: "tao \u0111\u1ecdc xong b\u00e0i 3 r\u1ed3i m\u00e0 sao ch\u1ea1y kh\u00f4ng ra gi\u1ed1ng m\u00e0y?" \u2014 h\u00f3a ra b\u1ea1n \u1ea5y \u0111\u00e3 b\u1ecf qua b\u01b0\u1edbc setup \u1edf b\u00e0i 1 v\u00ec "th\u1ea5y quen r\u1ed3i". N\u0103m b\u01b0\u1edbc d\u01b0\u1edbi \u0111\u00e2y l\u00e0 \u0111\u1ec3 b\u1ea1n kh\u00f4ng ph\u1ea3i g\u1eedi tin nh\u1eafn \u0111\u00f3 cho ai.

  1. \u0110\u1ecdc preface c\u1ee7a series tr\u01b0\u1edbc \u2014 bi\u1ebft series n\u00e0y d\u1ea1y g\u00ec, \u0111\u1ed1i t\u01b0\u1ee3ng l\u00e0 ai, v\u00e0 s\u1ea3n ph\u1ea9m cu\u1ed1i c\u00f9ng tr\u00f4ng th\u1ebf n\u00e0o.
  2. Setup m\u00f4i tr\u01b0\u1eddng theo \u0111\u00fang ph\u1ea7n "File tree" c\u1ee7a b\u00e0i 1 \u2014 \u0111\u1eebng skip, v\u00ec c\u00e1c b\u00e0i sau gi\u1ea3 \u0111\u1ecbnh b\u1ea1n c\u00f3 \u0111\u00fang c\u1ea5u tr\u00fac \u0111\u00f3. M\u00ecnh \u0111\u00e3 t\u1eebng skip v\u00e0 ph\u1ea3i quay l\u1ea1i s\u1eeda \u1edf b\u00e0i 4 \u2014 m\u1ea5t nguy\u00ean m\u1ed9t bu\u1ed5i t\u1ed1i.
  3. \u0110\u1ecdc t\u1eebng b\u00e0i theo th\u1ee9 t\u1ef1 \u2014 m\u1ed7i b\u00e0i c\u00f3 10 m\u1ee5c c\u1ed1 \u0111\u1ecbnh:
    • M\u1ee5c ti\u00eau \u2014 b\u00e0i n\u00e0y ph\u1ea3i l\u00e0m \u0111\u01b0\u1ee3c g\u00ec
    • File tree \u2014 sau b\u00e0i n\u00e0y repo tr\u00f4ng th\u1ebf n\u00e0o
    • N\u1ed9i dung c\u1ea7n h\u1ecdc \u2014 ki\u1ebfn th\u1ee9c t\u00f3m t\u1eaft
    • C\u00e1ch l\u00e0m \u2014 h\u01b0\u1edbng d\u1eabn step-by-step
    • Key learning \u2014 b\u00e0i h\u1ecdc ch\u1ed1t l\u1ea1i
    • How to verify \u2014 t\u1ef1 ki\u1ec3m tra
    • Pitfalls \u2014 sai l\u1ea7m th\u01b0\u1eddng g\u1eb7p
    • T\u1ef1 h\u1ecdc \u2014 \u0111\u1ecdc th\u00eam
    • B\u00e0i t\u1eadp \u2014 m\u1edf r\u1ed9ng
    • \u0110\u00e1p \u00e1n \u2014 g\u1ee3i \u00fd sau khi b\u1ea1n t\u1ef1 th\u1eed
  4. L\u00e0m b\u00e0i t\u1eadp tr\u01b0\u1edbc khi m\u1edf \u0110\u00e1p \u00e1n. Nghe \u0111\u01a1n gi\u1ea3n, nh\u01b0ng \u0111\u00e2y l\u00e0 ch\u1ed7 nhi\u1ec1u ng\u01b0\u1eddi tr\u01b0\u1ee3t nh\u1ea5t. N\u1ebfu b\u00ed, \u0111\u1ecdc Pitfalls tr\u01b0\u1edbc \u2014 th\u01b0\u1eddng c\u00e2u tr\u1ea3 l\u1eddi \u0111\u00e3 n\u1eb1m \u0111\u00e2u \u0111\u00f3 trong danh s\u00e1ch sai l\u1ea7m th\u01b0\u1eddng g\u1eb7p.
  5. Verify tr\u01b0\u1edbc khi sang b\u00e0i ti\u1ebfp theo. N\u1ebfu test kh\u00f4ng pass, \u0111\u1eebng \u0111i ti\u1ebfp. M\u00ecnh bi\u1ebft c\u1ea3m gi\u00e1c mu\u1ed1n l\u01b0\u1edbt nhanh \u0111\u1ec3 th\u1ea5y m\u00ecnh "ti\u1ebfn b\u1ed9" \u2014 nh\u01b0ng tin m\u00ecnh \u0111i, m\u1ed9t l\u1ed7 h\u1ed5ng \u1edf b\u00e0i 2 s\u1ebd th\u00e0nh c\u01a1n \u00e1c m\u1ed9ng \u1edf b\u00e0i 7.

M\u1ee5c ti\u00eau c\u1ee7a b\u1ea1n sau khi xong m\u1ed9t series

M\u1ed9t series xong kh\u00f4ng c\u00f3 ngh\u0129a l\u00e0 b\u1ea1n \u0111\u00e3 \u0111\u1ecdc h\u1ebft m\u1ecdi b\u00e0i \u2014 n\u00f3 c\u00f3 ngh\u0129a l\u00e0 ba th\u1ee9 r\u1ea5t c\u1ee5 th\u1ec3 d\u01b0\u1edbi \u0111\u00e2y \u0111ang n\u1eb1m tr\u00ean \u1ed5 c\u1ee9ng c\u1ee7a b\u1ea1n, s\u1eb5n s\u00e0ng \u0111\u1ec3 b\u1ea1n show cho ng\u01b0\u1eddi kh\u00e1c.

  • M\u1ed9t repo Git c\u00f3 th\u1ec3 clone v\u1ec1 v\u00e0 ch\u1ea1y ngay \u2014 kh\u00f4ng ph\u1ea3i fork r\u1ed3i s\u1eeda hai ng\u00e0y m\u1edbi kh\u1edfi \u0111\u1ed9ng \u0111\u01b0\u1ee3c.
  • M\u1ed9t s\u1ea3n ph\u1ea9m cu\u1ed1i \u2014 game, app, hay pipeline \u2014 \u0111\u1ee7 th\u1eadt \u0111\u1ec3 b\u1ea1n show cho b\u1ea1n b\u00e8, ch\u1ee9 kh\u00f4ng ph\u1ea3i m\u1ed9t sandbox toy.
  • T\u1ef1 tin s\u1eeda, m\u1edf r\u1ed9ng, debug th\u1ee9 v\u1eeba build. \u0110\u1ebfn m\u1ee9c n\u00e0o? \u0110\u1ebfn m\u1ee9c khi m\u1ed9t dependency update v\u00e0 m\u1ecdi th\u1ee9 v\u1ee1, b\u1ea1n bi\u1ebft b\u1eaft \u0111\u1ea7u \u0111\u1ecdc log t\u1eeb \u0111\u00e2u \u2014 kh\u00f4ng ph\u1ea3i d\u00e1n to\u00e0n b\u1ed9 stack trace v\u00e0o ChatGPT r\u1ed3i c\u1ea7u nguy\u1ec7n.

Series \u0111ang \u0111\u01b0\u1ee3c bi\u00ean so\u1ea1n

Series \u0111\u1ea7u ti\u00ean \u0111ang \u0111\u01b0\u1ee3c chu\u1ea9n b\u1ecb t\u1eeb m\u1ed9t d\u1ef1 \u00e1n th\u1eadt \u2014 s\u1ebd ra m\u1eaft trong nh\u1eefng ng\u00e0y t\u1edbi. Khi c\u00f3 series m\u1edbi, b\u1ea1n s\u1ebd th\u1ea5y ch\u00fang \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea \u1edf trang ch\u00ednh.

Trong th\u1eddi gian ch\u1edd, b\u1ea1n c\u00f3 th\u1ec3 chuy\u1ec3n ng\u00f4n ng\u1eef:

  • English
  • [\u4e2d\u6587 \u2014 coming soon]
  • [\ud55c\uad6d\uc5b4 \u2014 coming soon]