Coding with AI: Có phải kết thúc thời kỳ Software Development?

📌 Tổng quan

  • 🎙️ Chủ đề chính: AI đang làm thay đổi cách phát triển phần mềm, không phải bằng cách thay thế lập trình viên, mà bằng cách mở rộng khả năng giao tiếp giữa con người và máy tính.
  • 🧭 Cấu trúc nội dung:
    1. Cái nhìn tổng thể về sự thay đổi ngành.
    2. AI và quy trình kỹ thuật phần mềm hiện tại.
    3. Hình dung một workflow mới với AI và agent.

Nội dung được tóm tắt từ cuộc hội thoại giữa Gergely Orosz (tác giả của quyển sách The Pragmatic Programmer) and Addy Osmani Fireside.


🧠 Phần 1: Từ lịch sử đến bước ngoặt AI

💬 “Chúng ta không chứng kiến sự kết thúc của lập trình, mà là sự chuyển hóa”

  • AI không thay thế lập trình viên, mà giống như lớp dịch ngôn ngữ mới giữa con người và máy móc, tiếp nối hành trình từ: dây điện → assembly → ngôn ngữ cấp cao → web → LLM.
  • Mỗi lần rào cản bị hạ thấp, lập trình không biến mất mà lại mở ra lãnh thổ mới.

🏗️ Ví dụ lịch sử:

  • VisiCalc (1979): prototyping bằng BASIC, sau đó rewrite bằng Assembly → vẫn cần kỹ năng kỹ thuật cao để sản phẩm hóa.
  • World Wide Web: dân nghiệp dư tự học HTML từ “View source” → nhiều người tạo công ty tỷ đô bắt đầu từ đây.

📉 Chi phí thử nghiệm giảm → 🧪 Số ý tưởng có thể thử nghiệm tăng

  • Câu chuyện học sinh cấp 3 dùng ChatGPT để viết phần mềm đọc nồng độ O2 trong mao mạch võng mạc.
  • Điều này cho thấy: AI không làm chuyên gia mất việc, mà đưa thử nghiệm về tay nhiều người hơn, với chi phí thấp hơn hàng trăm lần.

🧠 Phần 2: Vấn đề 70% và 30% trong lập trình với AI

⚡ 70% đầu tiên: AI làm cực nhanh

  • Tạo boilerplate, API CRUD, giao diện mock, prototype chạy được → chỉ cần prompt tốt.
  • Công cụ như Copilot, Cursor, Lovable giúp “one-shotting” – tạo sản phẩm chỉ bằng prompt duy nhất.

🧱 30% còn lại: con người vẫn phải làm

  • Testing, xử lý edge cases, đảm bảo security, scale, code maintainability.
  • Gọi là “essential complexity” — thứ mà AI chưa thể xử lý tốt.
  • ⚠️ Nhiều người lầm tưởng: prototype chạy được là sản phẩm hoàn chỉnh.

🧩 Tác hại của “House of cards code”:

  • Dành cho junior hoặc người không có kiến thức nền tảng → AI tạo code nhìn có vẻ ổn nhưng sụp đổ trong môi trường thực tế.
  • Senior engineers vẫn là người “giữ sự bền vững” thông qua: refactor, type safety, clean architecture, test coverage…

🔄 Phần 3: Vai trò mới & Mô hình làm việc thay đổi

🧑‍💻 AI = Junior developer cực kỳ nhanh nhưng cần supervision

  • Người dùng nhiều kinh nghiệm có thể tối ưu AI tốt hơn người mới → mâu thuẫn với kỳ vọng “AI giúp democratize coding”.

🧱 Những vai trò bị thay đổi:

  • Senior engineers chia làm hai nhóm:
    • Nhóm học và khai thác AI để tăng năng suất.
    • Nhóm phớt lờ AI vì cảm thấy không hiệu quả ngay từ đầu → dễ bị “đào thải” trong dài hạn.
  • Engineering Manager / Product Manager:
    • Trước đây không code nhiều, nay hoàn toàn có thể viết code với AI hỗ trợ.
    • Vai trò dần chuyển hóa thành “tech lead”.

🧪 Văn hóa và chất lượng:

  • Quality Control quan trọng hơn bao giờ hết.
  • Testing, code review, monitoring phải được nâng tầm để theo kịp tốc độ AI.

🧭 Phần 4: AI + Engineering – Hai thế giới lập trình song song

“We are now programming with two different kinds of computers”
— Một cái viết thơ nhưng không tính được, một cái tính giỏi nhưng không sáng tạo.

⚙️ Ví dụ:

  • Mô hình AI giống động cơ xe, nhưng cần thêm khung, bánh, vô-lăng, hệ thống an toàn.
  • Điều phối AI + truyền thống → trở thành kỹ năng quan trọng.
  • Gọi là: metacognitive recipes – code điều phối inference AI.

Phần 5: Lời khuyên học và phát triển kỹ năng

📘 Học AI + Coding:

  • Nên thử nghiệm liên tục, giữ cơ bắp lập trình truyền thống, không quá phụ thuộc LLM.
  • Đọc lại sách cũ: The Mythical Man-Month, Code Complete, Software Architecture by Mary Shaw → nhận ra phần lớn kỹ năng gốc vẫn còn nguyên giá trị.

❓ Câu hỏi hay:

  • AI không phù hợp với tác vụ phức tạp? → Không hẳn. Phụ thuộc vào cách đặt vấn đề và độ chi tiết trong prompt.
  • Legacy project vs Greenfield? → AI giúp dự án mới tốt hơn; dự án cũ, code base phức tạp thì còn nhiều hạn chế.

🧭 Kết luận

🧠 “Chúng ta không ở cuối hành trình lập trình – mà ở giai đoạn khởi đầu mới.”

  • AI đang thay đổi cấu trúc công việc, cách phối hợp giữa các vai trò, và mở rộng khả năng sáng tạo.
  • Việc học và áp dụng AI trong phát triển phần mềm cần thái độ khám phá, không hoảng loạn, và biết rõ khi nào nên dùng – khi nào không.
  • Đây là thời kỳ tuyệt vời nhất để làm việc trong lĩnh vực phần mềm nếu bạn biết tận dụng đúng cách.

Để lại một bình luận