Ngày càng có nhiều full-stack web developer và những dev đang hướng tới mục tiêu này. Trở thành phun-sờ-tách đồng nghĩa với nhiều lựa chọn công việc và tất nhiên là một mức lương hấp dẫn hơn.
Nếu đây chính là mục tiêu của bạn thì hãy cùng tìm hiểu cách để trở thành Fullstack nhé.
Có nhiều cách để bạn nâng cấp bản thân thành Full-Stack:
- Chiến nhiều dự án khác nhau và đóng nhiều vai trò khác nhau.
- Đăng ký các khoá học trên Lynda, Udacity, Coursera, Thinkful, General Assembly, hay những chỗ khác.
- (Cách riêng của bạn ở đây)
Ở bài viết này tôi không có ý định phân tích xem học ở đâu thì hiệu quả nhất mà tôi muốn đề cập đến những kỹ năng mà Full-Stack developer cần phải có.
Là một Full-Stack developer không có nghĩa là bạn nhất thiết thông thuộc mọi thứ liên quan đến front-end và back-end, mà có nghĩa là bạn có khả năng làm việc ở cả hai phía và hiểu rõ những gì xảy ra khi xây dựng một ứng dụng.
Và đây là danh sách (có giản lược 🙂 ) những SKILL của một phun-sờ-tách developer:
1. HTML/CSS
Nền tảng của Web, đơn giản là không thể bỏ qua. Những khái niệm cần nắm:
-
-
- Semantic HTML.
- CSS Box Model.
- Lợi ích của CSS preprocessors
- CSS Media Queries (responsive CSS)
- Bootstrap
-
2. JavaScript
Ngôn ngữ đang ngày càng thông dụng, là top programming language năm 2016 theo khảo sát của StackOverflow. Bạn chắc chắn không muốn bỏ lỡ xu hướng này. Hãy thử sức với những khái niệm dưới đây:
- Làm việc với DOM và JSON.
- Các đặc điểm của JS như functional composition, prototypal inheritance, closures, event delegation, scope, higher-order functions.
- Asynchronous control flow, promises, callbacks.
- Biết cấu trúc code hợp lý theo module, các công cụ hỗ trợ như webpack, browserify, gulp
- Nắm được ít nhất một framework phổ biến (ví dụ React hoặc AngularJS).
- jQuery
- Biết chút ít về testing frameworks là một điểm cộng.
- Những tính năng mới của ES6.
3. Back-End Language
- Node.js: Framework JS phổ biến nhất, có thể kết hợp với Express để phát triển web.
- Ruby: Tương đối phổ biến, nên tìm hiểu Rails, Sinatra là những framework phổ biến.
- Python: Framework phổ biến như Django, Flask
- Java: Hiện vẫn đang rất phổ biến, nhất là phía backend.
- PHP: Cũng là ngôn ngữ backend cực kỳ phổ biến, số job đang tuyển cũng cực nhiều.
4. Databases & Web Storage
- Lợi ích của relational data như SQL.
- NoSQL databases (ví dụ MongoDB)
- Biết lúc nào thì dùng loại database nào trong từng trường hợp cụ thể.
- Kết nối database với ngôn ngữ backend mà bạn chọn (chẳng hạn Node.js + MongoDB).
- Lợi ích của in-memory data stores như Redis hay memcached.
- Web storage để lưu sessions, cookies, và cached data ở browser.
- Scaling databases, ACID, và ORM.
5. HTTP & REST
HTTP/REST là giao thức huyết mạch của Internet. Hiểu rõ chúng là cơ sở vững chắc để bạn phát triển sự nghiệp
- REST là gì và tại sao nó quan trọng .
- Best practices for designing a RESTful API. POST/GET requests.
- Biết cách sử dụng Chrome DevTools là cực kỳ hữu ích.
- SSL Certificates.
- HTTP/2 & SPDY (cái này là tuỳ chọn).
- WebSockets, Web Workers, Service Workers (tất cả là tuỳ chọn).
6. Web Application Architecture
- Một số platforms as a service như Heroku và AWS. Đây là những nền tảng cloud linh hoạt và mạnh mẽ, chúng đang ngày càng phổ biến khi thế giới phần mềm đang phát triển chóng mặt.
- Tối ưu hiệu năng cho ứng dụng và trang web.
- Lựa chọn kiến trúc phù hợp cho ứng dụng.
- Designing Web Applications (tài liệu của Microsoft).
- MVC.
- Làm việc cùng với các dev khác thông qua GitHub và học hỏi từ những senior dev.
7. Git
Git là hệ thống quản lý phiên bản phần mềm cực kỳ quan trọng và hữu ích khi bạn làm việc với một team, thậm chí bạn làm việc một mình thì nó cũng hỗ trợ cho bạn rất nhiều trong việc quản lý code.
8. Basic Algorithms & Data Structures
- Improving your Algorithms & Data Structure Skills
- Hash tables và ứng dụng của nó.
- Lợi ích của trees và graphs
- Hiểu khái niệm Big-O analysis chẳng hạn topic này
- Biết lúc nào dùng object thay vì array.
- Tại sao caching quan trọng khi làm việc với dữ liệu lớn, ưu nhược điểm của in-memory so với disk storage.
- Sự khác nhau giữa queue và stack
Thú thực là rất khó để học hết tất cả những nội dung như trong danh sách trên, tuy nhiên nó mang lại quá nhiều lợi ích, và việc trở thành một Full-Stack dev là rất thú vị!