Trong Web Development cũng được chia ra làm mảng back-end dev và front-end. Vậy chắc bạn cũng đã nghe đến Web Full stack developer và cũng hiểu được sơ lược về vai trò và nhiệm vụ của người này. Tuy nhiên, để có thêm góc nhìn thực tế mời các bạn theo dõi bài viết Expert Talk kỳ này: "Tiềm năng phát triển của kỹ sư Full Stack" qua phần chia sẻ của anh Lê Bá Phước Duy - Web Team Leader và cũng là người chịu trách nhiệm đào tạo các Web Developer Fresher/Junior tại One Tech Asia trở thành Full Stack Developer.
Khởi điểm là một Back-end web developer về C# và PHP, sau đó anh đã trau dồi thêm các kỹ năng front-end để trở thành một Web Full Stack developer tính đến nay anh đã có 6 năm kinh nghiệm ở vị trí này. Hiện tại anh đang đảm nhiệm vị trí Web Team Leader tại Công ty OneTech Asia, đồng thời là người hướng dẫn đào tạo cho các bạn trẻ tại công ty để phát triển trở thánh các Full stack developer trương tương lai.
Chủ đề EXPERTS TALK:
"Kỹ sư Full Stack - Tìm năng phát triển của kỹ sư Full Stack".
Trong lĩnh vực phát triển web, thường chia ra thành hai nhánh nghề nghiệp chính là Thiết kế web (front-end) và Lập trình web (back-end). Tuy nhiên có một nhánh thứ ba khá hiếm hoi là những người có thể làm tốt các front-end và back-end họ được gọi là các Full stack developer. Điều này cũng giống như những chàng cao bồi có khả năng sử dụng thành thạo 2 súng 2 tay tốt như nhau vậy.
Full stack developer là những lập trình viên có khả năng làm được cả kỹ thuật phía front-end và back-end của một ứng dụng hay một website. Full stack developer có thể là: Full stack web developer hoặc full stack appli developer, nhưng hiện nay chữ: Full stack developer thường được mặc định hiểu là: Full stack web developer.
Chịu trách nhiệm phát triển những phần "nhìn thấy được" của một website hoặc ứng dụng: thiết kế giao diện, mã html, css, hình ảnh hoặc các hiệu ứng hiển thị.
Các skill:
Phát triển các "chức năng ngầm" của website như lập trình chức năng, xử lý nhập liệu, truy xuất cơ sở dữ liệu...
Các kỹ thuật cần:
Các công ty lớn, họ có nhiều dự án và có các dự án lớn, để gia tăng hiệu suất và tăng chất lượng thì họ cần những vị trí tách biệt: front-end developer hoặc back-end developer. Tuy nhiên hiện nay để tối ưu hóa resource và các dự án công nghệ, các công ty startup xuất hiện ngày càng nhiều nên nhu cầu tuyển dụng Full stack developer ngày càng gia tăng.
Ngoài ra, những lập trình viên có khả năng Full stack sẽ hiểu hết tổng thể của việc phát triển hệ thống, nên có thể phát triển thành những vị trí cao hơn như CTO hoặc trở thành PM.
Anh chọn phát triển web Full stack vì anh thấy rằng khi mình nắm giữ Full stack thì bất kể phát triển gì trên web mình đều có khả năng nắm rõ và làm được. Song lí do ban đầu anh đi theo hướng phát triển web vì anh thấy web là gốc của mọi ứng dụng lập trình. Ví dụ lập trình game, app thì web là 1 tầng trung gian để kết nối game và app với database. Trừ những ứng dụng mini vừa nhỏ thì ko cần phải quản lý trên Cloud.
Lúc trước anh nghĩ là đi từ back-end sẽ rất dễ thành Full stack developer, nhưng bây giờ anh thấy giỏi front-end sẽ có lợi thế rất lớn để trở thành Full Stack. Anh có nhận định như vậy thứ nhất cũng từ cá nhân anh xuất phát từ một back-end dev, lúc muốn trao dồi thêm front-end lại cần khá nhiều thời gian và nỗ lực và làm quen.
Còn xét về chủ quan anh cho rằng do trong công đoạn mà chúng ta phát triển Web thì back-end chiếm phần đầu giai đoạn như các bạn xây dựng cái khung xương và nền cho ngôi nhà, bạn có thể dễ dàng ấn định được thời gian hoàn thành và về cơ bản các khung xương và tường thường tương tự nhau không có nhiều khác biệt. Nhưng đến lúc đụng đến front-end thì phức tạp hơn hẳn, nhiều thứ từ chi tiết đến tổng thể cần làm. Và sau này lúc nâng cao cập nhật web thì bạn cũng sẽ luôn động vào front-end là chính.
Về thời gian anh nghĩ cũng tuỳ vào khả năng học hỏi và cơ hội được tham gia vào các dự án cả front-end và back-end. Riêng đối với những bạn Dev khi làm việc tại OneTech thì lộ trình sẽ là 2 năm. Vì khi có bất kỳ bạn web devloper nào tham gia vào công ty thì anh luôn có định hướng và lộ trình phát triển cho bạn rõ ràng.
Đã là một Kỹ sư Full stack cũng yêu cầu các bạn dành cần rành nhiều ngôn ngữ phát triển Web khác nhau. Về front-end thì chắc chắn các bạn phải biết về HTML, Javascript và một vài framework về css hoặc Javascript. Về back-end thì phải rành ít nhất một ngôn ngữ lập trình chẳng hạn: PHP, Java, C# và framework tương ứng. Hiện tại thì anh đang sử dụng Python và Laravel vì tính ứng dụng của nó cao và rất mạnh mẽ. Đây cũng là một trong những ngôn ngữ được khuyến khích học nhiều vì nó khá phổ biến.
Về các kỹ thuật mà anh đã từng làm thì có rất nhiều, song có những cái sau đây mà anh cảm thấy các bạn phát triển Full stack có thể gặp lại nhiều lần:
Từ một nhà phát triển Junior chuyển đến cột mốc một kỹ sư Full stack chắc chắn bạn phải trang bị cho mình những kỹ năng mềm và anh nghĩ nó có tầm quan trọng khi bạn muốn tiến xa hơn nữa. Các kỹ năng mềm cần có là: khả năng học và tự học, quản lý thời gian, kỹ năng giao tiếp, kỹ năng giải quyết vấn đề, tư duy logic, tư duy phản biện, sáng tạo,...
Đặc biệt là kỹ năng giải quyết một vấn đề. Bởi vai trò và phạm vi của một nhà phát triển Full stack là cả front-end và back-end thì kiến thức chuyên môn của họ gần như là tất cả những gì về phát triển một dự án Web, là một người vừa có cái nhìn bao quát và chi tiết nên ắt hẳn giải quyết vấn đề là một skill đặc biệt quan trọng và tất yếu để các nhà phát triển Full stack trau dồi trong thời gian làm việc.
Ngoài ra những kỹ năng về sử dụng các công cụ tìm kiếm sẽ giúp ích cho các bạn rất nhiều trong bước nghiên cứu để lập ra core và rules của dự án như anh đã nói ở câu trả lời trước, bộ trợ kèm theo đó là các bạn cần giỏi ngoại ngữ để update những kiến thức chuyên môn mới phục vụ cho công việc của mình.
Và để chuẩn bị cho các hướng phát triển cao hơn nữa trong lĩnh vực IT anh nghĩ các bạn cũng nên quan tâm đến kỹ năng quản lý dự án. Trước nhất là quản lý những nhiệm vụ của các nhân với thời gian hợp lý là điều cần ưu tiên nhất
Cuối cùng nhưng cũng không kém phần quan trọng là kỹ năng giao tiếp. Kỹ năng giao tiếp ở đây không chỉ là nói hay nói êm tai mà là truyền đạt đủ và chính xác các thông tin về dự án mà bạn đang phát triển giữa các thành viên trong team, để tránh dẫn đến tình trạng bị nhiễu thông tin, nghiêm trọng nhất là hiểu sai yêu cầu và truyền đạt sai yêu cầu dự án.
Theo anh có 3 cái khó khăn và thách thức nhất đối với một nhà phát triển Full stack
Ban biên tập chân thành cảm ơn anh đã dành thời gian chia sẻ kinh nghiệm quý báu đến các đọc giả của blog GrowUpWork, chúc anh sức khỏe và thành công!
Tòa nhà QCOOP, 647 Lý Thường Kiệt, Phường 11, Tân Bình, Thành phố Hồ Chí Minh 700000