Tại sao cần phân biệt giữa Front hay Back, bởi vì lựa chọn khác nhau thì sẽ tới việc những thứ CẦN HỌC nó sẽ khác nhau, do đó chúng ta sẽ quyết định ngoài những thứ nhà trường dạy thì chúng ta sẽ học thêm cái gì, để có thể đi làm được. Bài viết sau đây chia sẻ với các bạn để hiểu rõ vấn đề trên.
1. Front End Development
Front End developer là gì?
Front End developer (developer giao diện người dùng) là web developer phát triển giao diện người dùng của trang web. Mặc dù thiết kế web là giao diện của trang web, phát triển giao diện người dùng là cách thiết kế đó thực sự được triển khai trên web.
Các trang của internet là tổng hợp các lớp cấu trúc, dữ liệu, thiết kế, nội dung và chức năng. Bằng cách tích hợp các ngôn ngữ đánh dấu, thiết kế, tập lệnh và framework, các front end developer tạo ra môi trường cho mọi thứ mà người dùng nhìn thấy, nhấp và chạm vào.
Kỹ năng Front End
Các ngôn ngữ để phát triển Front End bao gồm 3 ngôn ngữ chủ đạo đó là: HTML, CSS và Javascript. Tuy nhiên, để code nhanh gọn lẹ thì ta có thể sử dụng thêm các framework hay thư viện khác như:
- Một số thư viện/framework nổi tiếng: Bootstrap, jQuery, AngularJS, React JS, Vue JS, EmberJS…
- Kĩ năng thiết kế, sử dụngPhotoshop. Kiến thức và kinh nghiệm về UI/UX.
- LESS, SASS (stylesheet language).
- Sử dụng npm, grunt, … để optimize, minimize HTML/CSS/JS.
- Kiến thức về Ajax, cách thiết kế giao diện responsive …
2. Back End Development
Back End developer là gì?
Backend developer dùng để chỉ sự phát triển phía máy chủ (server side). Đây là thuật ngữ được sử dụng cho các hoạt động hậu trường xảy ra khi thực hiện bất kỳ hành động nào trên trang web. Nó có thể đăng nhập vào tài khoản của bạn hoặc mua đồng hồ từ cửa hàng trực tuyến.
Backend developer tập trung vào cơ sở dữ liệu, kịch bản và kiến trúc của các trang web. Mã được viết bởi các backend developer giúp truyền đạt thông tin cơ sở dữ liệu tới trình duyệt.
Kỹ năng Back End
Để trở thành Back end developer thì bạn cần biết ngôn ngữ phía Server cũng như biết thao tác với cơ sở dữ liệu:
- Ngôn ngữ server-side để viết back-end: C#, Java, Python, Ruby, …. Dĩ nhiên là phải bao gồm kiến thức về những web framework đi kèm các ngôn ngữ này: ASP.NET MVC, Spring, Django, Rails …
- Kiến thức về database SQL: MS SQL Server, MySQL, … Gần đây một số database NoSQL đang phổ biến: Neo4j, MongoDB, …
- Kiến thức về web nói chung, cách viết Web Service, cách đăng nhập và phân quyền .
- Kiến thức về 1 số CMS: WordPress, Joomla, Umbraco, ….
3. Full Stack Development
Full Stack Developer là gì?
Trong thực tế, full-stack đề cập đến hàng loạt các công nghệ cần thiết để hoàn thành một dự án (phát triển ứng dụng, web…). Full-stack developer là người có thể làm việc trên cả Back-end lẫn front-end, database, hệ thống, server, bảo mật… Mặc dù vậy, lập trình viên full-stack không phải là người giỏi về tất cả các công nghệ. Họ là người hiểu rõ những công nghệ cần thiết cho dự án hay công việc họ làm. Tuy nhiên, Full-stack developer có thể nhanh chóng học hỏi những công nghệ khác khi cần.
Kỹ năng Full Stack
Tùy thuộc vào dự án và khách hàng, các lập trình viên full stack nên có kiến thức ở mọi cấp độ về cách web hoạt động: cài đặt và cấu hình các máy chủ Linux, viết các API server-side, nhảy vào phần JavaScript client-side của một ứng dụng, và cũng cần có “thẩm mỹ” với CSS.
Sử dụng những công cụ này, các lập trình viên full stack cần có khả năng ngay lập tức xác định trách nhiệm của client-side hay server-side, và trình bày rõ ràng về mặt ưu nhược điểm của các giải pháp khác nhau.