Kmin Academy

Front-end Engineer là gì ?

Được sự đồng ý của tác giả Photon, Kmin được gửi đến quý bạn đọc trích đoạn bức thư Photon gửi cho cậu bạn của mình chia sẻ về những ý niệm đầu tiên về Front-end Engineer. Đây cũng là phần 1 của bức thư.

24/07/2021
Lộ trình học lập trình web, trở thành 1 front-end engineer

Gửi cậu,

Hôm trước, trong thư, cậu có kể là cậu đang muốn học lập trình Front-end để sau này trở thành một Front-end Engineer, vì nghe nói ngành này hot lắm, lương lại cao, nhưng chưa biết phải bắt đầu từ đâu và đi như thế nào. Thật may mắn, tớ cũng có một thời gian đủ dài để học lập trình và làm Front-end. Vậy nên hôm nay tớ xin chia sẻ những suy nghĩ và trải nghiệm của tớ về vấn đề này nhé.

Front-end Engineer là gì?

Front-end Engineer là một kỹ sư đảm nhận chính các công việc liên quan đến giao diện của một ứng dụng. Ứng dụng này có thể được phát triển trên nền tảng web (web app) hoặc nền tảng di động (mobile app). Tuy nhiên, khi chỉ nhắc đến Front-end mà không nói gì thêm, thường mọi người sẽ hiểu là Web Front-end, tớ cũng sẽ đề cập đến Front-end theo nghĩa này.

Trong khi Back-end đảm nhận chính các vai trò xử lý dữ liệu, nghiệp vụ, logic thì Front-end xử lý về giao diện và trải nghiệm người dùng (UI/UX). Front-end sẽ cùng với Back-end tạo nên một hệ thống web hoàn chỉnh.

Hơi khó hiểu phải không? Để tớ lấy ví dụ nhé. Nếu cậu muốn săn sale, cậu sẽ vào Shopee. Hãy cho tớ biết, trên Shopee có gì nào? Đừng chú ý về những sản phẩm giảm kịch sàn, hãy để ý đến giao diện, cụ thể hơn đó là nội dung (hình ảnh, chữ nghĩa) hay màu sắc, bố cục. Những thứ ấy tạo nên đặc trưng cho giao diện của Shopee đúng không? Đó chính là Front-end của Shopee. Vậy những dữ liệu đó từ đâu mà ra? Nhờ Back-end gửi cho cả đấy. Front-end đang chạy ở máy tính của cậu trong khi Back-end đang chạy trên máy chủ (server) của Shopee.

lap-trinh-web-front-end.png
Giao diện của Shopee - Nguồn ảnh: Kmin Academy

Nếu ví website như cô gái ngày xưa chúng ta từng theo đuổi, thì Front-end chính là những thứ mà người khác dễ thấy về cô ấy như: gương mặt, vóc dáng, lời nói, cử chỉ, cách ứng xử. Trong khi đó, back-end là tư duy, nhận thức, đạo đức, đó là những điều ở phía sau (bên trong) tác động đến những điều phía trước (bên ngoài) - Front-end của cô gái ấy.

lap-trinh-front-end.png
Front-end và Back-end - Nguồn ảnh: comic.browserling.com

Công việc thường thấy của một Front-end engineer là:

  • Đọc hiểu yêu cầu, bản thiết kế. Đây có thể xem như là đề bài mà khách hàng giao và nhiệm vụ của ta là phải hiện thực nó và... lụm lúa.
  • Lên kế hoạch thực hiện: Chọn giải pháp, ước lượng thời gian, ... Nếu bước này ta làm kĩ, ta sẽ đỡ mất nhiều công sức, thời gian cho các bước sau.
  • Lập trình, phát triển giao diện web, debug và fix bug. Bug là lỗi phát sinh trong quá trình lập trình. Bug không tự sinh ra, cũng không tự mất đi. Bug đi từ tính năng này qua tính năng khác. Còn bug là còn việc, còn việc là còn có... lúa. Hãy yêu bug. Lúa ở đây không chỉ là tiền mà còn là niềm vui và ý tớ không phải khuyến khích việc code để lại nhiều bug, mà xem bug đến với ta như một lẽ tất nhiên (dù mình đã rất hết tâm, hết sức), để rồi ta chấp nhận, mỉm cười và diệt nó.
  • Kiểm thử và bàn giao. Những dòng code ta viết ra là sản phẩm của trí tuệ, vì vậy hãy làm thật chỉn chu, trước khi gửi cho tester (người kiểm thử) với một nụ cười hồn nhiên.

Front-end Engineer hay Front-end developer?

Cả 2 chức danh này đều làm công việc của Front-end. Sự khác biệt chính là

  • Front-end developer là người lập trình, cài đặt, phát triển ứng dụng và trực tiếp tạo ra sản phẩm dựa trên một yêu cầu cho trước. Yêu cầu này có thể là một bản thiết kế (Photoshop, Figma, Adobe XD, ...), các tài liệu mô tả hay các yêu cầu của khách hàng.
  • Front-end engineer cũng làm những công việc tương tự Front-end developer nhưng với một cấp độ cao hơn. Front-end engineer có nhiều giải pháp cho một vấn đề và trả lời được câu hỏi tại sao mình lựa chọn một giải pháp nào đó. Nói một cách tổng quát hơn, Front-end engineer hiểu được bản chất, triết lý của những kiến thức họ có hay những dòng code do họ tạo ra. Điều này là không bắt buộc với một Front-end developer.

lap-trinh-web-front-end.jpeg
Developer vs. Engineer - Nguồn ảnh: ntapeople.com

Ví một dự án web như việc xây nhà, thì một Front-end developer biết cách để đào móng, xây tường, lợp mái và làm tốt việc ấy trong khi Front-end engineer không chỉ dừng lại ở đó, họ còn giải thích được lý do tại sao chỗ này cần tường dày, chỗ kia dùng tường mỏng, chỗ này nên sơn loại A, chỗ kia nên sơn loại B, ... thì phù hợp với khách hàng, với dự án.

Như vậy có thể nói Front-end Engineer có thể làm được nhiều việc hơn, có giải pháp phù hợp hơn và hiểu một cách sâu sắc hơn về những sự lựa chọn so với Front-end developer.

Với tớ, Front-end engineer hay Front-end developer cũng chỉ là một tên gọi hay chức danh mà thôi. Điều quan trọng là năng lực của ta như thế nào. Người lập trình giỏi không chỉ phản ánh qua chức danh của họ. Thay vì gọi là Front-end Engineer, ta gọi là Front-end developer xịn, Front-end developer siêu xịn, Front-end developer siêu cấp-pro-vip cũng được mà. Trên thực tế là có nhiều nhà tuyển dụng không hề phân biệt 2 tên gọi này. Họ vẫn có thể ghi trong đơn tuyển dụng là developer trong khi kỳ vọng một năng lực như engineer. Vì doanh nghiệp cũng quan trọng ở năng lực bên trong hơn là cái danh bên ngoài.

Để biết về doanh nghiệp cần gì ở 1 fresher Front-end engineer, hãy cùng theo dõi phần 2 của bức thư.

Photon

Các bài viết liên quan

Học lập trình cơ bản với ngôn ngữ nào?

Chắc hẳn việc lựa chọn 1 ngôn ngữ lập trình khi mới bắt đầu học lập trình là một câu hỏi lớn, học ngôn ngữ nào sẽ mang lại hiệu quả tốt? Với rất nhiều cám dỗ trong thời sinh viên việc mất căn bản lập trình là điều mà các bạn dễ mắc phải, chọn cho mình ngôn ngữ lập trình phù hợp để bắt đầu lại là điều các bạn cần làm ngay. Hy vọng những thông tin bổ ích của bài viết này sẽ giúp bạn tìm ra lối đi thích hợp.

Xem thêm