FDE PulseViệc làm FDE đang mở 632Mới trong 7 ngày 57Công ty đang tuyển 95Nhận làm từ xa 24%Lương trung vị (Mỹ) $205kTuyển nhiều nhất Databricks 114
EN

Tờ báo của nghề Forward Deployed Engineer

Sách & khoá học

The Odin Project: lộ trình JavaScript và Node.js mã nguồn mở cho FDE quen Python

Lộ trình bảy khóa của The Odin Project, một giáo trình mã nguồn mở do tình nguyện viên duy trì, giúp kỹ sư Python đọc được backend Express của khách hàng, miễn là chịu học đúng thứ tự.

Kỹ sư ngồi trước laptop đang đọc và viết mã trong văn phòng làm việc
Ảnh: Emile Perron / Unsplash
Chia sẻLinkedInFacebookX

Tóm tắt nhanh

  • The Odin Project là giáo trình full-stack web mã nguồn mở, do Erik Trautman sáng lập năm 2013 và được tình nguyện viên duy trì.
  • Lộ trình Full Stack JavaScript có bảy khóa và nên học theo thứ tự. Khóa NodeJS dạy Express, PostgreSQL, authentication, ORM, API và testing.
  • Với FDE quen Python, khóa JavaScript và khóa NodeJS là hai khóa cần học kỹ để đọc và sửa được backend Node của khách hàng.
Một đường dọc nối bảy khóa của lộ trình Full Stack JavaScript trên The Odin Project theo thứ tự: Intermediate HTML/CSS, JavaScript, Advanced HTML/CSS, React, Databases, NodeJS, Getting Hired. Khóa JavaScript được tô màu cam kèm ghi chú async và ES6 modules là chỗ người quen Python hay vấp. Khóa NodeJS tô màu xanh, ghi chú Express, PostgreSQL, auth và testing.
Trang lộ trình của The Odin Project dặn học bảy khóa đúng theo thứ tự hiển thị. Async và ES6 modules được dạy ở khóa JavaScript, trước khi người học chạm tới Express. Nguồn: trang lộ trình Full Stack JavaScript của The Odin Project.

Thử hình dung tuần đầu ở một khách hàng: hệ thống AI bạn mang đến viết bằng Python, còn toàn bộ backend của họ chạy Express trên Node.js. Muốn nối hai bên với nhau, bạn phải đọc được route, middleware và cách họ xác thực người dùng. Không ai đợi bạn học xong một khóa dài rồi mới bắt đầu.

Đó là lý do FDE quen Python nên để ý tới The Odin Project. Đây là giáo trình full-stack web development mã nguồn mở. Lộ trình Full Stack JavaScript của nó có riêng một khóa NodeJS dạy Express, PostgreSQL, authentication, ORM, API và testing, tức là đúng những chủ đề bạn nhiều khả năng phải đụng tới khi mở codebase Node của khách hàng.

Kỹ sư đã đi làm vài năm không cần học hết với nhịp của người mới. Điều cần biết là phần nào phục vụ việc gì, và nên bắt đầu từ đâu.

Ai đứng sau, và vì sao điều đó quan trọng?

Erik Trautman sáng lập The Odin Project năm 2013. Trang giới thiệu của dự án cho biết giáo trình do một đội tình nguyện viên duy trì và cải tiến liên tục, còn website và toàn bộ giáo trình đều là mã nguồn mở. Repo trên GitHub nói thẳng rằng dự án sống nhờ đóng góp của cộng đồng.

Người học được lợi trực tiếp từ cách vận hành này. Vì giáo trình mở, bài học nào bạn cũng đọc được, sửa được và gửi pull request được. Khi bị kẹt, có cộng đồng Discord, cũng do tình nguyện viên vận hành, để bạn hỏi người đi trước.

Bảy khóa, và lời dặn nên nghe theo

Lộ trình Full Stack JavaScript gồm bảy khóa: Intermediate HTML/CSS, JavaScript, Advanced HTML/CSS, React, Databases, NodeJS và Getting Hired. Trang lộ trình dặn nên học đúng theo thứ tự hiển thị.

Kỹ sư Python dễ muốn nhảy thẳng vào NodeJS. Đừng bỏ khóa JavaScript. Khóa này mở đầu bằng việc làm web động và tương tác, rồi đi qua async, testing, OOP, ES6 modules, npm, Webpack và cấu trúc dữ liệu. Async và modules thường là chỗ người quen Python vấp khi đọc code Node lần đầu.

Với HTML/CSS và React, bạn có thể đi nhanh hơn nếu việc của bạn chủ yếu ở backend. Nhưng đừng bỏ hẳn: nếu có lúc phải tự dựng một giao diện nhỏ để demo cho khách, đây là phần bạn sẽ cần. Khóa Databases thì nên học chậm, vì nó nằm ngay trước NodeJS và khóa NodeJS lại làm việc với PostgreSQL.

Khóa NodeJS ứng với việc gì ở khách hàng?

Khóa NodeJS đưa JavaScript sang phía server, dùng Express để xây backend và dạy thêm cơ sở dữ liệu quan hệ PostgreSQL. Các phần gồm Introduction to NodeJS, Express, Authentication, ORMs, APIs và Testing Express. Bảng dưới đây ghép mỗi phần với một việc bạn có thể phải làm ở khách hàng.

Phần trong khóa NodeJS Việc tương ứng ở khách hàng
Express Đọc route có sẵn, thêm một endpoint gọi dịch vụ AI của bạn
Authentication Hiểu ai được gọi endpoint đó, tránh mở thêm lỗ hổng
ORMs và PostgreSQL Truy vấn dữ liệu thật của khách mà không viết SQL lệch schema
APIs Thiết kế response để đội frontend của khách dùng được ngay
Testing Express Chứng minh thay đổi của bạn không làm vỡ thứ đang chạy

Một endpoint, năm bước

Quay lại tình huống ở đầu bài. Giả sử việc đầu tiên được giao là thêm endpoint trả về gợi ý từ model AI cho một khách hàng cụ thể. Bạn có thể làm theo trình tự sau, mỗi bước ứng với một phần của khóa NodeJS.

Bước một, mở file route của khách và tìm một route tương tự đang chạy, xem nó gắn middleware xác thực nào. Bước hai, khai báo route mới và gắn đúng middleware đó. Bước ba, lấy dữ liệu từ Postgres qua ORM họ đang dùng, chỉ chọn những cột model cần.

Bước bốn, gọi dịch vụ model, bắt lỗi khi model chậm hoặc trả lỗi, rồi trả JSON theo đúng khuôn các endpoint khác của khách. Bước năm, viết hai test cho Express: một ca có token hợp lệ trả dữ liệu, một ca không có token bị từ chối.

Lỗi hay gặp với người quen Python nằm ở bước ba và bốn: quên await trước lời gọi ORM hoặc model. Code vẫn chạy, nhưng thứ bạn nhận được là một Promise chứ không phải dữ liệu, và lỗi có thể bị nuốt mất. Đây chính là phần async trong khóa JavaScript, lý do không nên bỏ qua nó.

Lỗi thứ hai là chép route cũ nhưng sót middleware, khiến endpoint mới mở cho bất kỳ ai. Test ở bước năm, ca không có token, tồn tại để bắt đúng lỗi này trước khi nó lên production.

Ba ý đáng giữ lại

Ý đầu tiên: thứ tự có logic riêng. Async và ES6 modules được dạy trong khóa JavaScript, trước khi bạn chạm tới Express. Với FDE, đây cũng là cách tiếp cận mọi hệ thống lạ: hiểu nền móng rồi mới sửa tầng trên.

Ý tiếp theo: testing nằm ngay trong khóa backend chứ không bị tách ra làm phần phụ. Ở khách hàng, một bộ test chạy được là cách nhanh để đội kỹ thuật của họ tin thay đổi của bạn. Hãy coi Testing Express là phần bắt buộc, kể cả khi đang vội.

Ý cuối cùng đến từ chính mô hình mã nguồn mở. Giáo trình nằm trên GitHub và cần người đóng góp. Gửi một pull request sửa lỗi trong bài học là dịp luyện quy trình review code trong repo của người khác, việc FDE làm hằng ngày.

Biến khóa học thành bằng chứng trong CV

Đừng chỉ ghi tên khóa học vào CV, hãy để một dự án chạy được nói thay bạn. Học xong khóa NodeJS, dựng một API Express nhỏ có authentication, PostgreSQL và bộ test, rồi thêm một endpoint gọi model AI theo đúng năm bước ở trên. Ghi rõ trong README bạn đã kiểm thử những gì.

Khi đọc mô tả công việc FDE, để ý xem công ty hoặc khách hàng của họ dùng JavaScript hay Node ở đâu. Nếu có, một dòng như “dựng API Express với auth, Postgres và test tự động” cụ thể hơn nhiều so với “biết JavaScript”. Khóa cuối của lộ trình, Getting Hired, cũng có sẵn để bạn tham khảo cách trình bày.

Stack của khách hàng là thứ bạn được giao chứ không phải thứ bạn chọn. Đọc được Express nghĩa là có thêm một loại hệ thống bạn bước vào làm được ngay, thay vì phải đứng ngoài.

Bài này có hữu ích không?

Dùng cùng trợ lý AIHỏi Claude ↗Hỏi ChatGPT ↗
5 nguồn
Đọc tiếp trên lộ trình · Chặng 1: Nền tảngPython for Everybody của Charles Severance: khoá nhập môn có nửa sau đáng để FDE học kỹKhoá này dễ bị kỹ sư đã đi làm bỏ qua vì nó dành cho người mới, nhưng các bài về regex, web service và cơ sở dữ liệu lại khớp với những việc dữ liệu đầu tiên mà FDE gặp ở site khách hàng.