Mình có hơn 6 năm kinh nghiệm trong phát triển ứng dụng web với vai trò như 1 full stack developer và mình rút ra được 1 lộ trình mình nghĩ sẽ hiệu quả đối với những bạn nào muốn đi theo con đường này.
Full Stack Developer là gì?
Ngắn gọn là một lập trình viên có thể lập trình phần giao diện (frontend) và cả phần kết nối dữ liệu bên dưới (backend).
Theo mình thấy cơ hội nghề nghiệp với full stack developer cũng khá rộng, dễ tìm được vị trí phù hợp hoặc nếu có deal dự án freelancer thì 1 mình cũng có thể cân được.
Và đây là lộ trình cụ thể mình thấy khá phù hợp cho người mới bắt đầu:
- Cách xây dựng 1 trang web tĩnh
- Cách xây dựng 1 single page app
- Cách xây dựng 1 hệ thống backend cung cấp API
- Kiến thức nền tảng dành cho lập trình viên
- Kỹ năng + Tiếng Anh
3 bước đầu là bắt buộc, 2 bước sau là cần thiết nếu bạn muốn đi xa hơn, thăng tiến và cơ hội nghề nghiệp tốt hơn. Giờ thì mình sẽ đi chi tiết vào từng bước cho rõ hơn nhé!
Cách xây dựng 1 trang web tĩnh
Ngôn ngữ cần học: HTML, CSS, JavaScript
HTML: Nếu lấy con người làm ví dụ thì HTML giúp bạn xây dựng được khung xương, hình hải, và bạn cần học:
- Cách bố cục, thành phần của 1 trang web
- Cách sử dụng thẻ tag phù hợp
- Tài liệu: https://www.w3schools.com/html/
CSS: Vẫn ví dụ như con người thì CSS giúp bạn trang điểm đẹp hơn cho “khung xương” HTML
- Học CSS cơ bản: https://www.w3schools.com/css/
- Cách bố cục giao diện bằng CSS cần xem kỹ Flexbox
- Flexbox game dễ hiểu: https://flexboxfroggy.com/ hoặc http://www.flexboxdefense.com/
- Nên xem thêm: grid, transition, animation, responsive
- Không cần học SASS ngay lúc này, CSS đơn thuần là đủ
JavaScript: con người cần có giác quan, hoạt động, thì JavaScript là cốt lõi cần có cho 1 website
- Mình khuyến khích học JavaScript thuần tuý để hiểu cơ chế hoạt động với DOM
- Có thể học tại đây: https://www.w3schools.com/js/
- Thường nhiều bạn sẽ rất nản học phần này vì thấy khá bất tiện, thích dùng framework, thư viện hơn nhưng với quan điểm của mình nếu bạn tự tin dùng JavaScript thuần thì hoàn toàn có thể dễ dàng tiếp cận với những tech stack mới trên nền tảng của JavaScript
Bí quyết để học tốt cái này đơn giản là luyện tập nhiều, hoặc tạo thói quen khi truy cập 1 trang web thấy cái gì hay hay, đẹp đẹp thì thử xem mình có code được như vậy hay không rồi tham khảo xem nó dùng cách gì rồi áp dụng sẽ giúp bạn có nhiều kinh nghiệm hơn.
Lưu ý: đừng cố gắng học nhanh theo ví dụ mà không hiểu bản chất, phần giao diện đúng là không quá khó nhưng để làm tốt, giúp bạn giải quyết vấn đề nhanh hơn thì cần phải hiểu rõ.
Cách xây dựng 1 single page app
Khi đủ nền tảng ở bước xây dựng web tĩnh, đặc biệt là JavaScript và CSS thì mình tin các bạn hoàn toàn tiếp cận bước này dễ dàng nhé.
Single page app là gì?
Hiểu đơn giản là phát triển 1 ứng dụng web hướng client. Các bạn có thể tham khảo thêm client rendering và server rendering để hiểu thêm cũng được nhé.
Mình đang thấy phổ biến là có React, Angular hay Vue.js. Bạn có thể lựa chọn 1 trong 3 hoặc nếu có thời gian thì coi hết để hiểu cách tổ chức của mỗi thằng thế nào cũng sẽ giúp bạn dễ so sánh lựa chọn công nghệ hơn. Nhưng với người mới bắt đầu thì nên chọn 1 thôi nhé rồi từ từ tính tiếp.
Cách học tốt nhất là bạn hãy nghĩ ra 1 dự án thực tế hoặc clone ý tưởng nào đó cũng được, vì khi làm dự án thì sẽ phát sinh ra nhiều cái giúp bạn giải quyết vấn đề và nhớ lâu hơn.
Cách xây dựng 1 hệ thống backend cung cấp API
Khi đủ tự tin về phần giao diện thì hãy bắt đầu tiếp cận với việc xây dựng nền tảng dữ liệu bên dưới. Nếu bạn đã quen với việc sử dụng JavaScript thì hãy bắt tay với NodeJS và sử dụng Express càng tốt cho việc làm quen. Đây là checklist bạn cần lưu ý (nó sẽ áp dụng cho ngôn ngữ backend khác luôn nhé)
- HTTP Request/Response
- RESTful API (có thể tham khảo thêm GraphQL)
- Authentication/Authorization
- ORM
- Migration
- Unit testing
Nếu bạn là người bắt đầu thì hãy chọn 1 framework phổ biến để dễ tìm việc trên thị trường và để hiểu rõ checklist mình đã cung cấp, các bạn có thể lựa chọn ngôn ngữ khác như Go, Python, Ruby, PHP,… nhưng đã bắt đầu với JavaScript thì hãy chọn NodeJS.