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
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.
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.
Việc làm Full Stack Developer tại TP HCM
Việc làm Full Stack Developer tại Hà Nội
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 đ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.
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
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.
Việc làm Senior Full Stack Developer
Những tố chất quan trọng nào để một Developer có thể đảm nhiệm vị trí Full-Stack?
Anh Hoàng tại trường Lancaster.
- Ham học hỏi
- Có trách nhiệm
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
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.
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.
Việc làm Back End Developer
Việc làm Front End Developer
Anh có từng mắc sai lầm gì trong công việc?
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. 🙁Khi bị khiển trách thì anh mới giải thích là “Vì không ai cấm.” Sau đó, PM mới nói lại rằng “Không cấm nhưng không có nghĩa là được phép làm.”
Thật ra vấn đề ở đây là anh rất ngại hỏi người khác, nhất là lại với người nước ngoài nữa nên càng ngại.
Lúc làm việc tại FPT Software, anh cũng từng mắc sai lầm này.
Ở vị trí Junior Developer, có rất nhiều điều anh còn chưa biết mà lại rất ngại hỏi các đàn anh và cứ thích tự tìm hiểu.
Lý do một phần là vì ngại, một phần là vì cái tôi cá nhân, sợ hỏi nhiều sẽ bị đánh giá. Khi nhận được requirement, anh bắt tay vào code theo ý mình luôn, dẫn đến việc thành phẩm làm ra không đúng như yêu cầu.
Từ đó, anh rút ra kinh nghiệm là mình phải hỏi đồng nghiệp, sếp càng nhiều càng tốt.
Để tiết kiệm thời gian cho người được hỏi, bạn nên chuẩn bị sẵn những điều muốn hỏi và tự tìm hiểu trước khi hỏi.
Ngoài ra, khi nhận được requirement không nên bắt tay vào làm ngay, mà phải xác định rõ ràng vấn đề với BA, PM trước.
Mẹo nhỏ là có thể tranh thủ lúc team cùng đi ăn nhậu để hỏi những điều muốn hỏi. Lúc này, do không phải tập trung làm việc nên không ai cảm thấy phiền khi bị hỏi đâu. 🙂
Anh có lời khuyên nào cho các bạn trẻ muốn trở thành Full-Stack Developer?
- Full-Stack Developer là một công việc hay, thú vị nhưng không quá hay, quá thú vị như mọi người đồn đại và cũng đi kèm với nhiều áp lực , trách nhiệm. Do đó, bạn phải xác định là mình yêu thích, muốn làm thì mới theo được.
- Rèn tiếng Anh thật tốt.
Thật ra, tiếng Anh dành cho Developer không hề “nặng”. Bạn chỉ cần đọc hiểu các hướng dẫn với các từ chuyên ngành bằng tiếng Anh là đủ rồi!
Do đó, theo anh, cách tốt nhất để các bạn rèn luyện là chăm đọc hướng dẫn, tài liệu bằng tiếng Anh và ghi nhớ những từ chuyên ngành nhiều vào là được.
- Các bạn đừng nên làm ở công ty Outsourcing quá lâu.
Khi bạn code cho công ty Product, bạn sẽ được thảo luận với nhóm để tìm ra requirement, bạn sẽ phải giao tiếp với rất nhiều người như Lead hoặc Product Manager. Nhờ đó, bạn sẽ rèn luyện được kỹ năng phân tích vấn đề và kỹ năng giao tiếp – vốn là những kỹ năng quan trọng để bạn bước lên những vị trí cao hơn.
Anh có thể chia sẻ vài resource hữu ích cho các bạn Developer muốn trở thành Full-Stack Developer?
- Về Front-end: Với các bạn mới nhập môn thì nên đọc Head First HTML & CSS, HTML5 & CSS3 for Dummies. Sau đó là Javascript for Dummies, Coding with JavaScript for Dummies.
Để chuyên sâu hơn về Front-end, các bạn có thể đọc JavaScript: The good part, Professional JavaScript for Web Developers.
- Về UI/UX: Biết code front-end là một chuyện, bạn vẫn phải học UI/UX để thiết kế làm ra dễ sử dụng. Hai cuốn sách về UX tuy cũ mà hay là Don’t Make me Think và User Interface Design for Programmers rất đáng để đọc.
- Về Back-end: vì có rất nhiều ngôn ngữ nên anh chỉ giới thiệu một số sách về kiến trúc hệ thống và tổ chức code gồm Clean Code, Refactoring: Improving the Design of Existing Code, Head First Design Pattern, Patterns of Enterprise Application Architecture.
Cám ơn anh Hoàng về những chia sẻ bổ ích. Chúc anh luôn thành công trong công việc và học tập.