Hôm trước, cậu quan tâm đến Front-end. Hôm nay, với câu hỏi này, tớ biết cậu đã quan tâm thêm về Back-end và bắt đầu có sự phân vân. Đừng quá lo lắng. Hãy để tớ làm rõ hơn nhé.
Trong bức thư lần trước, chúng ta đã hiểu được Front-end engineer làm công việc gì rồi đúng không? Tớ tóm gọn lại, Front-end engineer nhận được một bản thiết kế giao diện. Sau đó, họ sẽ hiện thực hóa bản thiết kế ấy bằng hàng loạt các bước làm phân tích, lựa chọn giải pháp, lên kế hoạch thực hiện, lập trình, kiểm thử và bảo trì sản phẩm. Xét về bề nổi, thì mọi người nhìn vào sẽ thấy Front-end engineer chủ yếu ngồi code, nhưng thực ra những lập trình viên xịn sẽ dành thời gian cho những bước chuẩn bị để tối ưu thời gian code và khi đó quá trình làm việc sẽ chill hơn rất nhiều. HTML, CSS, Javascript là 3 ông thần sẽ đi cùng với họ cho dù võ công của họ giỏi đến đâu, am hiểu công nghệ đến mức nào, chúng ta gọi đó là nền tảng lập trình.
Cậu vẫn còn nhớ về bức ảnh này chứ?
Front-end hiển thị dữ liệu (dòng chữ, con số, hình ảnh, ...) một cách lung linh, nhằm đem đến cách truyền đạt thông tin với trải nghiệm tốt nhất đến người dùng. Dữ liệu này được lưu trữ ở cơ sở dữ liệu (database - hiểu đơn giản như một nơi lưu trữ dữ liệu cao cấp). Cơ sở dữ liệu này được đặt ở một máy tính trong môi trường internet - Ta hay gọi là server. Giao diện web được Front-end xử lý, chạy trên trình duyệt web của người dùng như Chrome, Firefox, ..., trong khi cơ sở dữ liệu lại được đặt ở một nơi khác. Vậy làm thế nào để Front-end có dữ liệu để hiển thị? Đó là nhờ vào mấy anh làm Back-end.
Front-end làm việc trên browser (trình duyệt web), Back-end làm việc trên server và database. Nguồn ảnh: web4u.in.ua |
Back-end là một người bạn cùng phòng (có thể cùng cả giường) không thể nào thiếu được với Fornt-end. Bởi vì cả 2 sẽ cùng viết nên một câu chuyện đẹp mang tên: Ứng dụng web X. Chính Back-end sẽ là người lấy dữ liệu ở cơ sở dữ liệu và gửi đến cho Front-end, từ đó mà ứng dụng X đạt được sự hoàn hảo. Đến đây, cậu cần hiểu được là để làm được một ứng dụng với nhiều chức năng xịn xò, thì cần cả Front-end và Back-end.
Back-end có 3 nhóm công việc chính.
Làm Back-end engineer, cũng sẽ trải qua các bước như một Front-end engineer như phân tích, lựa chọn giải pháp, lên kế hoạch thực hiện, lập trình, kiểm thử và bảo trì sản phẩm (đa số các lĩnh vực khác trong lập trình cũng đều có các bước cơ bản như thế), khác nhau ở chi tiết bên trong.
Ví dụ ở bước lập trình, ngôn ngữ mà Back-end hay dùng gần như không phải là HTML, CSS, mà là các ngôn ngữ lập trình như Java, PHP, Python, Golang, Javascript, ...
Một vài ngôn ngữ lập trình - Nguồn ảnh: https://lambdasec.github.io/Xét về công cụ, Front-end sẽ làm nhiều với trình duyệt web trong khi Back-end gắn bó với terminal thần thánh.
Một ví dụ về terminal - Nguồn ảnh: endjin.comXét về tư duy, Front-end hướng về tính thẩm mĩ, độ chính xác các đối tượng đồ họa (để làm giao diện thật đẹp, giống với bản thiết kế), tính logic trên giao diện và các yếu tố về trải nghiệm người dùng (user experience), trong khi Back-end tập trung nhiều về logic của dữ liệu, độ chính xác, kiến trúc phần mềm và hệ thống.
Front-end engineer sẽ hỏi là: "Giao diện của tao đẹp không mậy?", trong khi Back-end engineer lại hỏi là: "Dữ liệu của tao trả về đúng không mậy?".
"Toán học hay Văn học khó hơn?" - Câu hỏi này sẽ không có câu trả lời chung cho tất cả mọi người, phải không? Mỗi một lĩnh vực sẽ có cái hay riêng, có cái khó riêng của nó. Việc chúng ta thấy khó hay không là phụ thuộc vào mỗi người. Có thể là tính cách, sở thích, nền tảng kiến thức mà sẽ quyết định về đánh giá của bạn xem là Front-end hay Back-end khó hơn.
Trên thực tế, có những người làm Back-end rất giỏi và họ cũng rất thích việc ấy, họ cho rằng Back-end phù hợp với họ, nhưng điều đó không có nghĩa là họ làm Front-end tốt. Ngược lại, một người làm giao diện tốt, không chắc là họ làm việc với dữ liệu chính xác và logic.
Như vậy, việc đánh giá cái nào khó hơn, có lẽ ta nên quay về bên trong bản thân mình và đặt câu hỏi: "Mình thích tính chất công việc nào hơn?". Muốn trả lời câu hỏi này, ta phải hiểu chính bản thân mình - Điều mà không phải ai cũng làm được.
Khó hay dễ? - Nguồn ảnh: sciencemag.orgNếu cậu vẫn thấy khá khó khăn để đưa ra quyết định, hãy thử tham khảo cách này thử nha. Hãy học thử cả 2 lĩnh vực Front-end và Back-end ở mức độ làm quen cơ bản, cậu sẽ có cảm nhận và trải nghiệm, từ đó có thêm thông tin, quan sát cảm xúc của bản thân mình và ra quyết định. Cậu đừng lo phí thời gian vì 2 lý do sau:
Cuộc đời là hàng loạt phép thử sai và những sự lựa chọn. Vậy nên "Cứ sai đi, vì cuộc đời cho phép" - Thà là sai ngay từ đầu, sai một lần rồi thôi, còn hơn là cứ sai một đời - Cậu thấy tớ chế nhạc ghê không? Nhưng nghe nó cứ hợp lý phải không?
Hãy trải nghiệm, quan sát cảm xúc và lựa chọn.Tóm lại, Front-end hay Back-end đều tốt cả, cơ hội nghề nghiệp và mức lương đều ngon. Điều quan trọng là cảm xúc của cậu, con tim của cậu hướng về bên nào? Ở bên nào giúp cậu hạnh phúc hơn, tự tin hơn? Mấy câu hỏi này không chỉ ngồi suy nghĩ được mà trả lời được đâu, hãy trải nghiệm một cách nghiêm túc, rồi tùy duyên mà tiến tới nhé.
Chúc cậu sớm tìm được con đường của hạnh phúc trong lập trình.
Photon
Đượ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ư.
Xem thêmLiên hệ
Copyright by Kmin Academy