Search

AI Có Thay Thế Lập Trình Viên? Góc Nhìn Từ Người Trong Cuộc

AI Có Thay Thế Lập Trình Viên? Góc Nhìn Từ Người Trong Cuộc

Câu hỏi này theo mình suốt hai năm qua — từ lúc GitHub Copilot bắt đầu autocomplete được cả function, đến khi Claude Code tự đọc codebase và sửa bug mà không cần mình chỉ dẫn từng bước. Mỗi lần có model mới ra, mình lại thấy nó làm được thêm những thứ mà vài tháng trước mình nghĩ AI còn lâu mới làm được.

Mình viết bài này không phải với tư cách một chuyên gia AI hay một người bán khóa học "thời đại AI". Mình là developer đi làm hàng ngày, viết C#, debug EF Core, review code cho team — và mình đang tự hỏi cùng câu hỏi mà có lẽ bạn cũng đang hỏi: nghề này còn tồn tại bao lâu nữa, và mình cần thay đổi gì?


Những gì AI đang thật sự làm được — không phóng đại

Trước khi bàn về tương lai, hãy nhìn thẳng vào hiện tại. Không phải những gì báo chí viết hay demo trên Twitter, mà là những gì mình thấy khi dùng AI hàng ngày trong công việc thực tế.

AI viết code nhanh hơn mình — với những task quen thuộc. Tạo CRUD endpoint, viết unit test cho service, generate DTO từ entity, scaffold một component Angular — những việc này mình từng mất 30-60 phút, giờ Claude Code làm trong 2-3 phút. Và code nó sinh ra không phải code rác — đủ tốt để dùng sau khi review nhẹ.

AI debug khá tốt khi có đủ context. Paste một stack trace vào, mô tả tình huống xảy ra lỗi, AI thường chỉ ra đúng nguyên nhân. Đặc biệt với những lỗi phổ biến — null reference, async deadlock, EF Core query translation — AI đã "thấy" hàng triệu trường hợp tương tự trong training data nên phản hồi rất nhanh.

AI giải thích code cũ cực tốt. Đây có lẽ là use case mình thích nhất. Mở một file legacy 2,000 dòng không có comment, hỏi "module này làm gì" — AI tóm tắt được logic chính trong vài giây. Việc mà trước đây mất cả buổi sáng để đọc hiểu giờ mất 10 phút.

AI viết documentation tốt hơn phần lớn developer. Thực tế là vậy. Hầu hết developer ghét viết docs, nên docs thường sơ sài hoặc không có. AI viết docs rõ ràng, đầy đủ, và quan trọng nhất — nó không ngại viết docs.


Những gì AI vẫn chưa làm được — cũng không phóng đại

Nhìn vào danh sách trên, dễ hiểu tại sao nhiều người lo lắng. Nhưng có một khoảng cách lớn giữa "viết code" và "xây dựng phần mềm" mà AI hiện tại chưa bước qua được.

AI không hiểu business context. Mình đang làm hệ thống multi-tenant cho doanh nghiệp. Mỗi quyết định kỹ thuật đều gắn với một ràng buộc business: tại sao tenant A cần flow xử lý khác tenant B, tại sao invoice phải có trạng thái "draft" trước khi "submitted", tại sao soft delete chứ không phải hard delete — những quyết định này đến từ hàng chục cuộc họp, từ hiểu biết về ngành, từ kinh nghiệm khi khách hàng report bug mà mình phải sửa lúc 10 giờ đêm.

AI có thể implement soft delete pattern hoàn hảo. Nhưng nó không biết tại sao bạn chọn soft delete, khi nào nên hard delete, và exception nào cần xử lý khác.

AI không maintain được hệ thống dài hạn. Viết code mới là phần dễ nhất của software engineering. Phần khó là maintain: khi requirement thay đổi, khi một thay đổi nhỏ ở module A phá vỡ module B, khi performance chỉ chậm ở production với dataset thật chứ không phải test data. AI hiện tại xử lý từng task rời rạc rất tốt nhưng không giữ được bức tranh toàn cảnh về hệ thống qua thời gian.

Mỗi lần mở phiên Claude Code mới, nó quên hết. Nó không nhớ tuần trước mình đã quyết định không dùng pattern X vì lý do Y. Nó không biết cái bug từ tháng trước là do cùng nguyên nhân. Context ngắn hạn thì AI giữ được, nhưng context dài hạn — kiểu "lịch sử tiến hóa" của codebase — vẫn nằm trong đầu developer.

AI dễ tự tin sai. Đây là vấn đề nghiêm trọng nhất. Khi AI không biết câu trả lời, nó không nói "tôi không biết" — nó bịa một câu trả lời nghe rất thuyết phục. Mình từng hỏi về một API của thư viện mà AI tự tin cho ra method signature hoàn toàn không tồn tại. Nếu mình là junior và không kiểm tra, mình sẽ mất hàng giờ debug một function call mà không có thật.

Điều này dẫn đến một nghịch lý: AI hữu ích nhất cho người đã có kinh nghiệm — vì họ biết khi nào AI đúng và khi nào AI bịa. Với người mới, AI vừa là thầy vừa là bẫy.

AI không chịu trách nhiệm. Cuối cùng, khi hệ thống gặp sự cố lúc 2 giờ sáng, không có AI nào nhận điện thoại. Khi khách hàng mất dữ liệu, không có AI nào đứng ra giải trình. Trách nhiệm — cả về kỹ thuật lẫn đạo đức — vẫn nằm ở con người.


Vậy AI đang thay đổi nghề lập trình theo hướng nào?

Câu trả lời trung thực nhất mình có: AI không thay thế developer, nhưng nó đang thay đổi rất nhanh những gì được kỳ vọng từ một developer.

Sản lượng kỳ vọng tăng

Đây là thay đổi đầu tiên và rõ ràng nhất. Nếu trước đây bạn deliver 1 feature mỗi tuần, giờ với AI hỗ trợ, kỳ vọng có thể là 2-3 features. Năng suất cá nhân tăng — nhưng đồng thời, cần ít người hơn cho cùng khối lượng công việc. Đây không phải dự đoán — đây là điều đang xảy ra ở nhiều công ty công nghệ.

Tuy nhiên, "cần ít người hơn" không đồng nghĩa với "không cần ai." Nó có nghĩa là bar tuyển dụng sẽ cao hơn — những developer được giữ lại là những người tạo ra giá trị mà AI chưa thay thế được.

"Viết code" giảm giá trị, "giải quyết vấn đề" tăng giá trị

Nếu bạn định nghĩa công việc của mình là "viết code C#" thì đúng, phần đó đang bị AI ăn dần. Nhưng nếu bạn định nghĩa công việc là "hiểu vấn đề business và tìm giải pháp kỹ thuật phù hợp" thì AI đang làm bạn mạnh hơn, không phải thay thế bạn.

Trước đây, 70% thời gian của mình là viết code, 30% là suy nghĩ về design và architecture. Giờ tỷ lệ đó đang dịch chuyển — code viết nhanh hơn nhờ AI, nên mình có nhiều thời gian hơn cho phần "nghĩ". Và phần "nghĩ" đó mới thực sự tạo ra sự khác biệt.

Junior developer bị ảnh hưởng nhiều nhất — nhưng không phải cách bạn nghĩ

Nhiều người nói AI sẽ "xóa sổ" vị trí junior. Mình nghĩ thực tế phức tạp hơn.

Đúng là nhiều task trước đây giao cho junior — viết CRUD, fix bug đơn giản, viết test — giờ AI làm nhanh hơn. Nhưng junior không chỉ tồn tại để làm những task đó. Họ tồn tại để học, để phát triển thành mid và senior. Nếu công ty cắt hết vị trí junior vì AI, 3-5 năm sau họ sẽ không có ai để lên senior — đó là vấn đề mà ngành sẽ phải đối mặt.

Điều thay đổi thực sự: con đường từ junior lên senior sẽ khác. Junior giờ cần học cách hướng dẫn AI hiệu quả thay vì tự viết mọi thứ từ đầu. Nhưng họ vẫn cần hiểu fundamentals — vì nếu không hiểu code AI sinh ra, họ không thể review, debug, hay modify nó.


Những kỹ năng nào sẽ quan trọng hơn?

Dựa trên những gì mình quan sát, đây là các kỹ năng mà mình đang đầu tư thời gian nhiều hơn.

System design và architecture

AI viết code tốt ở cấp độ function và class. Nhưng quyết định "dùng microservices hay monolith", "chọn event-driven hay request-response", "dữ liệu nên normalize hay denormalize" — những quyết định cấp system vẫn cần con người. Vì mỗi quyết định đều có trade-off, và trade-off phụ thuộc vào context cụ thể của dự án: team size, budget, timeline, kỹ năng hiện có, requirement tương lai...

Mình đang dành nhiều thời gian hơn để học về distributed systems, event sourcing, CQRS — không phải vì chúng thời thượng, mà vì đây là loại kiến thức AI khó thay thế.

Khả năng đánh giá và review

Khi AI sinh code ngày càng nhiều, kỹ năng đọc và đánh giá code trở nên quan trọng hơn kỹ năng viết code. Bạn cần phát hiện: code này có race condition không? Query này có N+1 problem không? Design pattern này có phù hợp với kiến trúc hiện tại không? Security có lỗ hổng nào không?

Đây là kỹ năng đến từ kinh nghiệm — từ việc đã thấy hệ thống sập vì những lỗi tương tự, từ việc đã phải fix production incident lúc nửa đêm. AI không có những trải nghiệm đó.

Giao tiếp và hiểu business

Developer giỏi nhất mình từng làm việc cùng không phải người code nhanh nhất — mà là người hiểu business tốt nhất. Họ biết feature nào cần build trước, trade-off nào chấp nhận được, khi nào nên nói "không" với một yêu cầu kỹ thuật vì nó không tạo giá trị business.

Khi AI handle phần viết code, phần giao tiếp với stakeholder, hiểu requirement, và translate business need thành technical solution trở thành phần quan trọng nhất của công việc. Và đây là kỹ năng AI còn rất xa mới thay thế được.

Sử dụng AI hiệu quả — kỹ năng mới nhưng thiết yếu

Nghe có vẻ hiển nhiên nhưng mình thấy sự khác biệt rất lớn giữa developer biết dùng AI và developer chưa biết. Cùng một tool, người biết dùng hoàn thành task trong 30 phút, người không biết mất 3 tiếng rồi cuối cùng tự viết tay vì kết quả AI không dùng được.

Kỹ năng này bao gồm: viết prompt hiệu quả, biết khi nào nên dùng AI và khi nào tự làm nhanh hơn, kiểm tra output AI thay vì tin mù quáng, và quản lý context để AI không "quên" giữa chừng. Đây là kỹ năng mới, không ai dạy ở trường, và hiện tại tạo ra competitive advantage rõ rệt.


Quan điểm cá nhân: Lo lắng nhưng không bi quan

Mình sẽ không nói dối rằng mình không lo lắng. Tốc độ phát triển của AI nhanh hơn bất kỳ dự đoán nào. Những gì hôm nay AI chưa làm được, 12 tháng sau có thể hoàn toàn khác. Ai nói chắc chắn "AI sẽ không bao giờ thay thế developer" thì hoặc là tự lừa mình, hoặc là không theo dõi lĩnh vực này đủ sát.

Nhưng mình cũng không bi quan. Lý do:

Lịch sử cho thấy mỗi lần công nghệ mới xuất hiện — compiler thay assembly, high-level language thay C, framework thay raw code — số lượng developer không giảm mà tăng. Vì khi việc tạo phần mềm dễ hơn, nhu cầu phần mềm tăng nhanh hơn. Có lẽ AI sẽ theo pattern tương tự — khi AI giúp tạo phần mềm nhanh hơn, nhu cầu sẽ mở rộng sang những lĩnh vực trước đây không có ngân sách để xây phần mềm.

Nhưng "số lượng developer tăng" không có nghĩa "mọi developer đều ổn." Sẽ có sự phân hóa: những developer adapt được sẽ tạo ra giá trị gấp nhiều lần trước đây, những developer không adapt sẽ bị thay thế — không phải bởi AI, mà bởi developer khác biết dùng AI.


Mình đang làm gì để thích nghi

Thay vì chỉ lo lắng, mình chọn hành động. Đây là những gì mình đang làm — không phải lời khuyên, mà là chia sẻ trải nghiệm cá nhân.

Dùng AI mỗi ngày trong công việc. Không phải để thay thế mình, mà để hiểu nó. Hiểu điểm mạnh, điểm yếu, giới hạn. Cách tốt nhất để không bị AI thay thế là hiểu AI rõ hơn AI hiểu bạn.

Đầu tư vào kiến thức nền tảng. Paradox của AI: tool thay đổi liên tục, nhưng fundamentals thì không. Database internals, networking, concurrency, system design — những thứ này vẫn đúng dù AI có phát triển đến đâu. Developer hiểu fundamentals sẽ luôn debug và optimize tốt hơn người chỉ biết framework.

Xây dựng T-shaped profile. Sâu về một lĩnh vực (với mình là .NET ecosystem, multi-tenant systems) và rộng về nhiều lĩnh vực liên quan (DevOps, frontend, database optimization). AI rất giỏi ở mỗi lĩnh vực riêng lẻ, nhưng developer có thể kết nối nhiều lĩnh vực — hiểu tại sao thay đổi backend ảnh hưởng đến frontend performance, tại sao database schema design quyết định khả năng scale — đó là giá trị khó thay thế.

Chia sẻ kiến thức. Đây là lý do mình viết blog W3Dev.vn. Không chỉ vì muốn có thêm thu nhập, mà vì quá trình viết buộc mình phải hiểu sâu hơn. Khi bạn phải giải thích một khái niệm cho người khác hiểu, bạn phát hiện ra những lỗ hổng trong hiểu biết của chính mình. AI có thể sinh ra bài viết, nhưng bạn không học được gì từ việc đọc output của AI — bạn chỉ học khi tự mình tổ chức và truyền đạt kiến thức.

Theo dõi sát sự phát triển AI. Không phải để sợ, mà để chuẩn bị. Khi tool mới ra, mình thử ngay — không phải lúc nào cũng hay, nhưng ít nhất mình biết nó làm được gì và chưa làm được gì. Người bị AI thay thế không phải người dở — mà là người không biết AI đã tiến đến đâu.


Kết luận

AI sẽ thay thế lập trình viên không? Câu trả lời trung thực nhất mình có: không biết. Không ai biết — kể cả những người tạo ra AI. Tốc độ phát triển nhanh đến mức mọi dự đoán dài hạn đều có thể sai.

Nhưng có một điều mình khá chắc: trong 3-5 năm tới, AI sẽ không thay thế developer. Nó sẽ thay thế một số việc developer đang làm, và thay đổi cách developer làm phần còn lại. Developer nào nhìn nhận AI như công cụ và chủ động adapt sẽ mạnh hơn bao giờ hết. Developer nào từ chối thay đổi hoặc chỉ biết viết code mà không hiểu tại sao mình viết — đó mới là người thật sự nên lo lắng.

Cuối cùng, mình nghĩ câu hỏi quan trọng hơn "AI có thay thế mình không" là "mình đang làm gì hôm nay để vẫn còn giá trị ngày mai." Nếu bạn đang đọc bài viết này và tự hỏi cùng câu hỏi đó — ít nhất bạn đã bắt đầu đúng hướng rồi.

Tags:
Culi Dev

Culi Dev

Enjoy coding, enjoy life!

Leave a comment

Your email address will not be published. Required fields are marked *

Your experience on this site will be improved by allowing cookies Cookie Policy