Chuyển tới nội dung chính

Khóa học Node.js doanh nghiệp của HexSchool

· 6 phút để đọc
Pitt Wu
Software / Product Engineer

Một vài suy nghĩ và nhìn lại sau khi hoàn thành khóa học Node.js doanh nghiệp của HexSchool.

Tại sao chọn khóa học này? Giải quyết vấn đề gì?

Đây là một khóa học khá đắt. Đồng thời, HexSchool (một bootcamp lập trình ở Đài Loan) vì lý do kinh doanh không thể từ chối người đăng ký, nên nội dung khóa học buộc phải thiết kế tương đối đơn giản.

Nhìn vào những điều kiện này, đăng ký khóa học có vẻ không đáng làm. Nhưng thực tế vẫn có một số khía cạnh đáng cân nhắc:

Làm việc nhóm

Vì ngay từ đầu đã phải chia nhóm làm việc cùng nhau, và hầu hết người tham gia đều từ frontend chuyển sang, chưa có kinh nghiệm backend, nên đây là cơ hội để luyện tập giao tiếp và đẩy nhanh tiến độ trong phát triển backend.

Từ một góc nhìn khác, những người đồng hành này trong tương lai cũng có thể giúp đỡ lẫn nhau. Đây cũng là một cách xây dựng mối quan hệ nghề nghiệp.

Chi phí chìm

Như đã nói, khóa học khá đắt. Dù bạn lười như tôi, nếu không muốn mất trắng số tiền này, bạn bắt buộc phải bỏ thời gian và công sức sau giờ làm để theo kịp tiến độ dự án, đảm bảo hoàn thành trước deadline. Điều này cũng giúp bạn đạt được mục tiêu tự kỷ luật ở một mức độ nào đó.

Góc nhìn mới

Vì toàn bộ dự án được làm từ đầu đến cuối — từ thiết kế ý tưởng đến phát triển — dù khách quan mà nói là khá sơ lược, nhưng tất cả thành viên đều có thể trải qua một lần quy trình của PM, UI/UX, frontend, backend. Điều này có thể mang lại những góc nhìn mới cho công việc tương lai.

Nội dung khóa học

Về nội dung khóa học: ngoài các thao tác cơ bản với MongoDB và việc implement API bằng Node.js, phần có giá trị nhất theo tôi là việc tích hợp các dịch vụ bên thứ ba — như đăng nhập bên thứ ba và tích hợp thanh toán. Phần này khá khó khăn, cần nhiều thời gian để đọc tài liệu của từng dịch vụ. Khi được dạy trong khóa học, bạn tiết kiệm được thời gian nghiên cứu.

Ngoài ra, một số ví dụ thiết kế trong khóa học vẫn dựa trên pattern MVC. Nhóm phải tự thực hiện việc tách biệt frontend và backend khi làm dự án, điều này cũng cần thời gian suy nghĩ.

Một số nội dung khóa học được thuê ngoài dạy trực tiếp, nên có thể xuất hiện một số khác biệt. Ví dụ, phần hướng dẫn unit testing được cung cấp cho frontend. Nên nếu muốn luyện tập unit testing cho backend, nhóm phải tự tìm hiểu.

Thực hiện dự án (cảm nhận cực kỳ chủ quan)

Thực hiện dự án là phần có giá trị nhất của khóa học theo tôi. Và điều quan trọng nhất chính là sự hợp tác và lập kế hoạch bên trong nhóm.

Hãy thành thật trước khi chia nhóm

Trước khi chia nhóm, sẽ có phần tự đánh giá năng lực cá nhân. Nếu có lĩnh vực bạn chưa quen, hãy thành thật. Nếu chênh lệch trình độ trong nhóm quá lớn, rất dễ xảy ra bất đồng nghiêm trọng, khiến dự án không thể tiến hành suôn sẻ.

Dành thời gian dự phòng cho phát triển

Vì hầu hết mọi người chuyển từ frontend sang backend, có rất nhiều vấn đề mà trước đây frontend không gặp phải sẽ làm chậm tiến độ. Ví dụ: sau khi tích hợp thanh toán, chắc chắn phải xử lý vấn đề đơn hàng, và đơn hàng lại liên quan đến thời gian giao dịch.

Đối với frontend, trước đây hầu như không cần suy nghĩ về những điều này — chỉ cần gọi API rồi hiển thị danh sách. Nhưng với backend, tất cả những vấn đề này đều phải được xem xét.

Đặt mục tiêu là đưa dự án lên production

Hãy nghiêm túc xem xét các điểm sau:

  • Hầu hết thành viên đều phải đi làm, chỉ có thể đầu tư thời gian có hạn (bạn không thể đoán trước liệu thành viên có đang chịu áp lực công việc hay tăng ca không)
  • Deadline rất gấp, thời gian phát triển thực tế có hạn
  • Hầu hết thành viên không có kinh nghiệm backend, chắc chắn sẽ gặp trở ngại

Nên mục tiêu giai đoạn đầu là phát triển một sản phẩm dùng được — không phải một sản phẩm hoàn hảo. Đừng suy nghĩ quá nhiều về kiến trúc, tối ưu hóa, testing ở giai đoạn này. Những thứ đó để sau.

Nếu theo đuổi sự hoàn hảo quá mức, ngoài việc gây tắc nghẽn tiến độ phát triển, điều đáng sợ hơn là có thể gây ra rạn nứt trong nhóm (dù loại xung đột tiềm ẩn, đặc biệt khi bạn không thể biết liệu thành viên có đang chịu áp lực công việc ban ngày hay không). Một khi nhóm đã rạn nứt, dự án có 94,87% là thất bại. Một tính năng xấu nhưng chạy được có thể tạo động lực rất lớn cho cả nhóm.

Đặc biệt tránh việc mở rộng công nghệ sử dụng không giới hạn. Với frontend, không nên xuất hiện tình huống sử dụng đồng thời cả React lẫn Vue. Dù ai đó trong nhóm rất giỏi một framework, không có nghĩa là người khác cũng có thể học nhanh và áp dụng vào phát triển.

Mở rộng và tối ưu

Khi dự án hoàn thành chức năng vai trò đầu tiên, thường có thể hiểu là giai đoạn một đã kết thúc. Ngoài việc có thể thở phào một chút, bạn có thể bắt đầu suy nghĩ về việc phát triển các chức năng khác, bao gồm những công nghệ bạn muốn thử hoặc cải thiện trải nghiệm người dùng.

Với dự án của chúng tôi, chúng tôi đã dần dần thêm websocket messaging, PWA, animation, hệ thống check-in và nhiều thứ khác để làm phong phú toàn bộ trang web.

Kết luận

Cuối cùng, đây là các liên kết deploy và Repo của dự án chúng tôi (frontend và admin). Mời mọi người tham khảo.

Frontend (Client)

Admin (Admin)

<!-- test account & password -->

account : admin
password : 12345678

Liên kết liên quan

Về việc tôi trở thành coach của khóa Node.js Software Engineer doanh nghiệp 2023 tại HexSchool