Thuật ngữ Fullstack phổ biến như là một HOT TREND trong vài năm gần đây trong ngành công nghệ IT. Nhiều developer cũng hướng tới phát triển các skill để trở thành một Fullstack developer. Với cương vị là một công ty phần mềm đang sở hữu và tiếp tục đào tạo ra nhiều Fullstack developer giỏi. ONETECH xin giải thích rõ hơn về khái niệm này cũng như nhu cầu của thị trường hiện nay đối với vị trí Fullstack cùng một số lời khuyên dành cho các bạn mong muốn trở thành một Fullstack dev trong tương lai.
ONETECH là công ty phần mềm có trụ sở tại TP. Hồ Chí Minh, Việt Nam và Tokyo, Nhật Bản. ONETECH với thế mạnh và kinh nghiệm nhiều năm phát triển outsource và offshore cho các công ty Nhật Bản. Trong quá trình phát triển ra nước ngoài (オフショア開発), chúng tôi thực hiện một loạt các hoạt động từ xác định yêu cầu đến thiết kế, sản xuất và thử nghiệm trong phát triển hệ thống, phát triển phần mềm quản lý doanh nghiệp. Đặc biệt là di chuyển và phát triển mở rộng các ứng dụng ERP, SAP cho các công ty.
Fullstack developer – anh là ai?
Fullstack developer có thể được coi là một developer toàn năng. Người có thể tự mình đảm đương được tất cả (full) các công đoạn (stack) mà phát triển một phần mềm (Web) yêu cầu. (Giải nghĩa thêm, Fullstack là khái niệm dùng nhiều trong web developer, đối với các lĩnh vực khác trong phát triển phần mềm như phát triển hệ thống, ứng dụng… thường không dùng)
Fullstack developer là một web developer thành thạo cả về Frontend lẫn Backend, họ không những thành thạo về ngôn ngữ lập trình trên máy chủ (PHP, Java, Ruby, Python, .Net…), kiến trúc logic, hệ thống, thiết kế Database, APIs, Libs, Framework, server, OS, Git… mà còn làm tốt các nhiệm vụ của lập trình trên trình duyệt Frontend (giao diện người dùng) như layout, Css, html, javascript, animation, design…
Về cơ bản: Fullstack developer = Frontend + Backend
Thực tế, một định nghĩa đầy đủ về Fullstack developer phải là:
Fullstack developer = Frontend + Backend + Devops + Design + QA/QC
Có thực sự tồn tại các Fullstack developer?
Có rất nhiều tin đăng tuyển dụng dành cho vị trí Web Fullstack developer với mức lương cao trong ngành IT cùng nhiều đãi ngộ rất tốt. Chúng tôi (ONETECH) từng phụ trách tuyển dụng nhiều ứng viên vị trí này cho công ty. Lượng ứng viên nộp đơn vô cũng khá nhiều, tuy nhiên, trong suốt một năm chúng tôi chưa từng tìm kiếm được một ứng viên thực sự là một “Fullstack developer”. Cuối cùng chúng tôi chọn giải pháp “đào tạo các developer” lên thành Fullsatack.
“Không, thực sự là không tồn tại Fullstack developer đúng nghĩa!”
Tôi chưa gặp một người nào có khả năng làm tốt cả Frontend và Backend như nhau. Nhiều người trả lời trong cuộc phỏng vấn rằng họ thường xuyên phải làm và rất yêu thích cả hai công việc Front-End và Backend. Nhưng khi phỏng vấn kỹ hơn, tôi thấy hầu hết họ đều chỉ là các Senior web developer (Backend) nhiều kinh nghiệp, họ có thể làm cả Front-End trong các dự án nhưng thực sự không giỏi. Họ mất nhiều thời gian hơn rất nhiều để hoàn thành những yêu cầu về Frontend cơ bản và chất lượng sẽ bị ảnh hưởng. Các yêu cầu về Frontend nâng cao sẽ thực sự làm khó họ (rất có thể họ sẽ không thừa nhận điều đó).
Quả thực, các yêu cầu dành cho Fullstack developer là quá nhiều, từng lĩnh vực trong đó đều đòi hỏi cần rất nhiều thời gian để tích lũy kinh nghiệm. Không ai có đủ “thời gian” để hoàn thiện điều này. Đó là lý do vì sao theo các thống kê mới nhất hiện nay thì mức lương trung bình của Fullstack còn thấp hơn Backend.
Các Backend nhiều kinh nghiệm thường nhận mình là Fullstack?
Có một số lý do để các nhà phát triển Backend thường tự coi mình là Fullstack :
Trong rất nhiều dự án họ phải tự xoay sở, họ không hề có Frontend hỗ trợ.
Thiết kế giao diện người dùng khá đơn giản: Dùng một số theme, template hay framework và custom một chút khiến nó hoạt động là xong?
Các khách hàng thường không yêu cầu cụ thể về Frontend
Code Backend luôn bao gồm code html, css và javascript vốn là việc của Frontend.
Công việc của một Backend hàng ngày vẫn phải tự xử lý khá nhiều công việc của Front-End đơn giản như chỉnh sửa html và css. Họ nếu làm lâu năm sẽ tự khắc thông thạo các công việc này, chỉ cần có yêu cầu cụ thể là họ có thể làm được.
Thực tế, công việc của một Frontend không dễ dàng như thế. Nó thường được coi là các yêu cầu phi chức năng (Non-Function Requirement) nhằm giúp nâng cao chất lượng website và trải nghiệm người dùng. Điều này vốn không có trong yêu cầu mô tả của khách hàng và các Backend developer sẽ bỏ qua hoặc làm đơn giản nhất có thể. Nhưng nếu một Frontend developer làm họ sẽ phải đảm bảo chất lượng cao hơn dựa theo kinh nghiệm và kỹ năng chuyên nghiệp của họ.
Các Frontend thường phải có kỹ năng về design, óc mỹ thuật và kinh nghiệm xử lý các chuyển động tương tác nhằm thu hút người dùng nhất định. Điều vốn khá hạn chế đối với các Backend.
Ưu điểm của Fullstack developer
Tiết kiệm tiền – Rõ ràng việc thuê một Fullstack giúp tiết kiệm tiền hơn là thuê 2 người Front-End và Backend.
Nhanh hơn: Mọi thứ được thực hiện bởi một người sẽ nhanh hơn – Quá rõ ràng, họ không phải chờ đợi hay phụ thuộc bất cứ điều gì vào người khác.
Ít rủi ro hơn: Các rủi ro về hiểu nhầm, miscommunication hoặc “i don’t care”… giữa Front-End và Backend sẽ không thể xảy ra.
Linh hoạt hơn: Fullstack developer bản chất là một developer đa năng với khả năng học hỏi và đáp ứng nhanh tất cả các yêu cầu trong lĩnh vực của họ. Họ rất linh hoạt nhảy từ vị trí này sang vị trí khác trong các dự án để hỗ trợ.
Dễ dàng thay thế người khác – Các Fullstack developer có thể thay thế một vai trò cụ thể của Front-End hoặc Backend dễ dàng hơn trong một thời gian ngắn. Điều này giúp dự án vẫn hoạt động tốt và công ty có thời gian để xử lý khủng hoảng thiếu người một cách tốt nhất.
Xử lý team work: Vâng, chắc chắn là dễ dàng hơn để phân công công việc và quản lý tiến độ của dự án khi trong nhóm có ít nhất một Fullstack developer. Các vấn đề về lòng tin, văn hóa, tổ chức của một nhóm hoặc công ty sẽ ít gây xáo trộn cho công việc của họ.
Những hạn chế của Fullstack developer
Fullstack development tuy rất hot nhưng không phải ai cũng có thể theo đuổi, nó cũng có một số hạn chế và điểm yếu riêng:
Fullstack development có thể hiểu là người “Biết mọi thứ” nhưng “Không chuyên sâu”.
Chất lượng sản phẩm sẽ có nhiều hạn chế khi áp dụng kiểu “làm từ A tới Z” này.
Mới ra trường và làm cho một công ty startups nhỏ với mức lương hấp dẫn bạn sẽ dễ bị “cưỡng ép” trở thành một lập trình viên full stack. Đơn giản là quy mô công ty họ không cho phép tuyển dụng tất cả các vị trí, thay vào đó developer sẽ phải có khả năng “cân” mọi thứ mà họ yêu cầu. Bạn sẽ phải tự mày mò học học và nó chắc chắn sẽ không tốt bằng việc trực tiếp có những người kinh nghiệm chỉ dạy cho bạn.
Fullstack development thường chọn làm công việc tự do như một Freelancer hoặc một nhóm làm việc tự do.
Fullstack development phù hợp cho mô hình của các công ty nhỏ, Startup công nghệ trong thời gian đầu thành lập. Khi phát triển đến một mức độ nhất định, họ sẽ cần chuyên môn hóa và tối ưu nguồn lực tốt hơn.
Mức lương của Fullstack
Theo nhiều báo cáo của các công ty dịch vụ nhân sự CNTT, mức lương của các Fullstack developer hiện nay tuy rất hấp dẫn các nhưng vẫn thấp hơn Backend. Điều này cũng dễ hiểu bởi các Backend hiện tại có thể hiểu là Fullstack có kỹ năng Backend chuyên sâu và nhiều kinh nghiệm. Fullstack chưa thực sự chứng minh được giá trị nổi bật của mình trước Backend.
Nhu cầu thực tế của thị trường với Fullstack developer
Cơ hội việc làm cho các Fullstack developer tại Việt Nam hiện đang rất cao. Công nghệ thông tin có vai trò quan trọng trong hội nhập với thế giới cùng với làn sóng chuyển đổi số, sự bùng nổ của các doanh nghiệp startups công nghệ. Đó là lý do tại sao nhu cầu thị trường phát triển website trong lĩnh vực CNTT luôn tăng cao nhất. Nó mở ra cơ hội cho nhiều lập trình viên đa năng (Fullstack ). Đó cũng là lý do tại sao mức lương lập trình viên Fullstack luôn tăng nhanh và thuộc top đứng đầu ngành.
Tạm kết
Bài viết này được tổng hợp từ nhiều nguồn và viết lại dựa trên quan điểm và kinh nghiệm của các Fullstack developer công ty ONETECH chúng tôi. Bài viết giúp làm rõ khái niệm Fullstack cũng như nhu cầu của thị trường, mức lương cùng những phân tích ưu nhược điểm xoay quanh vị trí Fullstack developer. Hy vọng bài viết sẽ giúp ích cho các bạn developer trong việc quyết định chọn lựa con đường nào mà mình sẽ theo đuổi để phát triển sự nghiệp của mình.
Giới thiệu Onetech Asia
Đội ngũ kỹ sư tài năng của OneTech Asia đang tích cực phát triển các ứng dụng web, phần mềm ERP và các dự án chuyển đổi số cho thị trường trong và ngoài nước. Chúng tôi đặc biệt đi đầu trong việc phát triển VR/AR/MR.
Công ty Onetech Asia
Website: https://onetech.vn
Website: https://onetech.jp