- AI có thể tạo nguyên mẫu với UI và cơ sở dữ liệu chỉ trong vài phút, nhưng không rút ngắn được khoảng cách từ phiên bản chạy được đầu tiên đến sản phẩm đạt chuẩn production
- Với sản phẩm thực tế, vẫn còn những vấn đề đòi hỏi phán đoán kỹ thuật hơn là viết cú pháp, như khả năng mở rộng, xử lý lỗi, khả năng quan sát, bảo mật, xác thực và cấu trúc dữ liệu
- Giá trị của khoa học máy tính nằm ở mô hình tư duy giúp hiểu hệ thống vận hành ra sao và vì sao thất bại, hơn là ở việc sản xuất mã; phải hiểu điều này mới phát hiện được các truy vấn kém hiệu quả hay race condition
- Nhu cầu chuyển yêu cầu thành mã một cách máy móc sẽ giảm, nhưng kỹ sư lành nghề có thể giao việc lặp lại cho AI và tập trung vào các vấn đề cần chuyên môn, nhờ đó làm việc nhanh hơn nhiều
- Nếu dùng AI để thay thế sự thấu hiểu, bạn sẽ khó sửa, mở rộng hoặc bàn giao một hệ thống bị hỏng; vì vậy cần học kiến thức nền tảng trước rồi mới tận dụng công cụ AI
Khoảng cách giữa nguyên mẫu và sản phẩm
- Khi mô tả ý tưởng bằng ngôn ngữ tự nhiên, bạn có thể có một nguyên mẫu chạy được với UI và cơ sở dữ liệu, thực hiện đúng chức năng mong muốn chỉ trong vài phút
- Nhưng nguyên mẫu chạy trên laptop có thể bộc lộ nhiều vấn đề trong môi trường thực tế
- Không chịu được tải và cũng không có xử lý lỗi
- Token API có thể bị lộ
- Mô hình dữ liệu dùng cho demo có thể sụp đổ ngay khi thêm người dùng thứ hai
- Xác thực dựa trên các giả định chưa được kiểm chứng, và mức độ an toàn cũng không chắc chắn
- Đến giai đoạn triển khai, khoảng cách production lớn giữa “chạy được” và “sẵn sàng” sẽ lộ rõ
Phần khó nằm sau khi viết mã
- Kỹ sư phần mềm trước đây cũng đã có thể nhanh chóng làm cho thứ gì đó chạy được; phần thực sự tốn thời gian nằm ở sau đó
- Thiết kế hệ thống chịu được khi quy mô tăng lên
- Xử lý ngoại lệ khi người dùng đi vào những luồng không dự đoán trước
- Xây dựng khả năng quan sát để biết khi sự cố xảy ra
- Đưa ra quyết định về kiến trúc dữ liệu để giảm hối tiếc sau 3 năm
- AI đã rút ngắn đáng kể thời gian để có phiên bản chạy được đầu tiên, nhưng không rút ngắn khoảng cách từ phiên bản đó đến một hệ thống đạt chuẩn production
- Chu trình yêu cầu–phản hồi–xem kết quả nhanh tạo cảm giác rằng phần còn lại của quá trình phát triển cũng đã được nén lại, nhưng vấn đề khó của phần mềm vốn không phải là viết cú pháp
- Khả năng phán đoán về việc xây gì, cấu trúc ra sao, trì hoãn điều gì và khi nào nên từ chối mới là thứ phân biệt nguyên mẫu với hệ thống production
Vì sao khoa học máy tính vẫn cần thiết
- Khi mã do AI tạo trở nên dễ tiếp cận, ngày càng nhiều người mới đặt câu hỏi liệu có cần học thuật toán, cấu trúc dữ liệu, hệ điều hành và lý thuyết trong nhiều năm hay không
- Giá trị của giáo dục khoa học máy tính không chỉ nằm ở khả năng viết mã, mà còn ở việc hình thành mô hình tư duy để hiểu hệ thống hoạt động, thất bại như thế nào và vì sao tạo ra kết quả đó
- Phải có nền tảng này mới nhận diện được các lỗi tiềm ẩn trong mã do AI tạo
- Truy vấn gây quét toàn bảng trên bảng 50 triệu dòng
- Chiến lược cache tạo race condition khi có tải đồng thời
- Kiến trúc giải quyết yêu cầu hiện tại nhưng khiến vấn đề tiếp theo khó hơn nhiều
- Nếu không có kiến thức nền tảng, bạn sẽ phụ thuộc hoàn toàn vào phán đoán của mô hình
- Mô hình không dựa trên phán đoán mà dựa trên khớp mẫu, và tích cực tạo ra mã mà nó cho là phù hợp với ý định
- Mã được tạo có thể trông đúng và đúng thông lệ, nhưng vẫn thất bại trong production
- Nếu không có kiến thức để nhận ra vấn đề, việc chẩn đoán có thể mất nhiều ngày
- Khi khoảng cách giữa hiểu biết và kết quả đã thu hẹp, đây là thời điểm tốt để học khoa học máy tính; một sinh viên hiểu đúng về hệ thống phân tán có thể xây dựng chúng trong thời gian ngắn hơn nhiều so với 10 năm trước
Công việc được tự động hóa và năng suất được mở rộng
- Nhu cầu đối với công việc viết mã máy móc — chuyển từng dòng yêu cầu thành triển khai — thực sự đang giảm, và phần này đang được tự động hóa
- Phần dưới của phân bố năng suất bị nén lại, trong khi giới hạn phía trên được mở rộng
- Kỹ sư lành nghề dùng công cụ AI hiện đại có thể làm việc với tốc độ khó tưởng tượng vào 5 năm trước
- Không phải vì các vấn đề khó đã biến mất, mà vì phần lớn công việc máy móc từng tiêu tốn thời gian và sự chú ý đã được xử lý
- Thời gian có được nhờ vậy có thể dùng cho những việc thật sự cần chuyên môn
- Kỹ sư sẽ tụt lại không phải là người không biết dùng AI, mà là người dùng AI để thay thế sự thấu hiểu
- Xây dựng bằng vibe coding những hệ thống mà họ không thể suy luận được
- Không sửa được sự cố hoặc không mở rộng được hệ thống đã phát triển
- Không giải thích được cho người bảo trì về thứ mình đã tạo ra
Làm việc ở mức trừu tượng cao hơn
- Thay đổi cần thiết không chỉ là áp dụng công cụ mới, mà là làm việc ở mức trừu tượng cao hơn trong khi vẫn bám rễ vào nền tảng
- Kỹ sư dùng AI như bộ khuếch đại cho kiến thức sâu, chứ không phải thứ thay thế kiến thức đó, có thể vượt lên nhanh hơn đồng nghiệp
- Hiểu mình đang yêu cầu mô hình tạo ra điều gì
- Xem xét mã được tạo một cách phê phán như khi review pull request của kỹ sư junior
- Trao đổi từ góc nhìn kiến trúc, không chỉ truyền đạt mô tả tính năng
- Biết khi nào cần phản đối đề xuất của mô hình
- Đây không phải là thay thế kỹ năng hiện có bằng năng lực mới, mà là áp dụng kỹ năng hiện có vào môi trường mới để đạt đòn bẩy cao hơn nhiều
- Ngay cả sau nguyên mẫu, phán đoán kỹ thuật thực sự vẫn cần thiết; năng lực này phân biệt nhà phát triển phát hành phần mềm đáng tin cậy với nhà phát triển chỉ phát hành demo
- Thứ tự học nên là kiến thức nền tảng trước, công cụ AI sau
1 bình luận
Ý kiến trên Hacker News
Tôi đang định bỏ đi phần mã do LLM tạo trong một dự án phụ suốt vài tháng. Dù đã viết đặc tả thiết kế cẩn thận và làm việc trên codebase sẵn có, từng thay đổi riêng lẻ trông có vẻ hợp lý, nhưng tổng thể lại thành một khối phức tạp với nhiều phần lệch nhau một cách tinh vi
Báo cáo hay luận văn cũng vậy: từng mục thì có vẻ ổn, nhưng toàn bộ tài liệu lại có cảm giác kỳ lạ. Con người, dù chậm hơn ở các tác vụ chi tiết, dường như vẫn thực hiện được suy luận cấp cao mà LLM hiện chưa làm được. Khi chỉ ra lỗi, nó sẽ nói “hoàn toàn đúng”, nhưng khi tự rà soát thì lại không phát hiện ra
Việc tạo một ứng dụng CRUD đơn giản bằng các framework JS phổ biến, Tailwind và ORM thì có lẽ hoàn toàn làm được, nhưng trước đây cũng đã có thể mua template SaaS, và boilerplate thương mại được làm thủ công tốt có khả năng còn hơn kết quả vibe coding
Trong PR của người khác, tôi cũng thường thấy chúng giải quyết vấn đề trong prompt ở bề mặt, nhưng triển khai theo cách khó bảo trì lâu dài. Vì vậy tôi tự quyết định quy trình triển khai và thiết kế, rồi làm từng bước với các mô hình mã nguồn mở nhỏ hoặc Claude 4.5·4.6. Việc khám phá API và viết boilerplate nhanh hơn, nhanh gấp vài lần so với làm thủ công mà không làm thoái hóa kiến thức hay phá hỏng codebase
AI là một lớp mới được thêm lên trên stack công nghệ, giống như ngôn ngữ cấp cao nằm trên mã máy, nên cần biết buông bỏ
Điều này không có nghĩa AI vô dụng; cần suy nghĩ sâu hơn về yêu cầu và khâu kiểm chứng cuối cùng, đồng thời giảm niềm tin rằng quá trình tự nó sẽ bảo đảm kết quả có giá trị
Tôi không thích màu sắc hay phần logic nghiệp vụ dài dòng, hào nhoáng không cần thiết, nhưng điều quan trọng lúc này là hai vợ chồng có thực sự thấy hữu ích hay không, và kết quả đang tích cực. Sau đó tôi sẽ thiết kế lại UI theo gu của mình, chốt yêu cầu backend, rồi viết lại từ đầu để dễ bảo trì và mở rộng
Dòng Claude rất giỏi trong việc tạo prototype và khám phá yêu cầu, đồng thời giúp quá trình làm lại cho tử tế sau đó dễ dàng hơn
Một tiêu chí kiểm chứng đơn giản là trong 12·24·36 tháng qua bạn có thực sự thấy sản phẩm mới xuất sắc nào, hoặc cải tiến lớn nào của sản phẩm hiện có hay không. Sản phẩm mới xuất sắc duy nhất tôi từng dùng là LLM ưa thích của mình, và các phòng lab đó ngược lại còn đang tuyển thêm nhiều người
Nếu 12 tháng nữa vẫn không có cải thiện, tôi nghĩ lập luận “đến tháng 2/2027 LLM mới đủ tốt nên hiện chưa thể đánh giá” sẽ lại được lặp lại
https://news.ycombinator.com/item?id=49120097
Các bản cập nhật bảo mật mới nhất của Apple và thông báo bảo mật Android tháng 6 cũng sửa một số lượng lỗ hổng cực lớn. Rất nhiều trong số đó đến từ các ngôn ngữ không an toàn như C/C++, nhưng vì LLM mạnh ở các tác vụ chuyển đổi được định nghĩa rõ và ít khả năng đi chệch hướng, chúng cũng hữu ích khi port sang ngôn ngữ an toàn như Rust
Trong lĩnh vực y tế, số sản phẩm cũng tăng vọt; chất lượng thì khác nhau, nhưng nói rằng chẳng có kết quả nào là sai về mặt khách quan
Khi sản phẩm đã chạy, nên thử yêu cầu “hãy rà soát xem codebase đã sẵn sàng production chưa, và có đạt tiêu chuẩn để bán với giá 1 triệu đô la không”. Khi đó AI sẽ tự bộc lộ rằng nó hoàn toàn chưa đạt tới mức đã tuyên bố trước đó, và đó sẽ trở thành ‘prompt triệu đô’ cho biết bạn đã bị đánh lừa đến mức nào
https://news.ycombinator.com/item?id=18442941
Đã thử dùng LLM theo hai cách. Thứ nhất, vibe coding với Opus 4.6 và backend Node để tạo một plugin gửi thông báo vào kênh Slack theo thứ tự luân phiên nhân sự, cùng bộ đếm thời gian phát biểu theo từng người tham gia Google Meet. Vì là công cụ nội bộ nên dù không hiểu kỹ phần triển khai, nó vẫn chạy ổn trên GCP, giảm chi phí công cụ Slack vốn là 20 USD/tháng mỗi người xuống còn 0,07 USD/tháng tổng chi phí hạ tầng
Không phải làm xong ngay một lần, mà đã trải qua lập kế hoạch chi tiết, thực hiện theo từng bước và bổ sung kiểm thử. Thứ hai, với sản phẩm dài hạn, nhóm thiết kế·rà soát kiến trúc và tạo các ticket JIRA chi tiết rồi chuyển cho Opus. Chỉ để mô hình viết mã sau khi nó lập kế hoạch triển khai và được kỹ sư phê duyệt
Cách thứ nhất phù hợp cho MVP nhanh hoặc proof of concept, nhưng nếu là sản phẩm dài hạn thì nên bỏ MVP, lên kế hoạch từ đầu cho khả năng mở rộng và kiến trúc sạch, rồi dùng LLM như nhân công viết mã. LLM hiện vẫn còn yếu trong việc phán đoán kiến trúc có thể được con người duy trì lâu dài và mã sạch
Tiêu chí đánh giá là việc tiêu thụ sản phẩm do AI tạo ra có thú vị hay không. Bài viết, video, giọng nói, thực đơn nhà hàng, ảnh quần áo, tài liệu, kiểm soát không lưu, quảng cáo... chẳng thứ nào thú vị; LLM được xem là có giá trị như một công cụ tìm kiếm cải tiến hoặc công cụ hỏi đáp
Nếu AI cuối cùng đạt được ngưỡng đó, sản phẩm tạo sinh sẽ lấn át sản phẩm thủ công, và các sản phẩm·dịch vụ do con người trực tiếp làm ra rất có khả năng sẽ chỉ có thể mua với giá đắt hơn nhiều, giống như đồ thủ công ngày nay
Sẽ có nhiều việc liên quan đến việc dọn dẹp kết quả vibe coding của các công ty khác và biến chúng thành hệ thống thực tế. Giá trị từng dự án riêng lẻ có thể giảm, nhưng số lượng sẽ tăng, và nhiều khả năng chúng sẽ không chạy đúng nếu không có trợ giúp
Có người nói rằng các công ty không có kỹ sư phần mềm đang dùng Claude Code để làm việc ngoài chuyên môn cốt lõi, nhưng vẫn muốn nhân viên làm đúng việc họ được tuyển vào thay vì loay hoay với mã
Khi việc làm theo yêu cầu trở nên dễ hơn, sản phẩm rập khuôn sẽ khó bán hơn, nhưng để bàn giao kết quả tùy chỉnh thực sự vẫn cần rất nhiều công việc. Điều này có lợi gấp đôi cho những người vừa có kinh nghiệm tự xây dựng, vừa có kiến thức về lĩnh vực nghiệp vụ đó
Mọi người thường không biết mình cần gì, nên bản chất của tư vấn — phát hiện nhu cầu và cung cấp giải pháp — vẫn giữ nguyên; và khi phần mềm rẻ hơn, có thể phục vụ nhiều khách hàng hơn
Lập luận cơ bản của bài viết có khiếm khuyết. Nếu sau khi tạo prototype vẫn còn việc phải làm, thì cứ tiếp tục làm việc đó là được. Có vẻ tác giả đang đồng nhất việc dùng AI với việc tạo ra mọi thứ trong một lần bằng prompt bốn dòng; điều này trông giống sự tự hợp lý hóa thiếu phê phán hơn là một insight căn bản
Dù không có nền tảng kỹ thuật, tôi vẫn thấy trực giác là đúng, và đã gặp nhiều lần khi làm game bài. Ban đầu nó làm khá tốt, nhưng vì lấy thư viện bộ bài tiêu chuẩn 52 lá nên không thể thêm thẻ sự kiện đặc biệt, trong khi cần một mô hình dữ liệu linh hoạt dựa trên đối tượng lá bài
Nếu nói rõ ngay từ đầu thì có thể giải quyết, nhưng nếu xem phần mềm là đồ dùng một lần và không suy nghĩ sâu về triển khai như một kỹ sư lành nghề, ta sẽ không nghĩ ra các yêu cầu như vậy. Vấn đề của bài viết và mã do AI tạo ra là chúng tước đi quá trình suy nghĩ vốn nằm trong công đoạn sản xuất
Tuy vậy, không phải mọi phần mềm đều cần có khả năng mở rộng, tốc độ và khả năng bảo trì. Hạ tầng và ứng dụng cho hàng triệu người dùng thì cần, nhưng một ứng dụng lập kế hoạch bữa ăn cho gia đình không cần hỗ trợ cả thiết lập dị ứng của hàng chục nghìn nhân viên Google
AI cho phép biến phần mềm thành công cụ kiểu cơm nhà. Cơm nhà không cần là món ăn hoàn hảo; chỉ cần nuôi được gia đình và là món quà công sức dành cho ai đó là đủ
Nếu sản phẩm là thứ có thể được tạo ra chỉ bằng một yêu cầu duy nhất, các công ty outsource đã thống trị các công ty sản phẩm từ lâu. Phần lớn phát triển sản phẩm diễn ra trong các vòng lặp sau prototype·MVP ban đầu
Không chỉ về kỹ thuật, mà còn phải đào sâu vấn đề trong thời gian dài, hiểu căn nguyên của nỗi đau và giải quyết từ cả hai phía trải nghiệm người dùng lẫn kỹ thuật. Trước đây cũng có thể “prompt” một công ty outsource làm sản phẩm, nhưng lý do ta trả tiền cho công ty sản phẩm đã trò chuyện với khách hàng nhiều năm và tích lũy chuyên môn nằm ở chỗ này
Tiêu đề phù hợp hơn để tóm tắt cuộc thảo luận là The Prototype Isn't the Product. Với AI, có thể tạo cực nhanh các prototype dùng một lần và ứng dụng cá nhân chỉ cần “đại khái chạy được”, nhưng kỹ nghệ phần mềm nơi chất lượng và bảo trì quan trọng thì vẫn khó và chậm
Có nhiều màn demo vibe coding hào nhoáng, nhưng ít thảo luận về việc AI hữu ích đến đâu trong các codebase legacy quy mô lớn hoặc trong công việc chuyên môn thường ngày, không hào nhoáng
Bạn sẽ không bị gọi lúc 6 giờ sáng Chủ nhật chỉ vì prototype game 3D vibe coding bị đứng, nhưng nếu có lỗi trong hệ thống vận hành 24/7 vừa cập nhật, chắc chắn bạn sẽ nhận được cuộc gọi