+6

2025, một năm bùng nổ của AI coding agent; Review khóa học Claude Code in Action

Hello ae. Cùng phải nửa năm rồi mình chưa viết lách nhỉ? Nửa năm vừa rồi mình khá bận rộn với công việc, thử sức ở domain mới. Mình tham gia domain VPN và code Golang fyne.io Desktop app, SwiftUI, Kotlin Jetpack Compose. Hiện tại thì mình đang code Go backend cho một phần mềm HRM.

Dành cho bạn nào mới biết tới mình lần đầu, thì mình là Nguyễn Văn Biên, software developer với hơn 4 năm kinh nghiệm (yoe). Skill ban đầu của mình là Dart/Flutter, từ 2025 trở đi thì mình bắt đầu chuyển hướng qua backend và giờ đang là full-time Go Backend developer. Không biết khi nào bị đuổi đây chứ code lỗi tè le kinh quá, hehe.

I/ 2025: Năm bùng nổ của AI coding agent

I.1/ 4 tháng đầu 2025: AI code còn sai khá nhiều, năng suất +7%

Nửa đầu 2025, theo nhận định chủ quan của mình, AI coding agent chưa được ngon lắm. Khi gửi prompt kêu GitHub Copilot/Cursor code giùm 1 feature, nó bị ảo giác: sử dụng thư viện không tồn tại, tự chế ra method, code linh tinh tè le, nhiều khi còn không compile được. Ở thời gian này, mình sử dụng chủ yếu là:

  • Hỏi trực tiếp trên ChatGPT thay vì Google StackOverflow.
  • Research nhanh chóng hơn.
  • Dùng tab completion để code nhanh hơn 1 tí.

Giai đoạn này, mình vừa code Flutter mobile chính và vừa code Go backend phụ. Mình nhận định: AI giúp mình tăng năng suất khoảng +7%.

image.png

I.2/ Nhảy việc lần 1: AI quá ngon cho các task UI và logic đơn giản, năng suất +30%

original.png

Vào giữa năm, mình quyết định nhảy việc để tìm kiếm thử thách mới. Với bộ skill độc lạ Bình Dương là Flutter+Go, mình đã lọt vào mắt xanh của nhà tuyển dụng và thành công gia nhập công ty. Sản phẩm mới có domain về network/VPN, mình phụ trách mảng desktop app và mobile app. Tech stack của nó như sau:

  • Core Network: Go.
  • Desktop app: Go fyne.io.
  • Mobile app: iOS SwiftUI + Network Extension; Android Jetpack Compose + Java VpnService.
  • Admin portal website: Ruby.

Product Manager với phong cách đẩy ticket Jira như Tràng đẩy xe bò, áp lực là rất lớn. Phải công nhận, AI đã cứu mình không biết bao nhiêu lần. Vừa ơn trời mà lại vừa lo. AI vừa giúp mình vượt qua deadline; vừa cho mình cảm giác sợ hãi trước viễn cảnh thất nghiệp:

  1. AI code UI quá khiếp
    • Hồi đó hình như vẫn chưa có Figma MCP. Nhưng AI đã có khả năng phân tích hình ảnh (screenshot), sau đó generate code ra kết quả gần như là chuẩn đét. Chỉ cần cung cấp cho nó một số info về style, như là color, border radius, padding là AI sẽ generate được.
    • Nếu như so sánh với tốc độ mình tự code bằng tay, đối với framework mà mình quen tay là Flutter thì tốc độ có lẽ ~10%; Nhưng khi so sánh với framework mới hơn là SwiftUI + Jetpack Compose, con số đó thực sự là rất lớn. image.png
  2. AI có khả năng tự search internet để lấy được thông tin, cho dù cái framework nó có hiếm đến đâu.
    • Fyne.io là một framework UI open source của Golang. Nó lạ và hiếm lắm luôn. Chả hiểu sao UI kit kiểu gì mà document lại KHÔNG CÓ một cái hình minh họa nào. Vãi đạn! Chưa thấy ai xài bao giờ.
    • Việc dùng một cái framework UI "chữa cháy" - được build bởi một ngôn ngữ chuyên về backend - code UI từ Figma thật sự là một cực hình. Vậy mà AI vẫn làm được! Thậm chí là làm tốt. Nó biết cách tạo ra Stack widget từ những component cơ bản của Fyne.io; nó biết align cho thẳng hàng...
    • Điều đang ngạc nhiên nhất là AI có khả năng search theo real time. Mình có một cái issue mà ở trên GitHub, họ mới chỉ resolve vài tuần trước. Thế mà AI nó có thông tin về issue này, nó search internet, rồi apply thẳng vào code luôn. Khả năng thích ứng thật sự phi thường. image.png
  3. Code logic đơn giản chỉ với 1 câu prompt.
    • Mình có 1 logic đơn giản: Thêm vào Settings cho phép app được bật ngay khi máy tính khởi động.
    • Task này nếu cần nghiên cứu, code chay, tách ra cho 3 nền tảng Windows/MacOS/Linux thì mình estimate khoảng 1d. Tuy nhiên, khi prompt hú họa cho AI, nó thực sự code hoàn thiện tính năng chỉ trong vòng 10 phút! Không mắc bất kỳ sai sót gì, và chạy tốt trên tất cả nền tảng. Thật tuyệt vời.

Mình nhận định: AI giúp mình tăng năng suất khoảng +30%.

I.3/ Nhảy việc lần 2: Business phức tạp thì phải thật sự hiểu tất cả, năng suất +15%

Sản phẩm về Network/VPN phía trên thật sự rất là hay ho. Tuy nhiên, vì một số lý do khách quan và chủ quan, mình phải đưa ra quyết định nhảy việc thêm 1 lần nữa. Lần này, vị trí của mình là full-time Go backend developer.

Tuy nhiên, dự án có domain HRM lần này thì nhiều khi AI cũng không thể đỡ nổi:

  • Liên quan tới con người (human resources).
  • Change Request (CR) liên tục.
  • Customer (công ty mới mua hệ thống HRM) yêu cầu customize đặc biệt.

image.png

Với sự hưng phấn nhờ sự support của AI từ những tháng trước, mình prompt một cách điên cuồng và đã phải trả giá. Mọi thứ diễn ra như sau:

  • CR 1: AI generate code OK
  • CR 2: Yêu cầu xử lý những edge case với logic "hơi" khác. Lúc này, AI tạo ra một số lỗi, mình cần phải tham gia debug. Nhưng nói chung thì CR 2 vẫn pass và hệ thống chạy được.
  • CR 3: Tới lúc này mọi thứ trở thành mớ bòng bong. Mình chỉ hiểu được 1/5 những gì AI đã code. Khi bug xảy ra, mình không thể debug được, AI cũng không biết sai ở đâu, càng sửa càng rối. Function từ 100 dòng, tăng lên 200 rồi 300 dòng... Rất là khủng khiếp.

Cuối cùng, trong sự tuyệt vọng, mình đã clear hoàn toàn code của AI và code chay hoàn toàn: tự define logic, tự implement. Kết quả khiến mình rất hài lòng: Nếu testcase failed hay có bug, mình hoàn toàn biết được dòng code nào là cốt lõi của vấn đề.

No pain no gain. Việc để AI quyết định thay cho developer có thể giúp ta tiết kiệm được 1/2 thời gian ship feature. Nhưng nếu không hiểu AI đã code gì, sau này có bug xảy ra, ta sẽ tốn x5 thời gian debug.

image.png

Sau bài học nhớ đời đó thì mình đã sử dụng AI một cách thông minh hơn:

  1. Ask: Đưa ra requirement trước, define logic nếu có thể. Nếu có nhiều cách làm thì nhờ AI đánh giá xem cách nào tốt nhất; nhờ AI chỉ ra những edge case mà trong ticket chưa đề cập đến.
  2. Plan: Sau khi xác định rõ ràng requirement (từ khách hàng và AI), define logic và kêu AI lên Plan.
  3. Deeper-Plan: Review và chỉnh sửa Plan nếu cần thiết; có thể tiếp tục hỏi xem còn edge case nào chưa tính đến không.
  4. Working/Agent: Kêu AI code theo plan bên trên.
  5. Review: Review lại lần cuối cùng.
  6. (Optional) Document: chép lại logic nếu nó phức tạp.

Với cách làm trên, mình nhận định: AI giúp mình tăng năng suất khoảng +15%.

Có một mẹo nhỏ để nâng cao chất lượng code: luôn xài model XỊN NHẤT ở step Plan.

II/ Review về khóa học "Claude Code in Action" của Anthropic

Claude Code in Action là khóa học do chính cha đẻ của Claude là Anthropic tạo ra, hoàn toàn miễn phí. Với nội dung cực kỳ súc tích và ngắn gọn, bạn chỉ cần tốn 1 buổi tối vừa học vừa chơi là có thể hoàn thành ngay lập tức. Nó rất hữu ích dành cho những chưa dùng bao giờ hoặc mới dùng Claude Code với nhiều kiến thức bổ ích.

image.png

II.1/ Nội dung khóa học

Module 1 – What is Claude Code?

Thay vì nhảy thẳng vào demo, khóa học dành thời gian giải thích coding assistant hoạt động như thế nào bên dưới: cách nó đọc file, chạy lệnh, phân tích codebase thông qua một hệ thống tool.

Screenshot 2026-02-26 at 4.10.25 AM.png

Cách mà Anthropic giải thích coding assistant (Claude code) lấy context, lên plan, thực hiện action, và cách nó tương tác với Claude LLM (model như Sonet, Haiku...) giúp ta hiểu biết rõ hơn hơn về những cái under-the-hood.

Kiến thức này không chỉ áp dụng cho riêng Claude Code, mà còn cho toàn bộ các assistant ngoài kia.

Module 2 – Getting Hands On

Ở đây chúng ta học được cách:

  • Thêm context đúng cách bằng /init và file CLAUDE.md.
  • Kiểm soát context trong cuộc hội thoại: biết khi nào nên tạo conversation mới, khi nào nên trỏ vào file cụ thể.
  • Custom commands: tạo các shortcut cho những tác vụ lặp đi lặp lại.
  • MCP Servers: cách kết nối Claude Code với các công cụ bên ngoài như browser, database,... biến nó từ một trợ lý thành cả một platform có thể mở rộng.
  • GitHub Integration: thiết lập để Claude Code tự động review PR, xử lý issue, tích hợp vào quy trình CI/CD của team.

Module 3 – Hooks and the SDK

Screenshot 2026-02-26 at 4.24.53 AM.png

Đây là module "nâng cao" nhất của khóa, không biết có mấy ai hardcore tới nỗi phải xài cái này không. Hoặc do xưa giờ mình xài mấy tool khác như Cursor/Copilot thì nó đều có sẵn rồi.

Hooks là cơ chế cho phép chèn thêm hành vi vào Claude Code. VD: tự động chạy linter sau mỗi lần sửa file, hoặc ghi log lại toàn bộ thao tác để audit sau...

II.2/ Chấm điểm (chủ quan)

  • Nội dung: 9/10. Sát thực tế, tập trung vào workflow của Dev.
  • Thời lượng: 10/10. Ngắn gọn (~60p)
  • Độ khó: 8/10. Không khó lắm, chỉ khó cần tiền để mua Claude 😃
  • Tính ứng dụng: 9/10. Học xong có thể áp dụng ngay vào dự án đang làm.

II.3/ Nhược điểm

Claude xịn mà đắt vãi. Ai cho tôi xin donate với, hmu hmu.

III/ Làm sao để keep-up với tốc độ phát triển như vũ bão của AI?

  1. Chúng ta phải thường xuyên cập nhập tin tức, hoặc thằng bạn của chúng ta sẽ cập nhập giúp, có gì cứ hỏi nó là được, hehe. Mua cho nó ly StarBucks để nó ngoan ngoãn là đc.
  2. Trên mạng xã hội (Facebook, Reddit, X), hãy theo dõi những người/bản tin có liên quan.
  3. Chơi với những developer cùng vị trí, xem họ đang dùng AI gì. Quả thật, AI phát triển rất nhanh, nhưng không phải tools nào cũng cần thiết đâu. VD, context7 skills để search internet; Figma MCP sẽ cần thiết cho UI task; Xcode MCP cần thiết cho mobile; vercel skills cần thiết cho FE... Golang thì mình chưa thấy có MCP nào cần thiết cả; skill thì cũng để nó học từ source code.
  4. Đi chơi nhiều hơn, biết đâu lại nghĩ ra idea gì đấy làm start up triệu đô.

Vậy thôi, đây là bài viết mở bát năm Bính Ngọ. Chúc mn năm mới thật bình an và giàu có. (Còn tui thì ít dính bug Production hơn, ko bị đuổi việc là đc).

image.png


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí