Hướng dẫn để trở thành Full Stack Developer
Một lập trình viên full stack là một người có thể làm việc cả ở front-end và cả ở back-end của một ứng dụng. Front-end thường chỉ tới phần của ứng dụng mà người dùng có thể nhìn hoặc tương tác với nó, và phần back-end là phần làm các logic, tương tác cơ sở dữ liệu, xác thực người dùng, cấu hình server, .... Trở thành một lập trình viên Full Stack không có nghĩa là bạn thuần thục mọi thứ ở front-end và back-end, nhưng có nghĩa là bạn có thể làm việc ở cả 2 phần và hiểu điều gì đang xảy ra khi xây dựng một ứng dụng.
Nếu bạn muốn trở thành một lập trình viên Full-Stack, bạn cần học những thứ sau:
1. HTML/CSS
HTML cho phép bạn thêm nội dung vào 1 trang website và CSS giúp bạn style những nội dung đó. Những chủ đề liên quan đến HTML/CSS thường đến ở buổi phỏng vấn và công việc thực tế khi bạn làm việc:
Nếu bạn muốn trở thành một lập trình viên Full-Stack, bạn cần học những thứ sau:
1. HTML/CSS
HTML cho phép bạn thêm nội dung vào 1 trang website và CSS giúp bạn style những nội dung đó. Những chủ đề liên quan đến HTML/CSS thường đến ở buổi phỏng vấn và công việc thực tế khi bạn làm việc:
- Semantic HTML
- CSS Box Model
- CSS preprocessors
- CSS Media Queries: hướng đến các devices khác nhau và viết CSS một cách đáp ứng.
- Bootstrap: framework giúp thiết kế layout cho nội dung.
2. JavaScript
Ngôn ngữ JavaScript đang ngày càng nổi tiếng và phổ biến từng năm. JavaScript là ngôn ngữ phổ biến nhất ở Front-end và Back-end. Nó là ngôn ngữ duy nhất chạy tự nhiên (natively) trên trình duyệt web, và có thể chạy ở phía server (Node.js). Dưới đây là một vài chủ đề bạn cần hiểu để trở thành lập trình viên Full-Stack:
- Hiểu cách làm việc với DOM (Document Object Model). Đồng thời biết JSON là gì và cách làm việc với nó.
- Một số tính năng quan trọng của ngôn ngữ, ví dụ như functional composition, prototypal inheritance, closures, event delegation, scope, higher-order functions.
- Asynchronous control flow, promises, and callbacks.
- Học cách cấu trúc code một cách đúng đắn và module hóa nó, bạn nên biết webpack, browserify, hoặc build tools như gulp sẽ rất hữu dụng.
- Biết cách làm việc với ít nhất một framework nổi tiếng (React hoặc AngularJS, nhưng trong thực tế việc hiểu sâu về JavaScript là quan trọng hơn so với việc hiểu những đặc tính chuyên biệt của các frameworks. Khi bạn hiểu rõ JavaScript thì sẽ dễ dàng hơn cho bạn khi làm việc với các frameworks).
3. Ngôn ngữ Back-end
Khi bạn đã có vốn kiến thức tốt về HTML/CSS và JavaScript, bạn sẽ muốn tiến đến ngôn ngữ back-end để làm những thứ liên quan đến thực thi cơ sở dữ liệu, xác thực người dùng, và logic. Tất cả các chương trình online và bootcamps thường tập trung vào một ngôn ngữ back-end. Sau đây là một số lựa chọn:
- Node.js: đây là một lựa chọn tuyệt vời bởi vì bản thân nó là môi trường của JavaScript, có nghĩa là bạn không cần học một ngôn ngữ mới. Đó là lý do lớn giải thích cho việc rất nhiều chương trình online và bootcamps chọn để dậy Node.js. Framework nổi tiếng nhất ,à bạn nên học là Express.
- Ruby: ...
- Python: ...
- Java: ...
- PHP: ....
4. Cơ sở dữ liệu và Web Storage
Khi bạn học phát triển các web applications, bạn sẽ cần lưu trữ dữ liệu ở đâu đó và truy cập nó sau này. Bạn cần nắm được tốt những chủ đề liên quan đến cơ sở dữ liệu và bộ nhớ.
- Hiểu được lợi ích của cơ sở dữ liệu quan hệ, ví dụ SQL
- Học về các cơ sở dữ liệu NoSQL, ví dụ MongoDB.
- Hiểu được cái gì là tốt hơn trong những tình huống cụ thể.
- Biết cách kết nối một cơ sở dữ liệu với ngôn ngữ back-end (ví dụ, Node.js + MongoDB).
- Hiểu lợi ích của Redis hoặc memcached.
- Web storage để chứa sessions, cookies, và cached data trong trình duyệt.
- Scaling databases, ACID, và ORL
5. HTTP và REST
HTTP là một giao thức phi trạng thái trên interne - nó cho phép các clients kết nối đến servers ( ví dụ code JavaScript của bạn có thể tạo một AJAX request đến một số code back-end đang chạy trên server thông qua HTTP). Một số topic bạn nên học:
- REST là gì và tại sao nó lại quan trọng trong giao thức HTTP và web applications.
- Một số thực hành tốt nhất về việc thiết kế RESTful API. POST/GET requests.
- Biết cách sử dụng Chrome DevTools cực kỳ hữu dụng.
- SSL Certificates là gì?
- HTTP/2 & SPDY (tùy chọn).
- WebSockets, Web Workers, và Service Workers (tùy chọn).
6. Kiến trúc Web Application.
Khi bạn đã có kiến thức tốt về HTML/CSS, JavaScript, ngôn ngữ back-end, cơ sở dữ liệu và HTTP/REST, thì sẽ đến phần phức tạp rắc rối. Ở điểm này nếu bạn muốn tạo một web app phức tạp, bạn sẽ cần biết cách làm thế nào để cấu trúc code, cách để chia các files, bạn để các file media lớn ở đâu, bạn cấu trúc dữ liệu như thế nào, thực hiện các tác vụ tính toán đặc biệt ở đâu (client side vs server side) và nhiều hơn nữa.
Cách tốt nhất để học về kiến trúc ứng dụng là làm trong một ứng dụng lớn, hoặc thậm chí tốt hơn, làm trong một nhóm và cùng nhau phát triển ứng dụng lớn, phức tạp. Đó là lý do tại sao, một người với hơn 7 năm kinh nghiệm có thể không cần biết CSS hoặc JavaScript, vẫn tốt hơn người nào có 2 năm kinh nghiệm, nhưng tựu chung lại trong những năm đó họ đã làm việc với tất cả các ứng dụng và websites khác nhau và đã học được cách thiết kế một cách hiệu quả nhất và có thể nhìn "big picture" trong quá trình phát triển. Sau đây là một số thứ bạn có thể đọc và giúp bạn học cách kiến trúc web applications hiệu quả:
Học về các platforms as a service, như Heroku và AWS.
Performance optimization cho các ứng dụng và trình duyệt hiện đại.
MVC
7. Git
8. Basic Algorithms & Data Structures
Học về các platforms as a service, như Heroku và AWS.
Performance optimization cho các ứng dụng và trình duyệt hiện đại.
MVC
7. Git
8. Basic Algorithms & Data Structures


Comments
Post a Comment