Phân biệt giữa Front End, Back End và Full Stack
Giới thiệu: Bạn có bao giờ tự hỏi mình rằng: Sau này mình sẽ làm gì? Làm web? Làm Front hay Back ? Và đã chọn rồi thì con đường nào để đạt được mục tiêu đó dễ dàng nhanh chóng và hiệu quả nhất? Nếu bạn có câu hỏi như vậy, thì bạn có thể tham khảo bài viết này của tôi. Vậy tại sao cần phân ...
Giới thiệu:
Bạn có bao giờ tự hỏi mình rằng: Sau này mình sẽ làm gì? Làm web? Làm Front hay Back ? Và đã chọn rồi thì con đường nào để đạt được mục tiêu đó dễ dàng nhanh chóng và hiệu quả nhất? Nếu bạn có câu hỏi như vậy, thì bạn có thể tham khảo bài viết này của tôi.
Vậy 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. Để trả lời cho câu hỏi, ta chọn gì thì trước tiên ta cần hiểu về những options này đã. Bây giờ chúng ta cần đi tìm hiểu những khái niệm.
1. Front End Development
Front End Developer là ai
Front End Developer là người tập trung phát triển phía Client Side, nói một cách đơn giản dễ hiểu là tập trung vào mảng phát triển xây dựng giao diện và trải nghiệm cho người dùng. Để dễ hình dung thì ta vào trang facebook thần thánh, nếu ta là Front End Developer cho trang này thì ta là người xác định: logo đặt ở đâu, màu chủ đạo là màu gì, font chữ to hay nhỏ, ảnh này để kích cỡ thế nào, trái tim bay lên ra sao, nút Like đặt ở đâu….Tức là, người phụ trách phát triển HIỂN THỊ và TRẢI NGHIỆM người dùng cho ứng dụng web. Bạn chính là người quyết định CÁI NHÌN ĐẦU TIÊN của người dùng về trang web. Web đẹp hay xấu, tinh tế hay thô lỗ là do bạn. Vì thế bạn cần có khả năng look & feel và trình thiết kế tuyệt đỉnh.
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 …..
Tuy nhiên, đó chỉ là vài cái ngôn ngữ ví dụ. Nhưng thực tế mà nói, để THIẾT KẾ được một website đẹp thì DEV cần nhiều hơn thế. DEV cần biết sử dụng font chữ cho chuẩn (typography), đưa ra bố cục hợp lý, tạo ra các trải nghiệm tinh tế và có lý thuyết cơ bản về PHỐI MẦU. Nói chung, để tạo ra 1 website đẹp không hề đơn giản, và cần nhiều kinh nghiệm cũng như trải nghiệm. Anyway, thì bạn nên bắt đầu từ HTML, CSS, Javascript, sau đó học thêm những cái liệt kê như Jquery, Bootstrap và mở rộng tầm nhìn với những từ khoá typography hay color rule.
Front End Developer là một nghề rất kiếm ra tiền, nhưng với điều kiện bạn phải làm tốt. Tốt tới đâu thì tiền về tới đó. Nếu bạn thực sự chỉ đam mê và chỉ thích thú với việc tạo ra các website đẹp, thì bạn hãy chăm chút cho nghề nghiệp của mình nhé và có thể học thêm cả photoshop nữa.
2. Back End Development
Back End Developer là ai
Nếu Front End Developer có quyền lực kiến tạo nên vẻ đẹp của các trang web, thì Back End developer là người xử lý mọi logic nghiệp vụ phức tạp ở ẩn ở phía sau, giúp cho hệ thống hoạt động trơn tru. Dữ liệu của người dùng, thuật toán phân tích … đều nằm ở back-end. Lấy ví dụ: trên trang face, khi bạn post 1 status, để status ấy được lưu trữ thì cần backend, để status ấy hiển thị cho bạn bè của bạn xem thì cũng cần backend, để status ấy lưu những react (love, phẫn nộ, woo...haha) cũng cần backend …
Back End Developer là người quyết định cách thức website được vận hành. Người vô cùng quan trọng.
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 khá thịnh hành: 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, ….
Kiến thức phần back-end rất nhiều và phức tạp, do đó một back-end developer chỉ nên tập trung vào 2-3 ngôn ngữ chính, đừng ráng ôm hết kẻo "tấu hỏa nhập ma". Code phần back-end thường rất nhiều và "khủng", do đó cần có cấu trúc tốt, dễ cải tiến và mở rộng (bằng cách áp dụng SOLID). Back-end developer có thể trau dồi kiến thức để leo lên vị trí System Analyst hoặc Software Architecture.
3. Full Stack Development
Full Stack Developer là ai
Full Stack là làm đủ cả Front End lẫn Back End Lập trình viên vừa có tư duy logic lại có óc thẩm mĩ tinh tế. Vừa code server giỏi lại biết linh hoạt biến hoá với css.
Các lập trình viên full stack làm việc giống như các lập trình viên back-end ở phía máy chủ của lập trình web, nhưng họ có thể cũng thành thạo các ngôn ngữ front-end để điều khiển nội dung trông như thế nào ở phía giao diện của trang web. Họ là những người đa năng.
Kỹ năng Full Stack
Để trở thành 1 lập trình viên full stack thì bạn cần có những skill sau:
Bất kể là sử dụng công cụ xác định nào, 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ó "con mắt 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.
Kết luận:
Bài viết này nhằm giúp mọi người hiểu hơn về sự khác nhau giữa Front End, Back End và Full Stack Development.
Tham khảo:
http://bvu.edu.vn/web/aptech/-/nhung-ki-nang-can-co-o-mot-web-developer
https://techmaster.vn/posts/33487/lap-trinh-web-front-end-vs-back-end-vs-full-stack