Theo khảo sát lập trình viên năm 2020 của Stack Overflow, Lập trình viên Full stack là một trong hai chức danh phổ biến nhất.
Hôm nay, hãy cùng tìm hiểu về một ngày của Lập trình viên Full stack để xem họ là người như thế nào, bình thường họ làm việc gì bạn nhé.
Tuy nhiên, nếu bạn là người mới, trước tiên bạn cần hiểu một chút về...
1. Lập trình viên Full Stack là gì?
Lập trình viên Full Stack là gì?
Ngành công nghiệp phần mềm định nghĩa Lập trình viên Full stack là người có thể làm việc trên các lĩnh vực khác nhau.
Thuật ngữ Stack đề cập đến các thành phần và công cụ khác nhau tạo nên một ứng dụng.
Về mặt phát triển ứng dụng web, chúng ta có thể chia Full stack thành hai phần như sau:
Thuật ngữ Front end dùng thường đề cập đến các chương trình chịu trách nhiệm hiển thị giao diện người dùng.
Và thuật ngữ Back end đề cập đến phần chịu trách nhiệm về logic nghiệp vụ, tương tác cơ sở dữ liệu, xác thực người dùng, cấu hình máy chủ, v.v.
Ngoài ra còn có phần DevOps của ứng dụng, bao gồm tích hợp liên tục, triển khai sản xuất, v.v.
Một nhà Lập trình viên Full Stack dự kiến sẽ làm việc trên cả công nghệ Front end và Back end, từ việc viết HTML / JavaScript cho giao diện người dùng đến viết các chương trình Java cho logic nghiệp vụ và truy vấn SQL cho các hoạt động cơ sở dữ liệu.
Họ cũng sẽ làm việc trên DevOps, từ triển khai sản xuất đến thiết lập tích hợp liên tục và phân phối liên tục (CI / CD) theo yêu cầu.
Với bối cảnh kiến trúc phần mềm ngày càng phát triển, phạm vi công nghệ mà một Full Stack Web Developer dự kiến sẽ làm việc đã tăng lên đáng kể.
Không còn chỉ là viết HTML và JavaScript để xây dựng giao diện người dùng nữa. Chúng ta phải biết sử dụng các framework phía máy khách, chẳng hạn như Angular, React và Vue.js.
Việc chúng ta thành thạo Java và SQL thôi là chưa đủ - chúng ta phải biết các framework phía Back end, chẳng hạn như Spring, Hibernate, Play và Quarkus.
> Xem thêm: Một số Tech Stacks khác nhau trong lĩnh vực lập trình
Và để hiểu cụ thể một ngày của một Lập trình viên Full Stack như thế nào chúng ta sẽ sang phần tiếp theo.
2. Một ngày của lập trình viên Full Stack
Một ngày của Lập trình viên Full Stack
Công việc mà ai đó làm sẽ minh họa rõ ràng nhất về người đó.
Vì thế, hãy sử dụng một ví dụ về việc phát triển một module quản lý người dùng cho một ứng dụng web Java điển hình.
Giả sử rằng bạn sẽ viết các unit test cho tất cả code và vì thế chúng ta sẽ không xem xét chi tiết code ở đây.
Đây là công việc bạn sẽ bắt đầu làm khi nhận yêu cầu trên:
1. Bạn sẽ bắt đầu bằng cách thiết kế kiến trúc cho các tính năng. Bạn sẽ quyết định sư dụng các plugin hay frameworks nào, các desig pattern cần tuân theo là gì, v.v.
2. Bạn sẽ mô hình hóa cho tính năng tùy thuộc vào loại cơ sở dữ liệu được sử dụng.
3. Sau đó, bạn sẽ viết chương trình phía máy chủ và các truy vấn cơ sở dữ liệu để tìm nạp dữ liệu từ cơ sở dữ liệu.
4. Khi dữ liệu đã sẵn sàng, bạn sẽ viết chương trình cho các logic nghiệp vụ.
5. Sau đó, bạn sẽ tạo một API có thể được sử dụng để cung cấp dữ liệu qua kết nối HTTP.
6. Bạn cũng sẽ viết các bài test tích hợp cho API.
7. Vì phần Back end đã sẵn sàng, bạn bắt đầu tạo ra giao diện người dùng với HTML, CSS và JavaScript (Có lẽ là thêm một số công nghệ liên quan khác nữa) theo thiết kế được cung cấp.
8. Tiếp đó, bạn sẽ viết các service phía máy khách để tìm nạp dữ liệu từ backend API.
9. Bạn sẽ viết các thành phần phía máy khách để hiển thị dữ liệu trên một trang web.
10. Bạn sẽ viết một số kiểm tra đầu cuối tự động cho trang web.
Đến đây bạn vẫn chưa hoàn thành đâu.
11. Khi bạn đã kiểm tra xem mọi thứ có hoạt động tốt ở máy tính của bạn, bạn sẽ cần đẩy code vào hệ thống kiểm soát phiên bản đang được sử dụng.
12. Bạn sẽ đợi quá trình CI (tích hợp liên tục) diễn ra để xác minh mọi thứ và sửa chữa nếu có chỗ nào bị lỗi.
13. Khi mọi thứ đều xanh và chương trình được chấp nhận, bạn thường sẽ bắt đầu triển khai tính năng này lên trên cloud bằng cách sử dụng Docker hay là Kubernetes. Bạn cũng sẽ nâng cấp database schema khi cần thiết và viết các tập lệnh migration khi cần.
14. Khi tính năng được chấp nhận, bạn có thể sẽ chịu trách nhiệm triển khai nó vào hoạt động thực tế theo cách tương tự, khắc phục sự cố khi cần thiết.
15. Bạn cũng có thể chịu trách nhiệm cùng với đồng nghiệp của mình trong việc đảm bảo rằng môi được thiết lập và chạy ổn định, bao gồm cơ sở dữ liệu, máy ảo, v.v.
Như bạn thấy, hàng loạt nhiệm vụ này không phải là dễ hoàn thành.
Sẽ phải học khá nhiều thứ để có thể làm được đấy.
Phạm vi công việc của một Lập trình viên Full stack trải dài từ việc viết code CSS đến chạy các tập lệnh di chuyển cơ sở dữ liệu trên máy ảo trong dịch vụ đám mây.
Nếu bạn không đủ quen thuộc với việc thiết lập, thì đây sẽ là một nhiệm vụ cực kỳ nặng nề và bạn sẽ sớm bị lạc trong trong đại dương framework, công nghệ và design pattern (mẫu thiết kế) ngoài kia.
3. Thách thức đối với Lập trình viên Full Stack
Thách thức đối với Lập trình viên Full Stack
Chức danh Lập trình viên Full stack không dành cho những người yếu tim.
Để sở hữu chức danh này cần rất nhiều thời gian và nỗ lực trong việc cập nhật các công nghệ và design pattern khác nhau trong lĩnh vực lập trình.
Sau đây là một số thách thức phổ biến mà bạn có thể gặp phải với tư cách là Lập trình viên Java Full Stack:
1. Lập trình Front end chỉ là viết HTML và JavaScript đơn thuần nữa. Nó đang trở nên phức tạp như lập trình Back end vậy. Nó có hàng tá công việc với các công cụ, frameworks và design pattern khác nhau.
2. Có một khuôn khổ mới hầu như mỗi tuần trong thế giới JavaScript và nếu bạn đến từ bên ngoài nền tảng Java, nó có thể rất áp đảo đối với bạn.
3. Các công nghệ container như Docker và Kubernetes đã cách mạng hóa ngành công nghiệp phần mềm, nhưng họ cũng giới thiệu rất nhiều thứ mới để bạn phải học từ đầu, chẳng hạn như công cụ điều phối và công cụ quản lý container.
4. Các dịch vụ đám mây đang phát triển từng ngày. Để đi đúng hướng, bạn sẽ phải tự làm quen với các API của họ và các công cụ điều phối liên quan.
5. Các công nghệ phía back end của Java cũng đã trải qua một sự thay đổi lớn trong thời gian gần đây với sự ra đời của các ngôn ngữ JVM, chẳng hạn như Scala, Groovy và Kotlin, bạn buộc phải tự cập nhật chúng. Mặt khác, các framework phía back end ngày càng nhiều tính năng hơn và do đó phức tạp càng lớn hơn.
Điều quan trọng nhất là bạn phải đảm bảo rằng tất cả những điều này hoạt động tốt với nhau khi được yêu cầu. Nhiệm vụ này sẽ cần cấu hình rất nhiều, viết thêm / sửa chữa và vô số cốc cà phê.
Tổng kết
Rất dễ bị lạc ở đây, nếu bạn không có một lộ trình học tập chi tiết và những người hướng dẫn tận tâm.
Trở thành một Lập trình viên Full stack là một trong những lộ trình mang tính thử thách nhất trong ngành lập trình của chúng ta ngày nay.
> Tham khảo ngay chương trình HỌC LẬP TRÌNH FULL STACK với lộ trình bài bản. Học với chuyên gia doanh nghiệp hàng đầu. Hỗ trợ trả góp học phí 0%. Hoàn 100% học phí nếu sau 6 tháng tốt nghiệp không có việc làm.
Nếu bạn đang cố gắng học để trở thành một lập trình viên Full Stack (cho dù chưa thành công), hãy cảm thấy tự hào vì bạn đã dám dẫn thân vào con đường này.
Bạn có thể không phải là một chuyên gia trong một ngôn ngữ hoặc một framework đơn lẻ nhưng bạn là một nhà ảo thuật.
Bạn có thể tung hứng giữa rất nhiều công nghệ và framework mà không phải nhiều người có thể làm.
Nếu không có bạn, cần ít nhất 4 người để thực hiện công việc tương tự.
Và mặc dù bạn rất có ích cho dự án, cho doanh nghiệp bạn đang làm việc, bạn làm được nhiều việc hơn. Nhưng có thể lương của bạn cũng không phải là x4 đâu.
Tuy nhiên, nếu bạn là một lập trình viên Full stack, bạn thật ngầu.
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python