31/08/2018, 15:35

Full-Stack Developer là gì? Có lợi ích gì cho sự nghiệp của bạn? (updated 2018)

Full-Stack Developer là người có khả năng làm cả Front-end lẫn Back-end của sản phẩm. Nói chung, Full-Stack Developer thường chịu trách nhiệm thiết kế giao diện đến Database đằng sau cho đến khi sản phẩm vận hành trơn tru. Đọc bài phỏng vấn của ITviec với anh Phạm Huy Hoàng , một ...

Full-Stack Developer là người có khả năng làm cả Front-end lẫn Back-end của sản phẩm.

Nói chung, Full-Stack Developer thường chịu trách nhiệm thiết kế giao diện đến Database đằng sau cho đến khi sản phẩm vận hành trơn tru.

Đọc bài phỏng vấn của ITviec với anh Phạm Huy Hoàng, một Full-Stack Developer đang làm việc tại AlgoMerchant – công ty start-up ở Singapore chuyên cung cấp những công cụ hỗ trợ nhà đầu tư chứng khoán cá nhân mua bán chứng khoán, kiểm tra giá, v.v. để biết:

  • Công việc của một Full-Stack Developer
  • Lợi ích của việc làm Full-Stack Developer
  • Lời khuyên để bạn trở thành một Full-Stack Developer

Xem thêm việc làm Full Stack Developer trên ITviec

Tiểu sử: anh Phạm Huy Hoàng có thời gian làm việc tại FPT Software trước khi chuyển sang ASWIG Solutions với vị trí Developer ngôn ngữ C#.

Sau đó, anh theo học Thạc sĩ ngành Computer Science tại Đại học Lancaster (Vương Quốc Anh). Trong thời gian học, anh làm công việc Full-Stack Developer tại phòng IT của trường.

Sau khi tốt nghiệp vào tháng 8/2017, anh chuyển đến Singapore và làm việc cho Công ty AlgoMerchant cho đến nay.

Anh có thể mô tả công việc hằng ngày của một Full-Stack Developer?

Với công việc Full-Stack, cơ bản là bạn phải phụ trách cả Front-end lẫn Back-end của sản phẩm.

Nói chung, từ thiết kế giao diện đến Database đằng sau bạn đều phải chịu trách nhiệm cho đến khi sản phẩm vận hành trơn tru. Tuy nhiên, tùy theo mỗi công ty mà sẽ có một công việc cụ thể riêng.

Dự án anh làm cho Đại học Lancaster là một App dành cho sinh viên của trường tên là “I Love Lancaster”. App này sẽ tổng hợp toàn bộ tiện ích trong thời gian học tại trường cho sinh viên, chẳng hạn như xe buýt, thời khóa biểu… giúp các bạn học tập dễ dàng hơn.

Anh làm toàn bộ mọi việc từ nhận requirement của khách hàng là các phòng ban trong trường, thiết kế giao diện cho đến làm database đằng sau và mọi việc khác cho App chạy trơn tru.

Còn công việc mới của anh tại AlgoMerchant thì thế nào?

Tại AlgoMerchant, vị trí của anh là Senior Front-end Engineer, nhưng công việc vẫn mang tính Full-Stack như hồi xưa.

Công việc chính của anh là thảo luận với Product Manager để xác định requirement. Sau đó thảo luận với CTO để design kiến trúc cho dự án Auto Invest (Hệ thống tự động đặt lệnh mua/bán cổ phiếu dựa theo thuật toán).

Sau khi CTO review và duyệt thì anh sẽ đi từ front-end (design UX và flow) cho tới back-end (thiết kế database và viết các API cần thiết) của hệ thống.

loi-ich-full-stack-developer

Anh Hoàng đang làm việc tại Singapore.

Anh có gặp khó khăn gì khi chuyển sang làm Full-Stack trong môi trường “quốc tế” như vậy không?

Ban đầu khi mới làm tại đây, anh gặp khó khăn về khả năng giải thích. Ngày xưa ở Việt Nam giải thích bằng tiếng Việt đôi lúc khách hàng, đồng nghiệp còn không hiểu nên khi giải thích bằng Tiếng Anh lại càng khó hơn.

Thế là thay vì giải thích dài dòng, anh chia công việc ra làm và đưa khách hàng xem sau khi xong mỗi phần nhỏ. Lúc đó không cần giải thích nhiều người ta cũng hiểu mình muốn nói gì.

Chẳng hạn, anh làm trước một giao diện rồi đưa cho họ phản hồi sẽ dễ dàng hơn là chỉ nói miệng. Vả lại, mục đích giao tiếp là mình hiểu người đối diện muốn gì và ngược lại là tốt rồi, không nên nói quá nhiều.

Anh nghĩ đây là một kinh nghiệm rất hữu ích cho công việc full-time sau này vì không Developer nào không được việc cả. Vấn đề là mình có làm đúng như khách hàng muốn không và có giải thích được việc mình làm sẽ giúp ích được gì cho họ không.

Do đó, nếu dùng kĩ năng trên để giải quyết vấn đề này thì dù có bị rào cản ngôn ngữ, Developer cũng có cách vượt qua.

Theo anh, Full-Stack giúp nâng cấp sự nghiệp của Developer như thế nào?

Việc làm Full-Stack này rất thú vị và anh nghĩ các Developer nên phấn đấu đạt được vị trí này vì:

  • Full Stack Developer dễ tìm được việc làm hơn do có skill set rộng.

Một Full-Stack Developer có thể chuyển sang làm Front-end Developer hoặc Back-end Developer hay làm về Database dễ dàng mà không tốn nhiều thời gian hay bị hụt kiến thức. Do đó, bạn không sợ bị thất nghiệp hay chán nghề.

Một điều nữa là các công ty Start-up và công ty nhỏ thường ưu tiên tuyển Full-Stack Developer hơn.

Ở giai đoạn đầu xây dựng sản phẩm, các công ty cần những Developer đa năng, có cái nhìn tổng thể về hệ thống. Khi sản phẩm bước vào giai đoạn hoàn thiện, phát triển thêm thì họ mới cần những người có kiến thức chuyên sâu.

  • Lương cao hơn so với các Developer khác.

Phần lớn các mẩu tin tuyển dụng có chữ “Full-Stack Web Developer” thì mức lương thường cao hơn “Web Developer” thuần với cùng cấp độ.

Chủ Blog Codeaholicguy, cũng là bạn anh, khi chuyển từ vị trí Java Senior Developer sang làm Senior Full-Stack Developer bên KMS Technology thì lương tăng khoảng 30%.

Anh ấy cũng có chia sẻ về vấn đề này tại bài viết “Giá trị của một Fullstack Developer“. Tuy nhiên, dù có theo hướng Full-Stack hay theo hướng chuyên sâu một lĩnh vực đều có thể đạt mức lương cao cả.

  • Dễ thăng tiến hơn

Bởi vì kiến thức Full-Stack giúp họ có cái nhìn tổng thể về hệ thống, rất cần thiết và được đánh giá cao nếu họ muốn phát triển lên thành Team Leader, Product Manager hay Software Architect.

Ngoài ra, do biết cả Front-end, Back-end, Design… nên họ trở thành cầu nối giữa các team với nhau, giúp giao tiếp giữa các team và các thành viên cùng team trở nên trôi chảy hơn. Điều này giúp Full-Stack Developer dễ trở thành key member trong team và dĩ nhiên dễ thăng tiến hơn.

Những tố chất quan trọng nào để một Developer có thể đảm nhiệm vị trí Full-Stack?

3

Anh Hoàng tại trường Lancaster.

  • Ham học hỏi

Lượng kiến thức để làm Full-Stack nhiều gấp đôi, gấp ba kiến thức để làm Front-end và Back-end vì phải chịu trách nhiệm, nắm hết mọi thứ từ đầu tới cuối. Do đó, cần phải không ngừng cập nhật kiến thức mới mỗi ngày.

  • Có trách nhiệm

Full-Stack Developer  là người “đứng mũi chịu sào” cho cả một sản phẩm. Khi anh mới vào làm cho trường được 1 tháng thì chỉ được làm phần Front-end, sửa những App đã có sẵn thôi nhưng từ lúc làm Full-Stack Developer, Product Manager đã giao cho anh một ý tưởng.

Từ ý tưởng đó phải lập kế hoạch làm App đó từ đầu tới cuối, từ việc phải đi nói chuyện với khách hàng để lấy requirement, thiết kế giao diện, nhận phản hồi và thực hiện cho đến lúc nó chạy được. Do đó, tinh thần trách nhiệm trong công việc là cực kì cần thiết.

  • Năng động, giao tiếp tốt

Vì Full-Stack Developer phải cáng đáng nhiều việc, từng ngóc ngách của sản phẩm, làm việc với rất nhiều người gồm các Admin, khách hàng… nên nếu không giao tiếp tốt thì rất khó mà trụ được.

Nhiều người nghĩ rằng trong ngành lập trình chỉ cần tập trung phát triển khả năng Technical là đủ nhưng theo quan điểm của anh, điều đó chưa đủ để bạn trở thành một lập trình viên giỏi.

  • Developer còn cần kĩ năng giao tiếp, trình bày vấn đề, kĩ năng thuyết phục người khác (khi muốn thuyết phục quản lý tăng lương chẳng hạn) để làm việc trơn tru với team và các team khác.

Những kĩ năng này cũng rất cần thiết để thăng tiến đến các vị trí quản lý (Team lead, PM…) nữa.

Vậy để làm được tới vị trí Full-Stack này, các Junior Developer phải bắt đầu như thế nào?

Từ bất kì vị trí nào, bạn cũng có thể tiến lên làm Full-Stack Developer.

Nếu bạn là Front-end Developer thì có thể nghiên cứu thêm về Back-end và ngược lại. Sau đó nghiên cứu thêm về cơ sở hạ tầng, UI/UX.

Như anh ban đầu được tuyển vào phòng IT của trường là để làm Front-end. Tuy nhiên bên Back-end lại thiếu người nên anh tự đề cử mình đảm nhiệm luôn phần Back-end.

Sau đó, anh được cho đi giao tiếp với khách hàng, nhận requirement và từ đó làm Full-Stack Developer luôn.

Anh có từng mắc sai lầm gì trong công việc?

photo-3-18-16-11-50-50-am

Anh Hoàng (ngoài cùng bên trái) và bạn bè tại phòng IT trường Lancaster.

Lúc mới vào làm tại phòng IT của trường, do chưa hiểu rõ hệ thống lắm nên anh hay làm sai một số quy trình, thậm chí là hay làm những việc mà Developer không được phép làm nữa.

0