Giao diện, tính năng, cấu trúc, font chữ, đồ họa, link liên kết, nút đăng nhập thử điện tử và các ảnh động là những ấn tượng đầu tiên về một website. Và tùy vào tính chất mà những website khác nhau sẽ có những tính năng tương tác cũng như cách thức điều hướng khác nhau. Những thứ bạn nhìn thấy trên trình duyệt đã được xử lý qua ngôn ngữ HTML, một loại ngôn ngữ sử dụng trong lập trình. Trong khi đó, bố cục và màu sắc sẽ được thiết lập bởi CSS, và các hình ảnh tương tác, hiệu ứng chuyển động sẽ được thực hiện bởi JavaScript. Nhưng bạn sẽ chẳng bao giờ thấy được những điều này trừ khi website báo lỗi. Chính xác hơn, tất cả những gì bạn nhìn thấy được chính là công việc của Front-End Development.

Vậy Front-End Development thực sự là gì?

Nói một cách cụ thể: một Front-End Developer sẽ dựng nên giao diện bên ngoài mà người dùng thấy được khi truy cập vào một website bằng một trình duyệt, nhu cầu về vị trí này bắt đầu từ giữa những năm 1990 cùng với sự phát triển của Internet. Tuy nhiên, tại thời gian đầu của kỷ nguyên World Wide Web, vị trí Front-End Developer thực sự bị xem nhẹ.

Vào năm 1991, website đầu tiên trên thế giới ra đời nhưng giao diện cực kỳ nhàm chán. Trước đó, vào năm 1989, ông Tim Berners-Lee đã phát minh ra mạng lưới thông tin toàn cầu World Wide Web, trong lúc là một kỹ sư phần mềm tại Tổ chức nghiên cứu hạt nhân Châu Âu (CERN). Đến năm 1990, ông tiếp tục tạo ra ba công nghệ nền tảng, vẫn tiếp tục được sử dụng tới ngày nay gồm: Ngôn ngữ đánh dấu siêu văn bản HyperText Markup Language (HTML), Định danh tài nguyên đồng nhất Uniform Resource Identifier (URI hay phổ biến hơn như URL), và Phương thức giao tiếp siêu văn bản HyperText Transfer Protocal (HTTP). Nếu HTML là ngôn ngữ của web, URL có vai trò như địa chỉ truy cập của tài nguyên, thì HTTP là phương thức quyết định tài nguyên được truy xuất thế nào.

Lúc ban đầu, website đầu tiên chỉ tập hợp một vài liên kết đến các dự án world wide web. Do đó, vai trò của Front-End Developer không thật cần thiết. Tuy nhiên, ngôn ngữ lập trình và phương thức giao tiếp đó có thể xem là bước khởi đầu cho những website thú vị hơn thời nay. Các thẻ table HTML được ra đời sau đó là một bước tiến cách mạng trong tổ chức nội dung trên website, bên cạnh các hiệu ứng đồ họa bắt đầu được phát triển vào những năm đầu thâp niên 90. So với những website ở thời hiện tại, các website ngày đó vẫn khô khan và không theo bất kỳ chuẩn mực nào. Tuy nhiên đây là một bước tiến quan trọng đối với lĩnh vực Web Development.

Giao diện trang chủ Yahoo trước đây và bây giờ

Không lâu sau đó, với sự ra mắt liên tiếp của JavaScript và Flash vào năm 1995 – 1996, công việc Front-End Development bắt đầu phát triển mạnh mẽ. Đỉnh điểm năm 1998, CSS – Cascading Style Sheets được tạo ra, đã hoàn thiện tất cả công cụ Front-End Developer cần có, để dựng nên một website hiện đại như ngày nay.

Ngôn ngữ Front-End

Chỉ với ba ngôn ngữ lập trình nhưng cách các Web Developer tạo ra website đã thay đổi đáng kể trong suốt 20 năm qua. Mozilla sử dụng hình ảnh chiếc bánh ba lớp để minh họa sự kết hợp của chúng. HTML sẽ là lớp dưới cùng, kế theo là CSS và trên cùng là JavaScript.

Những Web Developer thưở sơ khai với HTML bị giới hạn trong việc xử lý các thiết kế và định dạng. HTML hỗ trợ định dạng cấu trúc chung của website và các yếu tố cơ bản về giao diện. Ngoài ra, HTML có thể được sử dụng để tô đậm hoặc in nghiêng các kí tự, và nhóm các văn bản lại với nhau.

Bấy nhiêu đó là đủ với một website thuần văn bản, tuy nhiên liệu bạn muốn thêm hình ảnh minh họa hay hình nền thì sao? Đây chính là sức mạnh của CSS, học lập trình ngôn ngữ này cho phép tác động nhiều hơn đến giao diện website. Khi dùng CSS, Front-End Developer có thể thay đổi giao diện trên trang chỉ bằng một đoạn code, mà không cần phải lập lại nhiều lần. Ví dụ: chỉ cần một vài dòng CSS để có thể biến tất cả tiêu đề trên website thành màu xanh.

Với JavaScript ở trên cùng, một website tĩnh sẽ trở nên sinh động hơn với các trải nghiệm động. Nếu trở lại những năm 1990 với AOL CDs và kết nối dial-up, bạn sẽ cực kỳ thất vọng khi phải chờ tải trang. Cứ mỗi lần thực hiện điều gì trên website, bạn phải đợi trình duyệt refresh. May mắn với JavaScript, chúng ta sẽ không cần phải chờ đợi như trước nữa.

Giờ đây, Front-End Developer có thể điều khiển nhiều thành phần trên website mà không phải chờ tải trang (Hãy thử tưởng tượng sẽ khó chịu thế nào khi trình duyệt refresh mỗi lần bạn lăn chuột để xem News Feed trên Facebook). Các Developer cũng sử dụng front-end framwork để làm nổi bật hay đơn giản hóa những nhiệm vụ của JavaScript. Ví dụ, với Angular JS framwork có thể giúp các developer xây dựng những ứng dụng trên trang hiệu quả hơn. jQuerry có thể đơn giản hóa những nhiệm vụ, trong khi AJAX có thể thêm XML, một ngôn ngữ đánh dấu khác, để JavaScript có thể cập nhật website mà không cần phải tải lại trang.

Nếu Front-End Developer tạo nên giao diện, hiệu ứng trên trang, thì Back-End Developer ở chiều ngược lại làm việc với máy chủ server và cơ sở dữ liệu database để hiện thực hóa các yêu cầu từ người dùng. Vài trò giữa hai vị trí hoàn toàn khác biệt, nhưng khoảng cách dần trở nên mờ nhạt với sự ra đời của các Full-Stack Developer.

Khác biệt giữa Front-End, Back-End và Full-Stack Deverloper

Sự khác biệt giữa Front-End và Back-End chủ yếu đến từ người dùng. Trong khi Front-End Developer sử dụng các đoạn mã để tạo ra những gì bạn nhìn thấy, thì Back-End ở phía sau, cung cấp các đoạn mã để thực hiện các lệnh của người dùng từ phía máy chủ. Một website sẽ có máy chủ, cơ sở dữ liệu và những ứng dụng khác, và Back-End Developer có thể tạo ra các đoạn mã giúp người dùng tương tác với hệ thống này.

Amazon là ví dụ tiêu biểu về Back-End Development trong thực tế.

Bạn vào Amazon và tìm kiếm một chiếc áo thun mới. Back-End Developer sẽ sử dụng ngôn ngữ server-side lấy tất cả các thông tin về áo thun từ cơ sở dữ liệu. Những thông tin này sẽ được xử lý thông qua một ứng dụng và trả kết quả cho người dùng thông qua giao diện được viết bởi ngôn ngữ Front-End. Kết quả là bạn tìm thấy hàng ngàn mẫu áo thun. Nếu bạn tiếp tục dùng bộ lọc filter để tìm kích thước mong muốn, hệ thống này sẽ lặp lại quy trình như trên một lần nữa. Những Back-End Developer cần có kỹ năng về ngôn ngữ lập trình Ruby, Python, PHP và những ngôn ngữ server-side khác với ngôn ngữ quản lý cơ sở dữ liệu SQL. Trong khi Back-End Development cần kỹ thuật hơn Front-End Development, nhưng Back-End Developer không thể làm việc mà thiếu Front-End Developer.

Gần đây, trên thị trường xuất hiện một thuật ngữ mới Full-Stack Developer, phổ biến trong các công ty khởi nghiệp và doanh nghiệp nhỏ, họ tìm cách kết hợp front-end và back-end làm một. Full-Stack Developer có thể làm công việc của cả Front-End và Back-End. Họ không phải là chuyên gia của cả hai, nhưng họ có sự hiểu biết chung về nhu cầu và ngôn ngữ server-side lẫn user-side. Full-Stack Developer có thể làm tất cả mọi việc, từ thiết kế cho tới giai đoạn hoàn thiện.

Công việc của Front-End Developer

Tất cả công việc của Web-Developer chính là đảm bảo trải nghiệm người dùng luôn tốt nhất trên website. Sự sắp xếp gọn gàng hay quá trình tải trang không bị gián đoạn khi tải trang chính là mục tiêu của Front-End Developer. Thường Web Developer sẽ quan tâm nhiều hơn đến giao diện website, nhưng thực sự công việc đầu tiên và tối quan trọng nhất của họ chính là tính hiệu quả và khả năng làm việc của chúng. Front-End Developer cũng cần sáng tạo nhưng cũng phải có tố chất kỹ thuật, công việc của họ sẽ là cầu nối giữa Web Designer và Back-End Developer.

Web Developer có thể kiêm công việc của Deginer trong một số trường hợp, nhưng vai trò của cả hai hoàn toàn riêng biệt. Web Developer sẽ chuyển các ý tưởng của Designer thông qua các mockup và framework khác nhau. Để dễ hiểu, Front-End Developer không chụp những bức ảnh trong slideshow, nhưng sẽ tạo nên giao diện và các yếu tố chuyển động khác nhau để tạo nên trải nghiệm sống động cho người xem.

Trên trang chủ của Nordic Coder, các tính năng phóng to hình ảnh hay các dòng text nhỏ lại khi bạn dời con trỏ chuột sang vị trí khác. Đó là dấu ấn tinh tế được tạo ra bởi các Front-End Developer.

Một ví dụ khác chính là cách website hiển thị trên deskstop hay smartphone. Các  website ngày nay phải linh hoạt, thay đổi giao diện đáp ứng cho từng thiết bị cụ thể, từ desktop, smartphone cho đến máy tính bảng. Bất kể người dùng sử dụng thiết bị nào, website vẫn thay đổi giao diện một cách linh hoạt mà không gặp bất kỳ trở ngại, và đó chính là công việc của Front-End Developer khi triển khai thiết kế của Designer.

Front-End Developer cũng cần có trí tượng tượng phong phú để có thể hình dung website sẽ trông như thế nào, trong khi phải đáp ứng các yếu tố kỹ thuật để có thể hiện thực hóa những điều đó. Công việc này phải được thực hiện một cách liền mạch, đảm bảo tính trực quan nhất cho người dùng.

Trong khi những gì bạn thấy được do Front-End Developer tạo ra, thì phía sau hậu trường lại là công việc của những nhà Back-End Developer với những đoạn mã được cài đặt trên máy chủ, sẵn sàng đáp ứng các lệnh truy cập của bạn.

Làm thế nào để trở thành Front-End Developer

Như thông tin bạn đọc đến đây, hầu hết các Front-End Developer đều cần phải có kiến thức về HTML, JavaScript và CSS. Kiến thức Framework, bao gồm JSON và jQuery cũng cần thiết cho tất cả Web Developer. Đối với những vị trí Senior Front-End Developer, các doanh nghiệp cũng thường yêu cầu kinh nghiệm về PHP hay framework về server-side.

Công việc Front-End Developer thường không đòi hỏi bằng cấp. Hầu hết trên các trang giới thiệu việc làm trong lĩnh vực IT hiện nay đều yêu cầu kinh nghiệm thực tế hơn văn bằng tốt nghiệp. Theo Cục thống kê Lao Động Hoa Kỳ, bằng cấp mới chỉ là yêu cầu đầu tiên cho vị trí Front-End Developer tập sự.

Vậy có nên học để trở thành Front-End Developer? Chúng tôi Nordic Coder rất hứng thú về tương lai của ngành này, được gọi là “thời đại của những Front-End Developer cuối cùng”.

Liệu các Front-End Developer không còn đất sống?

Ngày nay, có nhiều cách để thiết lập website nhanh chóng mà không cần tới Web Developer chuyên nghiệp. Quan điểm này liệu có đúng không? Dựa trên một nền tảng sẵn có, bạn có thể chọn template cho website, thêm một vài tính năng tăng tương tác và bạn sẽ có riêng website chỉ sau 1 giờ đồng hồ. Mặc dù dễ dàng, nhưng các website được dựng lên theo cách này thường gặp khó khăn trong việc cá nhân hóa những tính năng riêng. Do đó, với Front-End Developer, website của bạn sẽ nổi bật hơn giữa đám đông. Và thực tế, những website bạn yêu thích vì có giao diện trực quan và các tính năng độc đáo…, đều có sự góp sức không nhỏ của một Front-End Developer có kỹ năng.

Từ năm 2016 đến 2026, số lượng việc làm dành cho Front-End Developer được dự kiến tăng trưởng 15%, nhanh hơn mức trung bình của ngành liên quan đến tin học và nghề nghiệp khác nói chung. Mức tăng trưởng trung bình cho các lĩnh vực liên quan đến tin học rơi vào khoảng 13%, trong khi các ngành nghề nói chung vào khoảng 7% từ 2016 đến 2026. Theo Cục thống kê Hoa Kỳ, thu nhập trung bình năm 2017 cho một Front-End Developer là 67.990 USD.

Một lý do khác khiến việc làm dành cho Front-End Developer tăng đến từ nhu cầu tối ưu website dành cho các thiết bị di động. Tăng trưởng trong lĩnh vực thương mại điện tử cũng được kỳ vọng sẽ thúc đẩy nhu cầu việc làm dành cho Web Developer. Đây là tương lai đầy hứa hẹn dành cho những ai đang mong muốn dấn thân vào nghề Front-End Developer.

 

 

Minh Nguyên - I'm a Product Manager

Minh Nguyên
I'm a Product Manager