
Sau một loạt trải nghiệm nhỏ lẻ với Copilot và GitHub, tôi muốn thử thách bản thân bằng cách làm một dự án Spring Boot nho nhỏ, nhưng hoàn chỉnh từ đầu đến cuối. Đây không còn là chuyện cài đặt hay test snippet nữa, mà là một sản phẩm thực sự chạy được, có API cơ bản và được lưu trữ gọn gàng trên GitHub.
Trong bài viết này, tôi sẽ kể lại cách Copilot đã hỗ trợ tôi trong quá trình viết code, cảm giác lần đầu push dự án Spring Boot của mình lên GitHub Repository, và quan trọng hơn cả: những gì tôi học được sau khi hoàn thành dự án đầu tiên. Đây là cột mốc nhỏ, nhưng với tôi, nó đánh dấu sự khởi đầu cho những hành trình lớn hơn.
1. Copilot trong dự án Spring Boot nhỏ: Hỗ trợ tuyệt vời nhưng vẫn có giới hạn

Khi bắt đầu dự án Spring Boot nhỏ này, tôi không muốn đơn thuần copy–paste một đoạn code mẫu trên mạng, mà thật sự muốn tự tay xây dựng một ứng dụng tối thiểu, có API hoạt động được. Đây cũng là lúc tôi đặt nhiều kỳ vọng vào Copilot – liệu nó có thể giúp tôi đi nhanh hơn nhưng vẫn học được cái cốt lõi hay không?
Thực tế thì Copilot đã mang đến một trải nghiệm khá “đã cái bụng”. Chỉ cần viết vài dòng mô tả hoặc một hàm gợi ý, tôi thấy nó có thể tự động hoàn thành hầu hết phần còn lại. Ví dụ, khi tôi định viết một ProductController, chỉ cần gõ vài chữ “getAllProducts”, Copilot đã gợi ý sẵn một phương thức @GetMapping với return danh sách. Nói thật, cảm giác lúc đó giống như có một đồng đội thầm lặng đang code cùng tôi, khiến tốc độ hoàn thiện dự án tăng lên rõ rệt.
Nhưng chính khi dự án đi xa hơn một chút, tôi mới thấy giới hạn của Copilot. Có lúc nó “đoán” sai ý định, gợi ý những đoạn code không phù hợp với kiến trúc tôi đang theo đuổi. Có lúc nó tạo ra code chạy được, nhưng không tối ưu hoặc thiếu đi tính bảo mật cần thiết. Tôi nhận ra rằng nếu mình chỉ chấp nhận mọi gợi ý vô điều kiện, thì sản phẩm cuối cùng sẽ lỏng lẻo và thiếu bản sắc.
Trải nghiệm này dạy tôi rằng: Copilot tuyệt vời trong việc giúp tiết kiệm thời gian cho những phần lặp lại hoặc boilerplate code, nhưng người lập trình vẫn phải giữ vai trò kiểm soát. Nó giống như một người bạn đồng hành đầy tiềm năng, nhưng nếu muốn dự án “ra hồn”, mình vẫn phải là người đưa ra quyết định cuối cùng.
2. Trải nghiệm lần đầu push dự án Spring Boot cùng Copilot lên GitHub Repository

Khi đã xong phần tạo repository trên GitHub và kết nối local project, cùng với những đoạn code mà Copilot đã gợi ý cho tôi trong suốt quá trình làm ra dự án nho nhỏ, tôi bước đến khoảnh khắc quan trọng: gõ lệnh git push origin main. Đơn giản chỉ là vài ký tự trong terminal, nhưng cảm giác lúc đó lại không hề đơn giản chút nào.
Trước khi push, dự án Spring Boot của tôi chỉ nằm lặng lẽ trong máy. Nó giống như một bản nháp, một “ngôi nhà” mà chỉ mình tôi thấy. Nhưng khi enter xong, Git bắt đầu chạy, dòng log cuộn qua màn hình và vài giây sau, toàn bộ source code đã hiển thị trên GitHub Repository. Đó là một khoảnh khắc thật sự “wow”. Tôi có cảm giác dự án đã bước ra khỏi chiếc máy tính cá nhân, trở thành một thứ gì đó “sống” trên internet.
Tôi nhớ rõ mình mở ngay trình duyệt, refresh lại trang repo: tất cả thư mục, file, cấu trúc Spring Boot quen thuộc bây giờ hiện diện ở đó. Nó mang lại sự tự hào nhỏ nhỏ, kiểu như “À, đây là sản phẩm mình đã làm, và giờ ai cũng có thể nhìn thấy”.
Điều thú vị là Copilot gần như đứng ngoài cuộc trong bước này. Nó không thể thay thế được thao tác push hay giải quyết cảm xúc khi lần đầu “đưa code ra thế giới”. Nhưng chính điều đó càng làm tôi nhận ra: Copilot có thể giúp tôi viết nhanh hơn, chính xác hơn ở local, nhưng còn trải nghiệm chia sẻ dự án – khoảnh khắc đó thì hoàn toàn là của con người.
Tất nhiên, không phải mọi thứ đều mượt mà. Tôi gặp lỗi nhỏ về commit message chưa đúng chuẩn, rồi Git cảnh báo phải set upstream branch. Những dòng hướng dẫn hiện ra khiến tôi bối rối vài giây. Copilot thì vẫn im lặng, nhưng cũng chính vì thế mà tôi buộc phải đọc kỹ log, tìm hiểu cách Git vận hành và sau đó tôi cũng tìm ra được giải pháp. Và tôi thấy vui khi tự giải quyết được điều này, như một bài kiểm tra nhỏ trước khi dự án chính thức “ra mắt”.
Khoảnh khắc lần đầu push này giống như một nghi thức: không chỉ là thao tác kỹ thuật, mà còn là bước khẳng định dự án của mình đã thật sự bắt đầu.
3. Bài học sau khi hoàn thành dự án Spring Boot nhỏ cùng Copilot đầu tiên và tại sao đây chỉ là khởi đầu

Hoàn thành một dự án Spring Boot nhỏ, nhìn lại thì nó không phải là một sản phẩm “to tát”, nhưng lại giống như viên gạch đầu tiên đặt nền móng cho hành trình dài hơn. Điều tôi nhận ra rõ nhất là: việc bắt đầu và hoàn tất quan trọng hơn việc làm thật lớn nhưng bỏ dở.
Trong quá trình code cùng Copilot, tôi học được cách khai thác sức mạnh của AI nhưng cũng thấy rõ giới hạn của nó. Copilot có thể gợi ý rất nhanh những đoạn code CRUD, cấu hình Spring Boot cơ bản, nhưng đến những logic hơi “xoắn” một chút, tôi vẫn phải tự mình tìm hiểu. Và chính sự kết hợp này mới tạo ra trải nghiệm đáng giá: vừa tiết kiệm thời gian, vừa bắt buộc bản thân học thêm.
Khi push dự án lên GitHub, tôi lại hiểu ra thêm một điều nữa: dự án chỉ thật sự có giá trị khi nó được chia sẻ và lưu trữ ở nơi an toàn. Local project có thể biến mất nếu máy hỏng, nhưng repo GitHub thì tồn tại và trở thành dấu mốc cho chính mình. Một ngày nào đó, khi nhìn lại commit đầu tiên, tôi tin sẽ có chút mỉm cười: “Mình đã bắt đầu từ đây”.
Nhưng tất cả chỉ là khởi đầu. Một dự án nhỏ giúp tôi làm quen với quy trình: setup, code, commit, push. Song, nếu muốn tiến xa hơn, cần nhiều thứ hơn thế: viết test, tối ưu performance, áp dụng CI/CD, triển khai lên server thực tế, và đặc biệt là xây dựng dự án giải quyết được một vấn đề thật sự.
Tôi thấy rõ sự khác biệt giữa làm một project để học và làm một project để phục vụ người dùng thật. Dự án đầu tiên thuộc nhóm thứ nhất, và nó đã cho tôi nền tảng. Nhưng bước tiếp theo mới quan trọng – nơi mà tôi phải nghĩ như một developer thực thụ, chứ không chỉ là người thử nghiệm.
Theo cá nhân tôi thấy: Đừng coi thường những dự án nhỏ. Chúng giống như những nấc thang, và nấc thang đầu tiên thường thấp, nhưng không có nó, bạn sẽ chẳng bao giờ leo lên cao hơn.
Hoàn thành một dự án Spring Boot nhỏ cùng Copilot chỉ là bước khởi đầu để tôi thấy AI có thể đồng hành cùng lập trình viên đến đâu. Nhưng tôi cũng tự hỏi: liệu ngoài Java, Copilot có thể hỗ trợ mạnh mẽ như thế trong những ngôn ngữ khác không? Tôi quyết định thử sức với một môi trường hoàn toàn khác, nơi tốc độ và sự tiện lợi được đặt lên hàng đầu.
Xem thêm bài viết có liên quan: