Lần đầu tôi dùng Copilot và nghĩ "Ôi trời, mình sắp thất nghiệp"
Đầu năm 2023, tôi bắt đầu dùng GitHub Copilot nghiêm túc trong một dự án .NET. Ấn tượng đầu tiên - và tôi không xấu hổ thừa nhận - là tôi ngồi nhìn nó generate một đoạn LINQ query phức tạp trong 3 giây, trong khi tôi vừa tốn 15 phút để viết tương tự.
Cảm giác lúc đó là hỗn hợp kỳ lạ: phấn khích + hoang mang + một chút sợ hãi.
Phấn khích vì rõ ràng nó sẽ giúp tôi nhanh hơn. Hoang mang vì chưa biết cách dùng tốt. Và sợ hãi vì tôi nghĩ tới những developer trẻ đang học nghề - liệu họ có còn cơ hội không?
Sau 2 năm dùng đủ thứ - Copilot, Cursor, Claude Code, Aider - tôi mới thực sự có câu trả lời. Và nó không đơn giản theo chiều nào cả.
3 giai đoạn của AI coding - bạn đang ở đâu?
Nhìn lại hành trình AI trong development, tôi thấy rõ 3 giai đoạn khác nhau. Quan trọng hơn: mỗi giai đoạn đòi hỏi một bộ kỹ năng hoàn toàn khác nhau từ developer.
Giai đoạn 1: Code completion (2021–2023)
"Typeahead trên steroid." Bạn gõ vài từ, AI hoàn thành dòng code. Giao tiếp một chiều, ngắn gọn.
Skill cần lúc đó: viết code đủ rõ để AI hiểu context. Tức là naming convention tốt, comment đúng chỗ, và biết khi nào AI gợi ý sai để reject kịp thời.
Nhiều người dừng lại ở giai đoạn này - dùng Copilot như IntelliSense thông minh hơn, tắt đi khi gặp vấn đề phức tạp.
Giai đoạn 2: Chat-based coding (2023–2024)
ChatGPT, Claude, Gemini bắt đầu được dùng như "đồng nghiệp ảo". Bạn paste code, describe problem, AI explain hoặc suggest fix. Giao tiếp 2 chiều, có context, có conversation history.
Skill cần lúc này: prompt engineering + critical evaluation. Bạn không còn chỉ nhận gợi ý - bạn đang hỏi đáp với một entity có kiến thức rộng nhưng không có judgment.
Đây là nơi nhiều developer bắt đầu gặp vấn đề: copy-paste code AI mà không hiểu → bug production → hoang mang tại sao.
Giai đoạn 3: AI pair programmer (2025–hiện tại)
Cursor, Claude Code, Aider, GitHub Copilot Agent Mode - đây không còn là "gợi ý code". AI bây giờ có thể chủ động refactor multiple files, tạo test, debug, thậm chí propose architecture changes. Giao tiếp: collaborative - AI và human cùng làm việc trên cùng codebase.
Skill cần lúc này: tư duy kiến trúc + code review nghiêm túc + hiểu business context mà AI không bao giờ có.
Những con số không thể bỏ qua
Data từ 2025 mà tôi đọc và không khỏi dừng lại suy nghĩ:
- 41% tổng số code toàn cầu hiện là AI-generated hoặc AI-assisted (Stack Overflow 2025)
- Code do AI co-author có 1.7 lần nhiều "major issues" hơn code human viết
- Đặc biệt: AI-generated code có 2.74 lần nhiều security vulnerabilities
- Và điều ngược đời nhất: nghiên cứu của METR năm 2025 chỉ ra experienced developers chậm hơn 19% khi dùng AI cho task phức tạp - dù họ dự đoán sẽ nhanh hơn 24%
Con số cuối cùng không ngạc nhiên tôi lắm. Vì AI pair programming chỉ nhanh khi bạn biết rõ mình muốn gì. Nếu chưa rõ architecture, chưa hiểu business rule, chưa có mental model - bạn sẽ mất nhiều thời gian hơn để review, fix, và reject những gợi ý tưởng chừng đúng.
Vậy developer cần học những gì - thật sự?
Không phải theo kiểu checklist "học Python, học prompt engineering, học MLOps". Mà từ góc nhìn người đã làm 20 năm và đang dùng AI hàng ngày.
1. Đọc code nhanh và đọc kỹ - skill survival mới
Trước đây, bottleneck là viết code. Bây giờ bottleneck là review code. AI generate nhanh - nhưng nếu bạn không đủ nhanh và kỹ để review, bạn sẽ bị chôn vùi bởi code mình không hiểu.
Hãy luyện đọc code như đọc sách kỹ thuật: biết bỏ qua cái gì, biết zoom vào cái gì, biết mùi của code xấu ngay từ dòng đầu.
2. Security và architecture - AI yếu nhất ở đây
AI rất giỏi viết code chạy được. AI không giỏi viết code an toàn. Con số 2.74 lần nhiều security bug đủ để bạn coi trọng điều này. Trong .NET ecosystem - SQL injection, authentication misconfiguration, insecure deserialization - đây vẫn là những thứ AI hay mắc và bạn phải là người chặn lại.
3. Business context - thứ AI không bao giờ có
Tôi từng thấy AI gợi ý một solution kỹ thuật đúng 100% nhưng hoàn toàn không phù hợp với business rule của khách hàng. Bởi vì AI không biết rằng hệ thống đó có một legacy constraint xuất phát từ một decision năm 2015 mà không ai muốn đụng vào.
Không có document nào capture được điều đó. Chỉ có bạn - người đã ngồi trong phòng họp, nghe stakeholder giải thích, hiểu tại sao - mới biết.
4. Prompt thinking, không phải prompt writing
"You get what you prompt" - đúng nhưng chưa đủ. Thực ra là: you get what you THINK, expressed through your prompt.
Nếu bạn chưa tư duy rõ vấn đề, prompt của bạn sẽ mơ hồ → AI sẽ cho ra kết quả mơ hồ → bạn mất thêm thời gian sửa. Kỹ năng thật sự không phải là "prompt engineering" như một môn học riêng - mà là tư duy rõ ràng: breakdown vấn đề, define scope, identify constraints. Những thứ này đã cần thiết 20 năm trước, chỉ là nay nó quyết định chất lượng cả output của AI.
Kinh nghiệm từ dự án thực
Trong một dự án e-commerce gần đây, tôi dùng Cursor để refactor một service khá lớn. AI làm được khoảng 70% - nhanh hơn tôi ít nhất 3–4 lần cho phần đó.
30% còn lại - phần liên quan đến business logic đặc thù của khách hàng, cách hệ thống xử lý edge case với inventory, logic pricing cũ không có documentation - AI không thể làm được. Không phải vì AI kém. Mà vì không có human nào explain đúng context đó cho AI.
Và đó là khoảnh khắc tôi hiểu rõ nhất điều này:
AI amplifies what you bring to the table. Nếu bạn hiểu sâu, AI giúp bạn đi nhanh hơn rất nhiều. Nếu bạn chưa hiểu, AI giúp bạn tạo ra bug nhanh hơn.
Gửi các bạn trẻ đang học nghề
Tôi thấy nhiều bạn junior lo lắng AI sẽ lấy mất cơ hội của mình. Thực ra, tôi nghĩ ngược lại.
AI vừa "xóa" cái phần nhàm chán nhất của nghề - viết boilerplate, generate CRUD, viết test đơn giản. Đây cũng là phần trước đây junior hay bị "ném vào" để làm trong 6 tháng đầu.
Thứ còn lại - hiểu hệ thống, design tốt, communicate rõ, think deeply - là phần thú vị hơn, có giá trị hơn, và cũng khó hơn.
Nếu bạn dùng thời gian không còn phải viết boilerplate để hiểu sâu hơn về những thứ phía trên - bạn sẽ grow nhanh hơn bất kỳ thế hệ developer nào trước đây.
Nếu bạn dùng thời gian đó để ngồi đợi AI generate thêm code - tôi thực sự lo cho bạn. :)
Bạn đang ở giai đoạn nào trong hành trình với AI coding? Và thứ khó nhất khi chuyển từ "dùng AI như tool" sang "làm việc với AI như pair programmer" là gì?
Comment hoặc nhắn thẳng tôi nhé. 👇
/Son Do - believe in basic
#1percentbetter #aiarchitecture #vibecoding #pairprogramming #developerlife