Pragmatic Engineer
85

Thủ thuật

Matt Pocock chia sẻ bí quyết tối ưu hóa AI Coding Agent với kỹ thuật 'grill-me'

(giờ Việt Nam)

Tóm tắt AI

Trong podcast của Pragmatic Engineer, Matt Pocock thảo luận về cách sử dụng bộ kỹ năng 'grill-me' và phương pháp làm việc theo ca để nâng cao hiệu suất lập trình cùng AI.

Bản dịch AI

AI Skills with Matt Pocock

Nghe và xem ngay trên YouTube, Apple và Spotify. Xem bản ghi nội dung tập phát sóng ở đầu trang này và các mốc thời gian của tập ở phía dưới.

• turbopuffer – Một ý tưởng táo bạo: điều gì sẽ xảy ra nếu các AI agent có thể tìm kiếm toàn bộ lịch sử của chúng mà không cần RAG hay các giải pháp thay thế phức tạp khác? Bộ lưu trữ giá rẻ của turbopuffer, kết hợp với hiệu suất nhanh chóng, khiến điều này trở nên thực tế một cách đáng ngạc nhiên cho mọi trường hợp sử dụng bộ nhớ của agent.

• Linear – Các agent chỉ hiệu quả khi chúng hiểu rõ về sản phẩm của bạn, và đối với những đội ngũ như OpenAI và Coinbase, Linear chính là nơi lưu trữ thông tin đó. Bạn có thể sử dụng Cursor, Codex, Claude Code, Linear Agent hoặc các agent do chính bạn xây dựng; sau đó giao việc cho chúng ngay trong Linear để mọi người đều có thể theo dõi tiến độ.

• WorkOS – Những đội ngũ thuần AI (AI-native) nhanh nhất cũng phải chậm lại trước những vấn đề khó. WorkOS đảm bảo rằng việc xác thực (auth), cho ứng dụng và cho các agent của bạn, sẽ không bao giờ là một trong những rào cản đó.

Tại sao kỹ năng “grill-me” lại phổ biến đến vậy, và tại sao người tạo ra nó lại khẳng định tầm quan trọng của các nguyên lý cơ bản trong phần mềm? Matt Pocock đã tạo ra kỹ năng được sử dụng rộng rãi này – cùng nhiều kỹ năng khác – song song với vai trò là một nhà giáo dục, người sáng tạo nội dung và kỹ sư. Khóa học mới nhất của anh là AI Hero, và trước đó anh đã tạo ra khóa học Total TypeScript với tổng doanh thu hơn 2,5 triệu USD.

Trong tập này, Matt và tôi thảo luận về con đường khác biệt của anh: từ một giáo viên thanh nhạc trở thành lập trình viên và dồn toàn lực vào giáo dục kỹ thuật. Anh tiết lộ cách các kỹ năng giao tiếp đã giúp anh bước chân vào ngành công nghệ, lý do anh chọn hợp đồng làm việc ba ngày một tuần đầy khác thường tại Vercel, và cách anh xây dựng Total TypeScript thông qua các buổi workshop, khóa học và rất nhiều bài hướng dẫn miễn phí.

Chúng tôi cũng khám phá “lập trình chiến lược” (strategic coding) và cách anh sử dụng các kỹ năng như “grill me” và “wayfinder” để lập kế hoạch, ủy quyền và điều chỉnh hướng đi với các AI agent. Matt giải thích phương pháp “ca ngày” và “ca đêm” của mình, tại sao việc chia nhỏ ngữ cảnh lại giúp các agent duy trì được “vùng thông minh” (smart zone), và cách các khái niệm từ những cuốn sách kinh điển về kỹ thuật phần mềm có thể hướng dẫn các agent làm việc tốt hơn. Tập này cũng đề cập đến quy trình làm việc cục bộ (local) so với đám mây (cloud), liệu các agent có cần TDD hay không, cách AI đang thay đổi cách các kỹ sư học các nguyên lý cơ bản, và tại sao con người vẫn đóng vai trò thiết yếu trong việc giảng dạy.

1. Matt đã tự mày mò xây dựng một ứng dụng web cho học viên khi còn đang làm huấn luyện viên thanh nhạc. Anh tự học JavaScript để xây dựng một bộ phân tích phổ âm thanh web cho học viên thanh nhạc, trong khi vẫn đang dạy hát, luyện giọng và kịch Shakespeare tại các trường sân khấu. Anh cũng điều hành công ty riêng khi còn ở đại học, theo học bằng Thạc sĩ về thanh nhạc và huấn luyện kỹ năng nói trước công chúng cho các công ty tư vấn.

2. Matt nhận công việc tại Vercel để dự phòng trường hợp Total TypeScript không thành công. Matt đã sản xuất rất nhiều video mẹo TypeScript dài hai phút và chúng trở nên phổ biến. Khi nhận được lời mời làm việc toàn thời gian từ Vercel, Matt đã đàm phán để làm việc ba ngày mỗi tuần dưới dạng nhà thầu (contractor) để có thời gian phát triển khóa học TypeScript vào những ngày còn lại. Khi khóa học thành công, Matt đã nghỉ việc tại Vercel để tập trung hoàn toàn vào các dự án giáo dục của mình.

3. Matt không làm việc vào cuối tuần và không thích khái niệm ‘9-9-6’. Anh giải thích rằng mọi việc anh làm đều là nỗ lực để xây dựng một lối sống mà anh có thể dành phần lớn thời gian cho gia đình. Đó mới là mục tiêu.

4. Kỹ năng ‘grill-me’ được lấy cảm hứng từ Thariq Shihipar của Anthropic. Kỹ năng grill-me đơn giản và ngắn gọn đến bất ngờ: nó hướng dẫn một agent liên tục chất vấn người dùng. Thariq đã chia sẻ phương pháp về một agent phỏng vấn người dùng về một chủ đề – và cách nó hữu ích một cách đáng ngạc nhiên – và Matt đã tạo ra một kỹ năng xoay quanh khái niệm mới mẻ này.

5. Liệu “lập trình chiến lược” có phải là tương lai của công việc lập trình viên? Vay mượn từ cách phân loại “lập trình chiến thuật” (tactical programming) so với “lập trình chiến lược” (strategic programming) của John Ousterhout, Matt tin rằng các agent hoàn toàn có khả năng đảm nhận việc lập trình chiến thuật, để các kỹ sư chúng ta có nhiều thời gian hơn cho cấp độ “chiến lược”.

6. Sử dụng đúng “từ khóa dẫn dắt” (leading words) giúp các agent tạo ra kết quả tốt hơn. Matt nhận thấy rằng các agent thường cố gắng xây dựng phần mềm theo từng lớp và điều này gây ra lỗi giữa các lớp. Khi đọc cuốn The Pragmatic Programmer, anh đã khám phá ra khái niệm “tracer bullet” (đạn dẫn đường). Khi anh hướng dẫn agent sử dụng “tracer bullets” để xây dựng ứng dụng (hay còn gọi là triển khai “golden path”), agent đã bắt đầu tạo ra mã nguồn tốt hơn! Kể từ đó, Matt bắt đầu đọc các cuốn sách kinh điển về kỹ thuật phần mềm để khám phá thêm các “từ khóa dẫn dắt” giúp hướng dẫn các agent một cách hiệu quả.

7. Thiết lập agent dựa trên đám mây (cloud-based) hợp lý hơn so với việc chạy agent cục bộ (locally). Matt đang chuyển các phiên lập trình của mình sang các agent trên đám mây vì làm như vậy có nghĩa là các agent vẫn chạy ngay cả khi anh đóng máy tính xách tay, và các agent trên đám mây có thể được thiết lập theo kiểu “nhiều người chơi” (cộng tác) theo những cách mà agent cục bộ không thể làm được.

8. Phát triển dựa trên Memento (Memento-driven development): tối ưu hóa codebase của bạn cho một đồng nghiệp thức dậy mỗi sáng mà không có ký ức gì. Matt nói:

“Hãy tưởng tượng bạn có một người thức dậy mỗi sáng mà không thể nhớ mình là ai, giống như nhân vật trong phim Memento. Chúng ta đang cố gắng tối ưu hóa codebase cho những người mới bắt đầu, vì vậy chúng ta muốn có một codebase lành mạnh nhất có thể. Con người có thể xoay xở với một codebase tồi và họ sẽ phát triển trí nhớ về nó, nhưng một agent thì không thể; nó bắt đầu lại từ đầu trong mỗi phiên làm việc. Vì vậy, bạn cần tối ưu hóa codebase cho agent đó. Và hóa ra các nguyên lý cơ bản của phần mềm đã luôn cố gắng làm điều đó [tối ưu hóa codebase để dễ đọc/dễ hiểu cho người lần đầu tiên nhìn thấy mã] trong suốt thời gian qua.”

9. Matt có cảm xúc lẫn lộn về Phát triển hướng kiểm thử (TDD) với các agent. Anh tin rằng TDD hữu ích cho các lập trình viên vì chúng ta thường có trí nhớ làm việc ngắn hạn, vì vậy một bài kiểm thử thất bại sẽ nhắc nhở một người đang mất tập trung về những gì vẫn chưa đạt yêu cầu. Tuy nhiên, các agent có cửa sổ ngữ cảnh dài hơn, vì vậy Matt đã bắt đầu yêu cầu các agent cung cấp bằng chứng cho thấy mã của chúng hoạt động – có hoặc không có TDD. Chúng tôi sẽ đề cập đến một góc nhìn khác về TDD trong tập phát sóng với Kent Beck.

• “Loop engineering” là gì?

• Triết lý thiết kế phần mềm – cùng John Ousterhout

• Kỹ thuật ngữ cảnh (Context engineering) cùng Dex Horthy

• Các AI agent có thực sự đang làm chúng ta chậm lại?

• Stack kỹ thuật AI (The AI Engineering Stack)

• Cách Codex được xây dựng

• Cách Claude Code được xây dựng

• Cách Uber sử dụng AI cho phát triển phần mềm: cái nhìn cận cảnh

00:00 Giới thiệu

05:48 Cách Matt bước chân vào ngành công nghệ

10:14 Cách Matt tham gia vào mã nguồn mở

12:58 Gia nhập Vercel

18:39 Total TypeScript

23:21 Tác động của AI đối với giáo dục kỹ thuật

30:32 Xây dựng các kỹ năng có thể tái sử dụng cho các AI coding agent

40:46 “Vùng thông minh” (smart zone) so với “vùng ngốc nghếch” (dumb zone)

45:02 Kỹ năng wayfinder

47:52 Tại sao các agent lại vượt trội trong kỹ thuật phần mềm

50:54 “Từ khóa dẫn dắt” (Leading words)

1:01:10 Học các nguyên lý cơ bản

1:09:17 Agent cục bộ so với đám mây

AI CodingLập trìnhNăng suấtMatt PocockKỹ năng AI
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Pragmatic Engineer. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.