Matt introduces the workshop's core thesis that software engineering fundamentals apply to AI coding. He explains LLM constraints like the smart zone and dumb zone, and strategies for managing context through multi-phase plans, clearing, and compacting.
Matt giới thiệu luận điểm cốt lõi của workshop rằng các nguyên tắc cơ bản của kỹ thuật phần mềm áp dụng cho việc lập trình với AI. Ông giải thích các hạn chế của LLM như vùng thông minh và vùng kém thông minh, cùng các chiến lược quản lý ngữ cảnh thông qua kế hoạch nhiều giai đoạn, xóa và nén.
music - Yeah, we're good.
[nhạc] - Được rồi, chúng ta ổn.
Okay, folks.
Được rồi, mọi người.
We're at capacity.
Chúng ta đã đủ chỗ ngồi.
Let's kick off.
Hãy bắt đầu thôi.
I don't want you waiting here for 25 more minutes before we some arbitrary deadline.
Tôi không muốn các bạn phải chờ ở đây thêm 25 phút nữa trước một hạn chót tùy tiện nào đó.
So, welcome.
Vậy, chào mừng.
My name's Matt, I'm a teacher, and I suppose now I teach AI.
Tên tôi là Matt, tôi là giáo viên, và giờ tôi đoán mình dạy về AI.
Um We have a link up here, if you've not already been to this, which is has the exercises for the um stuff we're going to do today.
Ờ, chúng ta có một đường link ở trên này, nếu bạn chưa từng truy cập, trong đó có các bài tập cho những thứ chúng ta sẽ làm hôm nay.
This is going to be around 2 hours, so we might just sort of kick off 2 hours from now.
Buổi này sẽ kéo dài khoảng 2 tiếng, nên chúng ta có thể bắt đầu và kết thúc sau 2 tiếng nữa.
Is that all right, Mike?
Vậy được chứ, Mike?
Yeah, perfect.
Ừ, hoàn hảo.
Um and the theory behind this talk, or at least the thesis under which I've been operating for the last kind of 6 months or so, is that we all think that AI is a new paradigm, right?
Ờ, và lý thuyết đằng sau buổi nói chuyện này, hay ít nhất là luận điểm mà tôi đã theo đuổi trong khoảng 6 tháng qua, là tất cả chúng ta đều nghĩ AI là một mô hình mới, đúng không?
AI is obviously changing a lot of things.
AI rõ ràng đang thay đổi rất nhiều thứ.
You guys are obviously interested in this, and that's why you've come to this talk.
Các bạn rõ ràng quan tâm đến điều này, và đó là lý do các bạn đến buổi nói chuyện này.
And I feel that when we talk about AI being a new paradigm, we forget that actually software engineering fundamentals, the stuff that's really crucial to working with humans, also works super well with AI.
Và tôi cảm thấy rằng khi chúng ta nói AI là một mô hình mới, chúng ta quên mất rằng thực ra các nguyên tắc cơ bản của kỹ thuật phần mềm, những thứ thực sự then chốt khi làm việc với con người, cũng hoạt động cực kỳ tốt với AI.
And this is what my keynote is on tomorrow, really.
Và đây thực sự là nội dung bài phát biểu chính của tôi vào ngày mai.
I'm going to sort of be fleshing that out a lot more.
Tôi sẽ trình bày chi tiết hơn rất nhiều về điều đó.
And in this workshop, I'm hopefully going to be able to direct your attention to those things, and uh hopefully show you that I'm right.
Và trong buổi workshop này, tôi hy vọng có thể hướng sự chú ý của các bạn đến những điều đó, và ừ, hy vọng cho các bạn thấy tôi đúng.
But we'll see.
Nhưng chúng ta sẽ xem sao.
Um can I get a quick heads-up first?
Ờ, tôi có thể hỏi nhanh một chút trước được không?
How many of you guys um are coding have ever coded with AI?
Bao nhiêu người trong các bạn ờ đã từng lập trình với AI?
Raise your hand if you've ever coded with AI.
Giơ tay lên nếu bạn đã từng lập trình với AI.
Perfect.
Hoàn hảo.
Okay.
Được rồi.
Uh keep your hand raised.
Ừ, giữ tay giơ lên.
Uh let's all uh share those armpits with the world.
Ừ, hãy cùng ừ chia sẻ những cánh tay đó với thế giới.
Um how many of you code every day with AI?
Ờ, bao nhiêu người trong các bạn lập trình hàng ngày với AI?
Cool.
Tuyệt.
Okay.
Được rồi.
Uh right, keep your hand raised if you've ever been frustrated with AI.
Ừ, đúng rồi, giữ tay giơ lên nếu bạn đã từng thấy bực bội với AI.
Okay, very good.
Được, rất tốt.
You can put your hands down.
Các bạn có thể hạ tay xuống.
Thank you for that show of obedience.
Cảm ơn vì đã thể hiện sự phục tùng đó.
I really appreciate that.
Tôi thực sự trân trọng điều đó.
And we are also being live-streamed to the Gilgood room as well.
Và chúng ta cũng đang được phát trực tiếp đến phòng Gilgood nữa.
I've not uh Did we send someone up to the Gilgood room to just check they're okay?
Tôi chưa ừ Chúng ta có cử ai lên phòng Gilgood để kiểm tra xem họ ổn không chưa?
Don't know.
Không biết nữa.
But I see you, and there is a way that you can participate, which is we have the um a Q&A.
Nhưng tôi thấy các bạn, và có một cách để các bạn tham gia, đó là chúng ta có phần ờ hỏi đáp.
We're going to be doing kind of have a sort of hatred of Q&As cuz they're not very democratic.
Chúng ta sẽ làm kiểu ờ có chút ác cảm với các phần hỏi đáp vì chúng không dân chủ lắm.
They're mostly the sort of um most talkative people get to um get to participate and share.
Chúng chủ yếu là kiểu ờ những người nói nhiều nhất được ờ được tham gia và chia sẻ.
And so, we're going to be going through this um Q&A here.
Và vì vậy, chúng ta sẽ đi qua phần ờ hỏi đáp ở đây.
So, why do we have to wait
Vậy, tại sao chúng ta phải đợi
till 3:45?
Đến 3:45?
The room is packed, the doors are closed.
Phòng đã chật kín, cửa đã đóng.
100% agree.
Hoàn toàn đồng ý.
And so, if you want to uh ask a question, we're going to be I would like you to pile into this async, and then we can vote on each other's questions, and hopefully get the best questions surfaced so the for the entire room to enjoy.
Và vì vậy, nếu bạn muốn ừ đặt câu hỏi, chúng ta sẽ Tôi muốn các bạn đưa vào phần bất đồng bộ này, rồi chúng ta có thể bình chọn cho câu hỏi của nhau, và hy vọng những câu hỏi hay nhất sẽ nổi lên để cả phòng cùng thưởng thức.
So, I want to talk about first the kind of weird constraints that LLMs have.
Vậy, tôi muốn nói trước về những hạn chế kỳ lạ mà các LLM có.
And those weird constraints are sort of what we have to base a lot of our work around.
Và những hạn chế kỳ lạ đó là thứ mà chúng ta phải dựa vào cho rất nhiều công việc của mình.
Now, there's a guy called Dex Hardy who runs a company called Human Layer, and he came up with this idea, which is that when you're working with LLMs, they have a smart zone and a dumb zone.
Giờ, có một người tên là Dex Hardy điều hành một công ty tên là Human Layer, và anh ấy đưa ra ý tưởng này, rằng khi bạn làm việc với các LLM, chúng có một vùng thông minh và một vùng ngu ngốc.
When you're first kind of like working with an LLM, and it's like you've just started a new conversation, you start from nothing, that's when the LLM is going to do its best work.
Khi bạn mới bắt đầu kiểu như làm việc với một LLM, và giống như bạn vừa bắt đầu một cuộc trò chuyện mới, bạn bắt đầu từ con số không, đó là lúc LLM sẽ làm việc tốt nhất.
Because in that situation, the attention relationships are the least strained.
Bởi vì trong tình huống đó, các mối quan hệ chú ý ít bị căng thẳng nhất.
Every time you add a token to an LLM, it's kind of like you're adding a team to a football league.
Mỗi lần bạn thêm một token vào một LLM, nó giống như bạn đang thêm một đội vào một giải bóng đá.
You think of the number of matches that get added every time you add a team to a football league, it just goes it scales quadratically.
Bạn nghĩ về số lượng trận đấu được thêm vào mỗi khi bạn thêm một đội vào một giải bóng đá, nó cứ tăng theo cấp số nhân.
And that's because you have attention relationships going from essentially each token to the other that are positional and the sort
Và đó là bởi vì bạn có các mối quan hệ chú ý đi từ về cơ bản mỗi token đến các token khác, mang tính vị trí và thuộc loại
of meaning of the individual token.
Về ý nghĩa của từng token riêng lẻ.
And so, this means that by around sort of 40% or around I would say around 100K is kind of my new marker for this.
Và vì vậy, điều này có nghĩa là vào khoảng 40% hoặc khoảng, tôi sẽ nói là khoảng 100K là mốc mới của tôi cho việc này.
Cuz it doesn't matter whether you're using 1 million uh context window or 200K, it's always going to be about this.
Bởi vì không quan trọng bạn đang dùng cửa sổ ngữ cảnh 1 triệu hay 200K, nó luôn luôn sẽ là về điều này.
It starts to just get dumber.
Nó bắt đầu trở nên ngu ngốc hơn.
So, as you continually keep adding stuff to the same context window, it just gets dumber and dumber until it's making kind of stupid decisions.
Vì vậy, khi bạn liên tục thêm nội dung vào cùng một cửa sổ ngữ cảnh, nó cứ trở nên ngu ngốc hơn cho đến khi nó đưa ra những quyết định khá ngớ ngẩn.
Raise your hand if that feels familiar to you.
Hãy giơ tay nếu điều đó có vẻ quen thuộc với bạn.
Yeah, cool.
Vâng, tuyệt.
So, this means that we kind of want to size our tasks in a way that sticks within the smart zone.
Vì vậy, điều này có nghĩa là chúng ta cần định cỡ các nhiệm vụ của mình theo cách nằm trong vùng thông minh.
Right?
Đúng không?
We don't want the AI to bite off more than it can chew.
Chúng ta không muốn AI cắn nhiều hơn những gì nó có thể nhai.
This goes back to old advice like Martin Fowler in refactoring.
Điều này quay trở lại lời khuyên cũ như Martin Fowler trong cuốn refactoring.
Uh like uh the pragmatic programmer talks about this.
Uh như uh cuốn the pragmatic programmer nói về điều này.
Don't bite off more than you can chew.
Đừng cắn nhiều hơn những gì bạn có thể nhai.
Keep your tasks small so that you as a developer, a human developer, don't freak out and don't start acting and going into the dumb zone.
Giữ các nhiệm vụ của bạn nhỏ để bạn với tư cách là một nhà phát triển, một nhà phát triển con người, không hoảng loạn và không bắt đầu hành động và đi vào vùng ngu ngốc.
But how do you tackle big tasks?
Nhưng làm thế nào bạn giải quyết các nhiệm vụ lớn?
How do you take a large task like I don't know, cloning a company or something, or just doing something crazy, and how do you break it into small tasks so they all fit into the dumb zone?
Làm thế nào bạn lấy một nhiệm vụ lớn như tôi không biết, nhân bản một công ty hay gì đó, hoặc chỉ làm điều gì đó điên rồ, và làm thế nào bạn chia nó thành các nhiệm vụ nhỏ để tất cả đều nằm trong vùng ngu ngốc?
One way, of course, you could do is I mean, kind of what the AI companies maybe want you to do, or the natural way of doing it is just keep going and going and going, you end up in the dumb zone, charging you tons of tokens per request.
Một cách, tất nhiên, bạn có thể làm là ý tôi là, kiểu như những gì các công ty AI có thể muốn bạn làm, hoặc cách tự nhiên để làm là cứ tiếp tục và tiếp tục và tiếp tục, bạn kết thúc trong vùng ngu ngốc, tính phí bạn vô số token mỗi yêu cầu.
You then compact back down.
Sau đó bạn nén lại xuống.
We'll talk about compacting properly in a minute.
Chúng ta sẽ nói về việc nén đúng cách trong một phút nữa.
And you keep going, keep going, keep going, compact back down, keep going, keep going, keep going.
Và bạn cứ tiếp tục, tiếp tục, tiếp tục, nén lại xuống, tiếp tục, tiếp tục, tiếp tục.
And I think that's doesn't really work very well because the more sediment I we'll talk about that in a minute.
Và tôi nghĩ điều đó thực sự không hiệu quả lắm bởi vì càng nhiều trầm tích, chúng ta sẽ nói về điều đó trong một phút nữa.
So, the theory here is then, and this is what I was doing for a while, is I would use these kind of um multi-phase plans.
Vì vậy, lý thuyết ở đây sau đó, và đây là những gì tôi đã làm trong một thời gian, là tôi sẽ sử dụng những loại kế hoạch đa giai đoạn này.
Where I would say, "Okay, we have this sort of number four thing here, this large task.
Nơi tôi sẽ nói, "Được rồi, chúng ta có thứ loại số bốn ở đây, nhiệm vụ lớn này.
Let's break it down into small sections so that we can then kind of chunk it up and do each little bit of work in the smart zone." Raise your hand if you've ever used a multi-phase plan before.
Hãy chia nó thành các phần nhỏ để sau đó chúng ta có thể chia nhỏ và làm từng phần công việc nhỏ trong vùng thông minh." Hãy giơ tay nếu bạn đã từng sử dụng kế hoạch đa giai đoạn trước đây.
Yeah, really common practice, right?
Vâng, thực sự phổ biến, đúng không?
This is kind of how we've been doing it.
Đây là kiểu cách chúng ta đã làm.
Certainly, this is how I was doing it up until December last year, really.
Chắc chắn, đây là cách tôi đã làm cho đến tháng 12 năm ngoái, thực sự.
And any developer worth their salt will look at this and go, "This is a loop." Right?
Và bất kỳ nhà phát triển nào đáng giá muối của họ sẽ nhìn vào điều này và nói, "Đây là một vòng lặp." Đúng không?
This is a loop.
Đây là một vòng lặp.
We've just got phase one, phase two, phase three, phase four.
Chúng ta chỉ có giai đoạn một, giai đoạn hai, giai đoạn ba, giai đoạn bốn.
Why don't we just have phase N?
Tại sao chúng ta không chỉ có giai đoạn N?
Right?
Đúng không?
Phase N.
Giai đoạn N.
Where we essentially just say, "Okay, we have, let's say, a plan operating in the background, and then we just loop over the top of it, and we go through until it's complete." And this is where um Raise your hand if you've heard of Ralph Wiggum as a software practice.
Nơi chúng ta về cơ bản chỉ nói, "Được rồi, chúng ta có, giả sử, một kế hoạch hoạt động ở chế độ nền, và sau đó chúng ta chỉ lặp qua nó, và chúng ta đi qua cho đến khi nó hoàn thành." Và đây là nơi um Hãy giơ tay nếu bạn đã nghe nói về Ralph Wiggum như một thực hành phần mềm.
Okay, cool.
Được rồi, tuyệt.
Raise your hand if you've not heard of Ralph Wiggum as a software practice, actually.
Hãy giơ tay nếu bạn chưa nghe nói về Ralph Wiggum như một thực hành phần mềm, thực sự.
That's more like it.
Đúng hơn đấy.
Okay.
Được rồi.
So, there's this idea called Ralph Wiggum, uh which is kind of um sort of based on this, which is essentially all you need to do is sort of specify the end of the journey, where you just say, "Okay, we create a PRD, a product requirements document, to say, 'Whoa, okay, let's describe where we're going.'" And then we just say to the AI, "Just make a small change.
Vì vậy, có ý tưởng này gọi là Ralph Wiggum, uh mà kiểu như um dựa trên điều này, về cơ bản tất cả những gì bạn cần làm là chỉ định điểm kết thúc của hành trình, nơi bạn chỉ nói, "Được rồi, chúng ta tạo một PRD, một tài liệu yêu cầu sản phẩm, để nói, 'Whoa, được rồi, hãy mô tả nơi chúng ta đang đi.'" Và sau đó chúng ta chỉ nói với AI, "Chỉ cần thực hiện một thay đổi nhỏ.
Make
Thực hiện
a small change that gets us closer and closer to that." And Ralph works okay, but I prefer a little bit more structure.
Một thay đổi nhỏ đưa chúng ta gần hơn và gần hơn đến điều đó." Và Ralph hoạt động ổn, nhưng tôi thích cấu trúc hơn một chút.
So, that's kind of where we got to in terms of thinking about the smart zone, and that's kind of where I want you to first start thinking about here.
Vì vậy, đó là nơi chúng ta đã đến về mặt suy nghĩ về vùng thông minh, và đó là nơi tôi muốn bạn bắt đầu suy nghĩ đầu tiên ở đây.
Another weird constraint of LLMs is LLMs are kind of like the guy from Memento, right?
Một hạn chế kỳ lạ khác của LLM là LLM giống như anh chàng từ Memento, đúng không?
They just continually forget.
Chúng cứ liên tục quên.
They could just keep resetting back to the base state.
Chúng có thể cứ đặt lại về trạng thái cơ sở.
Let me pull up this diagram.
Để tôi mở sơ đồ này lên.
I sort of I I really should use slides, but I just prefer just like randomly scrolling around a uh infinite uh TL draw canvas.
Tôi kiểu như tôi thực sự nên dùng slide, nhưng tôi chỉ thích kiểu cuộn lung tung trên một khung vẽ TL draw vô hạn.
Thank you, Steve.
Cảm ơn, Steve.
Um So, let's say another concept I want you to have is that every session with an LLM kind of goes through the same stages.
Ừm Vậy, hãy nói một khái niệm khác mà tôi muốn bạn nắm là mỗi phiên làm việc với LLM đều trải qua các giai đoạn giống nhau.
You have, first of all, the system prompt here.
Đầu tiên, bạn có system prompt ở đây.
This gray box here is essentially the stuff that's always in your context.
Cái hộp màu xám này về cơ bản là những thứ luôn có trong ngữ cảnh của bạn.
You want this to be as small as possible.
Bạn muốn cái này càng nhỏ càng tốt.
Cuz if you have a ton of stuff in here, if you have 250K tokens, like I have seen people put in there, then that you're just going to go straight into the dumb zone without even being able to do anything.
Vì nếu bạn có một đống thứ ở đây, nếu bạn có 250K token, như tôi đã thấy người ta nhét vào đó, thì bạn sẽ đi thẳng vào vùng ngu ngốc mà thậm chí không thể làm được gì.
So, you want this to be tiny.
Vậy nên, bạn muốn cái này thật nhỏ.
- snorts - You then go into a kind of exploratory phase.
- [khịt mũi] - Sau đó bạn bước vào giai đoạn kiểu khám phá.
This blue sort of where the coding agent is going out and exploring the code base.
Cái màu xanh này kiểu như nơi coding agent đi ra ngoài và khám phá code base.
Then you go into implementation.
Rồi bạn chuyển sang triển khai.
And then you go into testing.
Và sau đó bạn chuyển sang kiểm thử.
And sort of making sure that it works, running your feedback loops and things like this.
Và kiểu như đảm bảo rằng nó hoạt động, chạy các vòng phản hồi và những thứ như thế.
Raise your hand if that feels familiar based on what you've done.
Hãy giơ tay nếu điều đó có vẻ quen thuộc dựa trên những gì bạn đã làm.
Yeah.
Đúng vậy.
Sort of the like the main cornerstones of any session.
Kiểu như những nền tảng chính của bất kỳ phiên làm việc nào.
And when you clear the context, you go right back to the system prompt.
Và khi bạn xóa ngữ cảnh, bạn quay lại ngay với system prompt.
Oof, you go right back there.
Ôi, bạn quay lại ngay đó.
So, you delete everything that's come before.
Vậy là bạn xóa mọi thứ đã có trước đó.
And raise your hand if you've heard of compacting, as well.
Và hãy giơ tay nếu bạn cũng đã nghe nói về compacting.
Yeah, okay.
Đúng rồi, được.
There are some people who've not heard of compacting.
Có một số người chưa nghe nói về compacting.
So, let's just quickly show what that means.
Vậy nên, hãy nhanh chóng cho thấy điều đó nghĩa là gì.
For instance, I've just been having a little chat with my LLM.
Ví dụ, tôi vừa có một cuộc trò chuyện nhỏ với LLM của mình.
Uh I want to make sure we sort of, you know, just cover the basics so we're all sort of on the same wavelength here.
Ừm Tôi muốn đảm bảo rằng chúng ta kiểu như, bạn biết đấy, chỉ bao quát những điều cơ bản để tất cả chúng ta cùng một làn sóng ở đây.
I've just been having a chat with my LLM.
Tôi vừa có một cuộc trò chuyện với LLM của mình.
I've been talking about a thing that I want to build.
Tôi đã nói về một thứ mà tôi muốn xây dựng.
How's the font size?
Cỡ chữ thế nào?
Should I bump it up?
Tôi có nên tăng nó lên không?
Folks in the back?
Mọi người ở phía sau?
Bump.
Tăng.
Bump.
Tăng.
Bump.
Tăng.
Bump.
Tăng.
Bump.
Tăng.
Oh.
Ồ.
I'm using Claude Code for this session, but you don't need to use Claude Code.
Tôi đang dùng Claude Code cho phiên này, nhưng bạn không cần phải dùng Claude Code.
Uh in fact, it's often nice not to use Claude Code.
Ừm thực tế, thường thì không dùng Claude Code lại hay.
Um so, I've been having a chat with the LLM, just sort of planning out what I'm going to do next.
Ừm vậy, tôi đã có một cuộc trò chuyện với LLM, chỉ kiểu như lên kế hoạch cho những gì tôi sẽ làm tiếp theo.
It's asking me a bunch of questions, and I can I highly recommend you do this.
Nó đang hỏi tôi một loạt câu hỏi, và tôi có thể tôi rất khuyến khích bạn làm điều này.
There's this tiny little status line here that tells me how many tokens I'm using, the exact number of tokens I'm using.
Có một dòng trạng thái nhỏ xíu ở đây cho tôi biết tôi đang dùng bao nhiêu token, số token chính xác mà tôi đang dùng.
Um I have a article on my website AI Hero if you want to copy this.
Ừm Tôi có một bài viết trên trang web AI Hero của mình nếu bạn muốn sao chép cái này.
This is Oh, wow, that is that shakes, doesn't it?
Đây là Ồ, wow, cái đó rung, phải không?
Um this is essential information on every coding session cuz you need to know exactly how many tokens you're using so that you know how close you are to the
Ừm đây là thông tin thiết yếu trong mọi phiên coding vì bạn cần biết chính xác mình đang dùng bao nhiêu token để biết mình gần đến
dumb zone.
Vùng ngu ngốc.
Absolutely essential.
Hoàn toàn thiết yếu.
And so let's watch it.
Và vậy hãy xem nó.
So I've got two options.
Vậy tôi có hai lựa chọn.
I can either clear wrong and go back to nothing or I can compact.
Tôi có thể xóa sai và quay về không có gì hoặc tôi có thể compact.
And when I compact then it's going to squeeze all of that conversation, which admittedly isn't very much, into a much smaller space.
Và khi tôi compact thì nó sẽ nén toàn bộ cuộc trò chuyện đó, mà thừa nhận là không nhiều lắm, vào một không gian nhỏ hơn nhiều.
And this in diagram terms kind of looks like this.
Và điều này trong sơ đồ thì trông đại loại như thế này.
Where you take all of the information from the session and you essentially create a history out of it, a written record of what happened.
Nơi bạn lấy tất cả thông tin từ phiên làm việc và về cơ bản bạn tạo ra một lịch sử từ đó, một bản ghi chép bằng văn bản về những gì đã xảy ra.
And devs love compacting for some reason, but I hate it.
Và các lập trình viên thích nén lại vì lý do nào đó, nhưng tôi ghét điều đó.
I much prefer my AI to behave like uh the guy from Memento because this state is always the same.
Tôi thích AI của mình hành xử như anh chàng trong Memento hơn nhiều, vì trạng thái này luôn giống nhau.
Always the same every time you do it.
Luôn giống nhau mỗi lần bạn làm điều đó.
You clear and you go back to the beginning.
Bạn xóa sạch và bạn quay trở lại từ đầu.
And so if you're able to do that and you're able to optimize for that then you're in a great spot.
Và vì vậy nếu bạn có thể làm được điều đó và bạn có thể tối ưu hóa cho điều đó thì bạn đang ở một vị trí tuyệt vời.
So that's kind of the two things I want you to think about with LLMs, the two constraints that we're working with.
Vậy đó là hai điều tôi muốn bạn suy nghĩ về LLM, hai ràng buộc mà chúng ta đang làm việc cùng.
They have a smart zone and a dumb zone and they're like the guy from Memento.
Chúng có vùng thông minh và vùng ngu ngốc, và chúng giống như anh chàng trong Memento.
So let's take a look at the first exercise.
Vậy hãy cùng xem bài tập đầu tiên.
And I'm while I'm doing this, the way I want this to work is I'm going to sort of show you how um I'm going to be sort of walking through it up here and I want you folks to be kind of like tapping away and doing things as well.
Và trong khi tôi làm điều này, cách tôi muốn nó diễn ra là tôi sẽ kiểu như cho bạn thấy cách mà tôi sẽ đi qua nó ở trên này, và tôi muốn các bạn cũng kiểu như gõ phím và làm mọi thứ cùng lúc.
So that was just a little lecture bit.
Vậy đó chỉ là một phần giảng bài nhỏ thôi.
Let's now actually get and do some coding.
Bây giờ hãy thực sự bắt tay vào và viết một chút mã.
For anyone who arrived late or anyone in the Gilgud room uh go to this link this link up here to see the exercises and clone the repo.
Với bất kỳ ai đến muộn hoặc bất kỳ ai trong phòng Gilgud, hãy truy cập liên kết này, liên kết ở trên này để xem các bài tập và clone repo.
You absolutely do not have to, you can just watch me do it if you fancy it.
Bạn hoàn toàn không cần phải làm vậy, bạn chỉ cần xem tôi làm nếu bạn thích.
But let's go there myself and let's see what exercises await us.
Nhưng hãy để tôi tự truy cập vào đó và xem những bài tập nào đang chờ đợi chúng ta.
So essentially I've built a um this is from my course.
Về cơ bản thì tôi đã xây dựng một cái, đây là từ khóa học của tôi.
This is a uh a course management platform essentially, a kind of CMS for instructors, for students, and this is what we're going to be building a feature in.
Đây về cơ bản là một nền tảng quản lý khóa học, kiểu như một CMS cho giảng viên, cho học viên, và đây là thứ mà chúng ta sẽ xây dựng một tính năng trong đó.
So I'm going to take you from essentially the idea for the feature all the way up to building a PRD for the feature, all the way up to implementing the feature.
Vậy tôi sẽ đưa bạn từ ý tưởng cho tính năng đó, cho đến việc xây dựng một PRD cho tính năng đó, cho đến việc triển khai tính năng đó.
And hopefully you can take inspiration from this process and use it in your own work.
Và hy vọng bạn có thể lấy cảm hứng từ quy trình này và áp dụng nó vào công việc của riêng bạn.