Trong bài viết này bạn sẽ biết được thế nào là một Front-end developer, các yêu cầu từ phía nhà tuyển dụng đối với một Front-end, những nền tảng công nghệ mà bạn có thể học hỏi được từ việc trở thành một Front-end, cũng như tương lai nào cho bạn khi bạn trở thành một Front-end.

Bài viết cũng giới thiệu một vài cách cách học, tìm hiểu và áp dụng như thế nào để có thể mau chóng trở thành một senior, chuyên gia trong lĩnh vực này.

Front-end Developer là gì

Mọi người hay hiểu Front-end developer là những dev làm về “cắt HTML/style CSS”, có thể convert từ PDS sang HTML/CSS. Những lập trình viên nhiều kinh nghiệm hơn thì nghĩ là: có thể lập trình Js như jQuery để làm animation, thực hiện các thao tác đồ hoạ của trên nền canvas của HTML5, hoặc là video.

Ngày nay với sự phát triển vượt bậc về nền tảng công nghệ như Nodejs, lý luận (Virtual DOM, PWA, AMP, Instance Article), sự hỗ trợ của phần cứng (đồ hoạ 3D), và các nền tảng phần mềm (Chrome, Safari), hệ điều hành (iOS, Android), kèm theo các kỹ thuật mới về Testing… dẫn đếnFront-end dev không chỉ đơn thuần là làm các công việc nhàm chán, đơn giản mà còn hướng đến nhiều lĩnh vực khác nhau với đòi hỏi về kinh nghiệm, sự hiểu biết chuyên sâu, đa dạng từ hầu hết các lĩnh vực trong ngành phần mềm.

Những yêu cầu từ phía nhà tuyển dụng

Một frontend dev phải có tư duy về UI/UX, lập trình viên không đơn thuần chỉ là một coder giỏi mà còn phải có tư duy như một Designer, một Business Analyst (BA) có thể phát triển sản phẩm đẹp, tiện dụng mang lại trải nghiệm tốt nhất cho người dùng.

Bởi vì trong sự cạnh tranh khốc liệt thì một sản phẩm đẹp hơn sẽ chiếm được tình cảm và sự ủng hộ từ phía người dùng, người ta không thể sử dụng một thiết bị rất đẹp về mọi thứ như iPhone, nhưng khi mở ứng dụng của bạn lên lại thấy xấu, thiết kế cẩu thả, mắc phải các lỗi cơ bản về hiển thị. Có hàng tá sản phẩm giống bạn nhưng lại rất tiện dụng, trong khi đó sản phẩm của bạn lại rối rắm, phức tạp, thì rõ ràng không ai muốn bỏ thời gian, công sức để tìm hiểu. Nói một cách khác, một sản phẩm xấu, hoặc khó sử dụng sẽ làm cho người dùng cảm thấy nó thiếu chuyên nghiệp và không tôn trọng họ. Sản phẩm đẹp sẽ giúp bạn nâng cao tính cạnh tranh, dễ quảng bá và truyền thông đến với người dùng.

Một front-end dev phải có tư duy về làm sản phẩm có performance tốt.

Một sản phẩm có performance tệ, người sử dụng sẽ nghĩ sản phẩm này ảnh hưởng đến thiết bị ví dụ như điện thoại của họ, ảnh hưởng đến thói quen sử dụng hằng ngày và như vậy họ sẽ đưa sản phẩm của bạn vào blacklist.

Một front-end dev phải có tư duy nắm bắt các nền tảng công nghệ, phương pháp phát triển hiện đại đang thống trị hiện nay như Angular, Reactjs, Vuejs, Webpack, Gulp

Những nền tảng công nghệ không đơn thuần chỉ là cung cấp phương pháp để phát triển ứng dụng theo một cách thức nhất định nào đó, mà còn mang trong mình triết lý và phương pháp luận để phát triển sản phẩm hiệu quả: nhanh, ổn định, ít bug, chi phí thấp, dễ dàng để mở rộng, bảo trì. Nền tảng công nghệ mới còn mang trong mình sức mạnh từ việc kế thừa ưu điểm những nền tảng trước đó, và tận dụng được các thế mạnh từ version mới của ngôn ngữ như Js, trình duyệt v.v…

Ngoài ra, một front-end dev phải có kiến thức về bảo mật, hiểu đúng bản chất của ngôn ngữ như Javascript, hiểu cơ chế hoạt động của trình duyệt. Để tránh ứng dụng gặp phải các lỗi bảo mật, các lỗi về leak memory cơ bản ảnh hưởng đến uy tín và thương hiệu của sản phẩm.

Những nền tảng công nghệ

Phần tiếp theo của bài viết, chúng ta sẽ lướt qua các nền tảng công nghệ mà khi bạn muốn trở thànhfront-end developer bạn cần phải biết cũng như có hiểu biết đúng đắn, đầy đủ và thật sâu về nó.

Những nền tảng này không chỉ ảnh hưởng đã từ rất lâu trong quá khứ, mà còn hiện tại cho đến tương lai về sau.

Hệ sinh thái CSS Framework

Ngày nay không khó để điểm mặt chỉ tên các nền tảng về css framework phổ biến như: Bootstrap, Foundation, SemanticUI và hàng loạt các tên tuổi khác có các thế mạnh, triết lý riêng.

Các framework cung cấp hàng loạt các tính năng, đáp ứng gần như là đầy đủ các yêu cầu cơ bản cần có đối với một sản phẩm được thiết kế theo hướng hiện đại: carousel, form, modal, drag/drop, datetime picker… nhằm giúp lập trình viên phát triển nhanh hơn ứng dụng của mình.

Hệ sinh thái jQuery

Sau nhiều năm đứng đầu về sự đóng góp của mình trong lĩnh vực Front-end, JQuery đã tạo cho mình một hệ sinh thái, một vị trí thống lĩnh mà hiếm có thư viện nào có thể sánh kịp. Các plugin của jQuery đã cung cấp hầu hết mọi thứ mà các lập trình viên cần đến, với lại rất dễ dàng để tích hợp vào source code của họ. API jQuery được thiết kế thông minh, dễ sử dụng, hầu hết là tương thích với các trình duyệt phổ biến đã làm giảm đi chi phí phát triển, kiểm lỗi và hạn chế được rất nhiều rủi ro.

Ngay cả khi các nền tảng về front-end lớn hiện tại như Angular, React, Vuejs không còn phụ thuộc vào nó nữa thì tư tưởng và tầm ảnh hưởng của nó sẽ vẫn còn trong rất nhiều năm tới, nếu không muốn nói là khó có thể thay thế được trong tương lai gần.

Và cũng tránh nhầm lẫn trong việc jQuery so sánh với các nền tảng như Angular, Reactjs… thì trong giới hạn của bài viết, bạn đọc có thể hình dung rằng đó là 2 nền tảng tiếp cận theo hai hướng hoàn toàn khác nhau, có thể chúng không phụ thuộc lẫn nhau nhưng không có nghĩa là chúng phủ định lẫn nhau.

Hệ sinh thái Nodejs

Nodejs có một hệ sinh thái đa dạng và rộng lớn, phát triển với tốc độ khủng khiếp chưa từng có, cùng với sự tham gia hỗ trợ của các ông lớn trong ngành bao gồm Microsoft, Google, Facebook v.v…

Với Nodejs bạn có thể tìm thấy mọi thứ mình cần, bao gồm các công cụ để phát triển Frontend, các phương pháp phát triển sản phẩm mới.

Hệ sinh thái Webpack

Webpack là một phần trong hệ sinh thái của Nodejs, nhưng vì tầm vóc và tương lai của nó nên chúng ta cũng nên tách nó ra thành một phần tương xứng. Webpack cung cấp cho chúng ta công cụ quan trọng để hiện thực hoá nhiều thao tác vốn phức tạp nay trở nên dễ dàng.

Các tiện ích mà Webpack cung cấp gần như là bao phủ tất cả, bao gồm giải quyết các vấn đề về tổ chức source code, giải quyết sự phụ thuộc giữa các thư viện, quản lý các resource như image, font, đi kèm với các công cụ để tối ưu source code như tách source nhỏ ra để tăng tốc tải trang…

Tương lai của một Front-end Dev

Ngày nay, với phong trào khởi nghiệp, các sản phẩm mới được phát triển không chỉ nhiều về số lượng, mà đa dạng về lĩch vực, các sản phẩm cũ cũng được nâng cấp lên về chất lượng, performance bên trong cũng như UI/UX bên ngoài tạo ra một nguồn cầu rất lớn từ thị trường.

Các ứng dụng giờ không chỉ được xây dựng cho desktop, mà còn phải chạy tốt trên nền tảng di động tạo ra gần như gấp đôi khối lượng công việc để làm. Ngoài ra nền tảng di động đòi hỏi các yêu cầu khắt khe hơn về các tiêu chí kỹ thuật như về performance, network, optimize việc sử dụng tài nguyên của thiết bị sao cho tối ưu nhất.

Một thị trường đa dạng, rộng lớn chắc chắn sẽ mang lại nhiều cơ hội nghề nghiệp hấp dẫn (số lượng), với mức lương cạnh tranh (chất lượng), điều đó làm nên một tương lai tươi sáng cho nghề nghiệp của chúng ta.

Hình bên dưới cho thấy trend của front-end vs back-end

Phương pháp học như thế nào

Có nhiều con đường, kế hoạch để trở thành front-end dev, trong vòng 64 giờ, mỗi ngày 2 giờ, 1 tháng để có các kiến thức cơ bản, sau đó thì bạn có thể chọn một trong các nền tảng khác để theo đuổi như: Angular, React, Vuejs v.v…

Lựa chọn môi trường làm việc

Việc lựa chọn công ty và môi trường làm việc phù hợp để áp dụng những kiến thức đã học, kiểm chứng lại, từ đó rút ra kinh nghiệm và tích luỹ kiến thức cho mình là một trong những điều kiện tiên quyết để giữ bạn luôn đi đúng hướng.

Có nhiều công ty đã và đang áp dụng các công nghệ mới trong bài viết này để phát triển các sản phẩm của họ như Tiki, Lazada và Sendo là một trong những số đó.

Nói thêm về Sendo, là một trong những công ty thương mại điện tử dẫn đầu thị trường, nhưng không ngủ quên trên chiến thắng, đội ngũ lãnh đạo của công ty hiểu rằng, chỉ có thể áp dụng các kỹ thuật mới nhất, bắt kịp với xu hướng công nghệ mới có thể duy trì vị thế dẫn đầu của mình bỏ lại sau lưng các đối thủ cạnh tranh.

Các ứng dụng Sendo có hàng ngàn người sử dụng mỗi giây, tập khách hàng ngoài người sử dụng trẻ tuổi, không chỉ tập trung ở các đô thị lớn, mà còn cả các khu đô thị mới nổi và khu vực nông thôn. Các khu vực nông thôn phần lớn các khách hàng truy cập ứng dụng thông qua 3G với băng thông thấp, nhưng Sendo vẫn muốn cung cấp giải pháp tốt nhất chẳng hạn như tốc độ tải trang ứng dụng chỉ trung bình từ 3 giây, và sản phẩm tuân theo tiêu chuẩn của Progressive Web App để mang lại trải nghiệm tốt nhất cho người dùng.

Kết luận

Việc trở thành một senior front-end cần thời gian, sự nghiêm túc và tập trung với một phương pháp học đúng đắn. Bạn cũng cần phải tìm thấy môi trường làm việc tốt để có thể ứng dụng và kiểm chứng các kiến thức của mình.

Vậy nên, hãy cứ khát khao, hãy cứ đam mê, thành công sẽ tìm đến bạn.

Trần Phong Phú - Trần Phong Phú hiện đang là Technical Architect tại Sendo, một trong các nền tảng thương mại điện tử lớn nhất Việt Nam. Anh đảm nhận nhiệm vụ thiết kế và phát triển hệ thống và các tính năng cốt lõi cả Frontend và Backend nhằm tạo ra những phần mềm có chất lượng cao với hiệu năng tốt phục vụ hàng triệu người dùng. Ngoài ra, Phú cũng là một lập trình viên fullstack về mảng công nghệ mã nguồn mở như là: React, Nodejs, PHP, Golang, MySQL, v. Anh đã có rất nhiều kinh nghiệm trong việc đào tạo nhân lực IT và yêu thích việc chia sẻ các kinh nghiệm chuyên sâu của mình để giúp các học viên cải thiện kỹ năng của họ.

Trần Phong Phú
Trần Phong Phú hiện đang là Technical Architect tại Sendo, một trong các nền tảng thương mại điện tử lớn nhất Việt Nam. Anh đảm nhận nhiệm vụ thiết kế và phát triển hệ thống và các tính năng cốt lõi cả Frontend và Backend nhằm tạo ra những phần mềm có chất lượng cao với hiệu năng tốt phục vụ hàng triệu người dùng. Ngoài ra, Phú cũng là một lập trình viên fullstack về mảng công nghệ mã nguồn mở như là: React, Nodejs, PHP, Golang, MySQL, v. Anh đã có rất nhiều kinh nghiệm trong việc đào tạo nhân lực IT và yêu thích việc chia sẻ các kinh nghiệm chuyên sâu của mình để giúp các học viên cải thiện kỹ năng của họ.