How I AIThe beginner's guide to coding with Cursor | Lee Robinson (Head of AI education)
EVERY SPOKEN WORD
45 min read · 9,438 words- 0:00 – 2:04
Introduction to Lee
- CVClaire Vo
What are some common tasks that you think Cursor can help people do that help you build better code, help you write better software?
- LRLee Robinson
In this instance, in this repo, I've already set up a linter, and there's something in my application that's not working correctly. So I can say, "Fix the lint errors." The nice thing about AI agents is they can go read things for you. So when I say, "Fix the lint errors," it knows that it can go run a terminal command, and it knows that, hey, there's this thing called bun run lint. So it went, and it ran the command bun run lint. It said there were two issues that it found, so it applies some code changes on this line, and then it reruns the same command, and it verifies itself that things were fixed. And I think this is a really interesting thing, which is that I didn't have to go tell the agent to do anything. It's like rather than giving you step-by-step instructions, you're just putting the thing into the GPS, and it just figures it out along the way. [upbeat music]
- CVClaire Vo
Welcome back to How I AI. I'm Claire Vo, product leader and AI obsessive, here on a mission to help you build better with these new tools. Today, I have a really fun episode with Lee Robinson, who's teaching the future of coding at Cursor. What I love about this episode is we're gonna walk through Cursor's AI agent and IDE, and we're gonna do it for the folks out there that are a little less technical. We're gonna show you how you can be less intimidated by code, learn some foundational concepts of software engineering, and use Cursor to ship more products. I really love this episode, and I hope you'll enjoy it, too. Let's get to it.
- SPSpeaker
This podcast is supported by Google. Hey, everyone, Shresta here from Google DeepMind. The Gemini 2.5 family of models is now generally available. 2.5 Pro, our most advanced model, is great for reasoning over complex tasks. 2.5 Flash finds the sweet spot between performance and price, and 2.5 Flash Lite is ideal for low-latency, high-volume tasks. Start building in Google AI Studio at ai.dev.
- 2:04 – 6:27
Understanding Cursor's three-panel interface
- CVClaire Vo
Welcome to How I AI, Lee. I am so excited because you get to work with and on one of my daily driver AI products, Cursor, and so I'm excited personally to [chuckles] learn a couple of your tips and tricks and also to share them with the How I AI audience. So welcome.
- LRLee Robinson
Thank you for having me. I'm excited to be here.
- CVClaire Vo
As someone who I think also, uh, especially now, uses Cursor on a daily basis, one of the things I wanna zoom out and explain for people is, what the heck is Cursor? We, of course, have lots of sophisticated engineers as listeners, but we also have people that are new to building AI products and want to learn all these tools at their disposal, want to be able to build code and write software. And so where does Cursor sit in the ecosystem of, of tools for AI builders?
- LRLee Robinson
Yeah, Cursor is an AI code editor, and we allow you to integrate and use any model from the top labs, like OpenAI and Anthropic and Google, but we also train and build our own custom models for things like predicting the next action or applying some code. So we're building this cinematic universe of tools that help you code with AI, and it's really a spectrum of different people who can utilize these tools. So we're trying to build a system that works for beginners who are getting started with coding and with building software all the way up to, you know, very power users, which are ourselves building the product, too.
- CVClaire Vo
Yeah, and while you get your screen share up, 'cause I know you're gonna show us a couple things... You know, this may make me an old fuddy-duddy in about a year or two, but I just really like to look at my code. And so one of the reasons why I like the IDE interface of something like Cursor, even for people who have never written code before, is code is actually parsable with your eyeballs. [chuckles] Um, you can read it. You can learn to understand it, and so one of the reasons, even though it could be pretty intimidating to look at something like this that has a bunch of file extensions you never heard of and syntax you don't quite know-
- LRLee Robinson
Yep
- CVClaire Vo
... is looking at code like this is how I learned to code.
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
I learned to code because I looked at code other people wrote, and I started to decompose and research and understand it, and now I'm, you know, one of those more sophisticated engineers that likes to write a lot of their code and, and uses these tools for that. And so, [lips smack] you know, one thing I wanna say for our audience out there that's watching, even if you're not technical, we're definitely gonna have stuff for some of the more technical folks out there, so don't worry, which is, you know, playing with something like a cursor that kind of puts the code structure and syntax front and center might be one of the best ways to actually learn how to code. Um, so I just... I think it's an interesting tool for beginners for that, for that reason alone.
- LRLee Robinson
Yeah, absolutely. I remember when I learned how to code and when I was especially getting into the JavaScript ecosystem-
- CVClaire Vo
Mm-hmm
- LRLee Robinson
... which is a great place for beginners because it works in the web browser.
- CVClaire Vo
Yep.
- LRLee Robinson
You can just open up the web and type in and, and run a web application or website. And I remember seeing what was on the left here in Cursor, this tree of files and all the different extensions and colors, and it was very overwhelming. [chuckles] I was like, "What do all of these things do? I don't really know what half of them mean." And this was, you know, some time ago, but over time, there's been better and better abstractions built to make this more approachable and easier for beginners. But I can definitely empathize with looking at this and it feeling a little bit confusing. So the way I like to think about the, the Cursor editor that you're looking at here is we'll just imagine you've, you've already generated some code, and you've asked Cursor to generate some code, and you have a code base that looks something like this. On the left is your directory of all the different files, so all the different code files in your application. The middle is kind of where you're viewing a specific file, or you're looking at some changes that you wanna make. And then the right side, this panel over here, it's, it's kind of like you're moving up the autonomy slider, [chuckles] and you have the agent, and the agent can write code for you. So there's, there's different levels of, uh, AI usage you can use. For example, when I'm inside of a file, I can type in code and get suggestions-... for, I don't know, maybe I wanna add this counter here. And I can get the helpful autocomplete, not only for the code that I'm writing, but also maybe I want to, uh, import some code as well. So that's, like, the most basic autocomplete functionality, but then when you start getting into the agent, it can actually write entire files
- 6:27 – 11:28
The importance of typed languages, linters, and tests
- LRLee Robinson
for you.
- CVClaire Vo
Yeah, one of the things I wanna call out... Again, we're gonna- we're gonna target this, this particular show at the whole spectrum of, of technical skill sets. And so beginning, I still wanna stick with some of the folks here that honestly, in our comments, have said, "I wanna try something like Cursor, and I've never seen code before,"
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
Which is, if you wanna get to this point, with files on the left-hand side, yes, Cursor can absolutely help you scaffold out a basic app. You could also use your favorite web-based vibe coding app, generate a prototype, download the code, open it on your desktop here. So if you're looking for, like, what is the entry path to, to this, that may be a, a simple flow to get this kind of code set up. But let's presume we're here. You have your code. You know, I'd love for you to show us two things that are gonna- I think are gonna be really helpful. One is, you know, what are some common tasks that you think Cursor can help people do, um, that help you build better code, help you write better software? And the other thing is just, what are pro tips on setting up Cursor to be maximally efficient and powerful? I will guarantee you, I am under, uh, under-configured on Cursor. Every time I see somebody else's Cursor setup, I'm like, "Oh, man, I should do that and that." [chuckles]
- LRLee Robinson
[chuckles]
- CVClaire Vo
So maybe we can cover those two things as you walk through an example.
- LRLee Robinson
Yeah. Well, it's not necessarily a bad thing to be under-configured. I think as you get better with these tools, I've actually found myself stripping back some of the configuration that I provided. So don't feel, uh, behind if you don't have configured with all the latest things. I think it's more important to really start to get a feel for how to work with AI, just in general, without lots of extra config.
- CVClaire Vo
Mm-hmm.
- LRLee Robinson
But what I wanna show, which I think is a, an interesting tip, is let's say you've built the first version of your application. You've built a prototype. You've got something working. You don't really maybe yet fully understand how the code works, for some of the beginners, and you open it up in Cursor, and you're, you're trying to make sense of things. There are tools that you can take from traditional software engineering, how software is built, and apply them to make your code more resilient to errors and help the AI models fix errors for you. So if you think about this agent on the right, the agent can only work with the information that we provided, the context that we provided. So if it doesn't know how to basically read its own outputs or read its information about the code base, it's a lot harder for it to fix errors for you, and there are some things that you can do. I'd recommend three or four of these for any code base that you're setting up. One is to use a typed language. So in the instance of the web, this is TypeScript usually. Two is to use linters. So linters are gonna have opinions about the way that you write code and usually will help you find and fix errors along the way, based on things that developers have stumbled on in the past. The third is to set up a formatter, so it just automatically puts your code into the right formatting, which then you just never have to think about it. And the last one is test. So you're writing a lot of code, you're generating lots of things, and then you accidentally introduce something that breaks. The nice thing about tests is you can kind of build along the way and validate and make sure that things work, and if a test fails after you've made some changes, you can just ask the AI to look at the output of the test, read what failed, and then go and actually make the code changes to make it pass. So I wanna show a, a little demo of this.
- CVClaire Vo
While you're pulling that up, I do wanna do a little translation again for some of our earlier in technical maturity. Typed languages force you to use certain, um, uh, data types in your functions, so it forces you to require a string or a Boolean or a function. It just forces you to make sure your inputs and outputs match what they're supposed to. A linter, and I love that you brought this up because I had a friend recently start coding with Claude Code and, like, four days later, text me and say, like, "Claire, what, what is a, what is a lint like? [chuckles] Tell me what a lint is." And so a lint will sort of, like, review your code for common errors and formatting issues. A formatter will put your code in this pretty format, line breaks where they need to be, tabs where they need to be, style where it needs to be. There's lots of formatting that you can do. And then tests are something that all good engineers [chuckles] should be doing, and I'm glad you're giving it some airtime, but essentially, it's a separate set of functions that you can run against your code to make sure that it's operating as, as it should be. So those are... That's Claire's natural language explanation of, uh, typed languages, linters, formatters, and tests. [chuckles]
- LRLee Robinson
Yeah, no, I love that. I, I, I would think about a typed language as basically, it's, it's taking this very open-ended way of writing code and making it much more strict.
- CVClaire Vo
Yep.
- LRLee Robinson
And the nice thing about making it more strict is that, one, it can help prevent issues, but two, your editor, so Cursor or any other code editor, can give you feedback if you do something wrong, and that's not only feedback for the humans, it's also feedback for the AI agents who are writing code. So if they generate code that's potentially wrong, usually having types or typed languages can help the agent look at that output and say, "Oh, actually, I did this wrong, and I can go and fix that change."
- 11:28 – 15:17
Demo: Using the agent to automatically fix lint errors
- CVClaire Vo
Yep, and just, just be warned that you may run into type errors, and your agent will happily help you work around them. [chuckles]
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
So knowing what you're doing there, um, is helpful to keep your, your app appropriately typed.
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
But let's go into actually how you would do some of those things using Cursor.
- LRLee Robinson
So one thing I, I actually did wanna show is you could, you know, hide the left sidebar. You could not have this code open. You could just be looking at this agent view for the, the sake of talking about minimizing what you're looking at on the screen, and we have some improvements coming here to make this view, uh, even better. But in this instance, in this repo, I've already set up a linter, and there's something in my application that's not working correctly. So I can say, "Fix the lint errors."... and you'll notice, like, I'm not typing a very complex prompt. I'm not giving it a ton of information. The nice thing about AI agents is they can go read things for you. Cursor and other tools basically give the AI agents skills, and [chuckles] we've given them the skill to go read files in your code base, and search files in your code base, and run a bunch of commands for you. So when I say, "Fix the lint errors," it knows that it can go run a terminal command. So if, if you've used the terminal before, maybe you haven't used the terminal before, it's like this kind of scary-looking place where you can run all these strange commands and-
- CVClaire Vo
[chuckles]
- LRLee Robinson
... and do lots of things for you, and you don't have to learn any of that right away. You can ask the agent to take- teach you how to use terminal commands, and it knows that, hey, there's this thing called bun run lint, which you don't need to know is [chuckles] maybe right away, and it can go and say... Uh, I'll just scroll up to the top here, and we can read through it. So it, it went, and it ran the command bun run lint. It said there were two issues that it found. One of them was that I had this type, so going back to types, around any, and any just means basically you're allowing it to be anything. [chuckles] So we might wanna be a little bit more strict than that because it can help us find errors, and then we see that it actually goes and makes some changes. So it applies some code changes, uh, on this line, and then it reruns the same command, and it verifies itself that things were fixed. And I think this is a really interesting thing, which is that I didn't have to go tell the agent to do anything. It's like rather than giving you step-by-step instructions, you're just putting the thing into the GPS, and it just figures it out along the way. And at the end, it says, "Great, we fixed all the errors for you. Here's what we did. There was a type safety issue, and then we formatted the code." So now all of our checks and balances pass, and I didn't have to go find that place in the code. I didn't have to really go look at this line and know that there was an issue. It says, "Hey, here were the issues. Because we have these systems in place, we can help ensure the code is of high quality."
- CVClaire Vo
Well, and I might make you come back on the podcast or do a part two of Cursor for super advanced software engineers, which I think would be really useful. But while we're here in sort of this early stage, I do want you to click this diff in the agent. Just open it up a little 'cause I want people to be able to see that you could... Oh, maybe you can. You are- already accepted them, but I wanted people to be able to see the... You know, it'll display here for, for you what was removed, what was changed in the sort of red, green. And again, for people that are really new to coding, um, and I know many of you out there listening are, that's the way to, like, read the code and, and learn. And so it's one of the things that, again, I like about this kind of like recursive human-in-the-loop process with Cursor is now I know run bun, bun run lint. Now I know if I wanna run lint, and I wanna get really fancy, I can open up the terminal in Cursor and run that function myself.
- LRLee Robinson
Yeah.
- CVClaire Vo
And I can look at what it changed, and I can say, "Oh, okay, it changed type any to type contact." Oh, here it is. Yeah.
- LRLee Robinson
I could, for example, still go in here and do it manually.
- CVClaire Vo
Mm-hmm.
- LRLee Robinson
Like, now that I know that that command-
- CVClaire Vo
Yeah
- LRLee Robinson
... exists, I can run it, and great, everything-
- CVClaire Vo
Yep
- LRLee Robinson
... looks correct.
- 15:17 – 18:50
Running parallel coding tasks with the agent
- CVClaire Vo
Perfect. Yeah, I love that. And so this is just an example of, you know, even when your agent writes code, sometimes it does not write perfect code, and when you write code or you vibe code something, um, it can do these sort of, like, hacks and workarounds, especially with these typed languages. And so getting into the habit of using Cursor to just clean up your code and keep it usable as you go is, is, is really great. So other than lints, are there any other tasks that you find yourself commonly reaching to the agent for in, in a code base?
- LRLee Robinson
Yeah, so once you get these checks and balances of tests, and types, and lints, basically just making sure as you're adding new features, you're adding new functionality to your app, you can ensure that the agent stays on track.
- CVClaire Vo
Yep.
- LRLee Robinson
Um, what I, what I typically find myself doing is I'll be working on some code kind of in the main view. So if I just go back to this view, uh, I've got my files on the left. I've got some code in the middle, and maybe I'm actually typing some things in here myself, but I'm kind of- I'm working on something. I have my attention in the middle. Then I can go over to the agent, and I can run additional things kind of in parallel on different parts of the code base, maybe as I think about it, and this is something you can kind of train and build this skill of you've got the main thing, which is maybe in the middle, and then you can run other things on the right. So maybe I want to, I don't know, add a new route that displays information about, um, different AI models. I don't know. We could just put any, any prompt here, but maybe I wanna do this, and I don't even wanna think about it. I can just close it out. So it's just running. I don't even need to think about it. I can go back to what I was doing in the middle, trying to figure out something, and then I can open this back up if I want. So it can kind of just go cook in the background for me, and I, I think as, for the first step for a lot of people who are coding with AI, the AI is generating a lot of code for them, which is great.
- CVClaire Vo
Mm-hmm.
- LRLee Robinson
And then they, as they gain familiarity, as they ask questions and learn how these tools work, then the next step is it really becomes more of a pair programmer. You're learning, here's what I can use the AI model for. Here's where I need to kind of take over, grab the wheel [chuckles] and start driving.
- CVClaire Vo
Yep.
- LRLee Robinson
Yeah.
- CVClaire Vo
And I wanna, I wanna call it a meta thing 'cause I have eagle eyes on your code base, which is this looks like a Docs Academy, sort of like learning-style knowledge base-
- LRLee Robinson
Mm-hmm
- CVClaire Vo
... code base. It's not a typical, very, like, complex web application or a SaaS application. You're coding like a, like a learning hub, essentially-
- LRLee Robinson
Mm-hmm
- CVClaire Vo
... for, for developers. And one of the things I wanna call out, again, for people who maybe don't see themselves as software engineers or don't even see an application in their role for coding, which is, I think, more and more of marketing assets are going to be owned via code. More and more of, like, non-core application is gonna be developed in this model. You know, you used to see these CMSs and these, like, kind of WYSIWYG editors, and I think what AI has made accessible is the ability for, you know, people who maybe don't have classic software engineering backgrounds to actually run their own, quote, unquote, "products"-... that are built via code. And so, you know, I just wanna make sure people are thinking, like, I don't ha- you don't have to build a consumer app, you don't have to build a, a, a SaaS application, you don't have to build an AI agent. You could build your marketing website, you could build your learning academy, you could build internal tooling, and at the end of the day, all of it is behind the scenes as code, and so that's where something like an AI, um, code editor and, and agent can really come into play.
- LRLee Robinson
Definitely.
- 18:50 – 23:24
Setting up custom rules
- CVClaire Vo
Yeah. Okay, so let's talk about, ah, setup. So, as I said, I'm under-configured. You've made me feel good that I am not over-configured, so I'm happy to hear that. But what are some of the kinda tips and tricks you would have around rules and other sort of configuration setups in in Cursor that you think people should, should know about and be using?
- LRLee Robinson
One thing I've found just in general is when I see a model do the wrong thing or something that I did not want two or three times, it's like, okay, this is probably time for me to, to notice this hint and, ah, kind of pull that out into a custom rule. And rules are just a way for you to codify the places where the models went wrong, and actually I want it to work this way in the future. Um, so I'll show a couple of the rules that I have in my application. I have some for when I'm writing, so this is kind of a docs and learning, um, repository, and I want to use specific writing rules, ah, specific rules about the package manager that I'm using. Um, but one thing that's really interesting and is kind of a newer feature of Cursor is, let's say I have the agent open. I can define specific commands, and one of my commands is code review. So if I do code review, I can actually run this over all of my code, and I define that command inside of this folder, and I've just been slowly building this prompt as I kind of go along, with some things that are worth checking out. So the way this prompt works is I'm reviewing all the changes I have on my branch. Branch is just a fancy word in Git terminology, which Git is something... It's a version control system that you might wanna check out as you go further along in your coding journey, but it allows you to c- basically go back in time and save different parts of your code along the way. So-
- CVClaire Vo
And I-
- LRLee Robinson
... yeah
- CVClaire Vo
- I should know this. Does Cursor recognize at branch? Is that, like, a particular-
- LRLee Robinson
Mm-hmm
- CVClaire Vo
... reference? Oh, well, yeah.
- LRLee Robinson
Yeah, so when, when you have the Cursor agent open, you can do the at menu.
- CVClaire Vo
Uh-huh.
- LRLee Robinson
And the at menu gives you all of this different stuff that you can basically forward to the AI model-
- CVClaire Vo
Yeah
- LRLee Robinson
... forward to the agent. And one of those is Git, so maybe you want the branch-
- CVClaire Vo
Mm-hmm
- LRLee Robinson
... maybe you want the specific commit. The branch is basically all of my working changes on this-
- CVClaire Vo
Yeah
- LRLee Robinson
... thing that I'm doing, and then the commit is, like, one specific change.
- CVClaire Vo
Oh, I should have paid more attention to that menu. I'm just at mentioning and then type ahead, and let's see what [chuckles] shows up so-
- LRLee Robinson
Yeah
- CVClaire Vo
... this is helpful.
- LRLee Robinson
Yeah, yeah, and you can still do that once you know, once you understand the code, and it's like-
- CVClaire Vo
Yeah
- LRLee Robinson
... "Okay, I have this file that is a list of my dropdown or something."
- CVClaire Vo
Yeah.
- LRLee Robinson
I can just do at dropdown, right?
- CVClaire Vo
Yep.
- LRLee Robinson
But, um, yeah, what this, what this prompt is doing is saying it's review all the changes I have so far and, you know, were there any changes here that could affect if the application is running offline or when the data is loading? Or was there anything unnecessary added?
- CVClaire Vo
Mm-hmm.
- LRLee Robinson
Did we add good tests? You know, add fewer, high-quality tests.
- CVClaire Vo
Yep.
- LRLee Robinson
Did we make any changes to authentication? So a lot of this, these are more advanced bullet points here based on things that I've seen over time, but you have the ability to define these custom commands for anything. It could be a security review, it could be a code review, it could be a code cleanup review.
- 23:24 – 24:48
Understanding the different AI models
- CVClaire Vo
to learn more. So I have to ask you just a few more questions about your agent setup, and then we will go on to our second workflow. So if you don't mind popping over your... open your agent.
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
I'm just going to ask you, man, you are an auto agent guy.
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
You're an auto model selector gentleman. Tell me more, because I am spending all my time in that agent dropdown. [chuckles]
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
So explain to me why you, you, you like this, uh, select my agent workflow.
- LRLee Robinson
Mm-hmm. Yeah, I think for those getting started with coding with AI, understanding all the nuances of the different models can be a little overwhelming, and what we try to do with Auto, which, um, you know, a, a lot of people choose to use, is just pick the best choice for you based on, you know, speed, quality, um, availability.... and I think it's helpful to start this way, and then as you learn more, and as you understand kind of the quirks and differences of different models, then you can go in here and actually see the complexity of a bunch of different types of models, and maybe what the strengths of some are. So maybe I want a, you know, a reasoning model. Like, GPT-5 has got this little brain, and the reasoning is just it can think for longer, and maybe I wanna use that for more complex tasks. Well, I can pick this specific model and learn kind of how it works, what its qualities are, its writing style, its output style.
- 24:48 – 27:22
Micro-slicing agent chats for better success
- CVClaire Vo
Yep. And then, you know, for more complex tasks, 'cause that's a lot more of what I'm using, any tips on, you know, um, sort of micro-slicing your agent chats and doing, like, lots of little things, using the to-do list? Like, what are some tricks for people trying to bite off maybe a bigger technical initiative that you found, you know, leads to better success or helps you avoid context bloat and all that kind of stuff?
- LRLee Robinson
I would probably need to pull up a different-
- CVClaire Vo
Yeah, fine.
- LRLee Robinson
Probably need to pull up a different repo. [laughing]
- CVClaire Vo
[laughing]
- LRLee Robinson
This one's really... This one was really funny. This was a demo I was doing where I said, "Even more confetti. Just make it ridiculous."
- CVClaire Vo
What?
- LRLee Robinson
"Add another layer. No mistakes." [laughing]
- CVClaire Vo
I love it. I love it.
- LRLee Robinson
Yeah.
- CVClaire Vo
It's great.
- LRLee Robinson
You get this hilarious... 'Cause the, the AI model's gonna follow whatever style you give it on the format, so-
- CVClaire Vo
Yeah
- LRLee Robinson
... I wanted to have some just amazing confetti here.
- CVClaire Vo
Yeah.
- LRLee Robinson
And yeah, this was super funny. But, um, kind of going back to your question, I feel like this is a little bit longer of a conversation-
- CVClaire Vo
Mm-hmm
- LRLee Robinson
... and you can see down at the bottom. [laughing]
- CVClaire Vo
[laughing]
- LRLee Robinson
You can see down at the bottom, I used 11% of the context-
- CVClaire Vo
Mm-hmm
- LRLee Robinson
... and the context is, like, all of the space available in this chat. So when I start a new chat, it says 0%. And I think it's helpful to know that under the hood, as that percentage increases, you know, if you get to 80, 90%, Cursor will automatically summarize it for you when you get to 100%, but the quality kind of degrades as you get up toward the top. Because it's kind of like talking to a person. Like, if you talk for 30 minutes, it's gonna be hard to remember that thing you said way back at the start of the 30-minute conversation. [chuckles] So what I try to recommend to people is to make new chats for discrete features. So sometimes that requires a little, a little bit more planning, a little bit more context that you wanna give to the agent, but it does help get better quality, I think.
- CVClaire Vo
Yeah, the other tip I would give to people is I often think about my agents having to context switch the same as humans have to context switch, and the cost of that. And sometimes, you know, I'm doing a task, and I'll think, "Oh, wait, how do I run lints again?" for example.
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
And I can throw into that chat, "How do I run lints?" And it could give- But again, I'm, like, taking, taking the agent off, off the golden path of what we're trying to do. And so sometimes for those one-off questions that are related but not core to a workflow, I try to just kick off a one-off chat to answer them, or a, a separate agent, just to sort of keep that single path cleaner. So that's, that's a little bit of my, my
- 27:22 – 29:00
Tips for effective agent usage
- CVClaire Vo
tactic there. Okay, so just to recap for folks, we got a whirlwind tour of what Cursor is, three-panel context window going up the abstraction layer, all the way to the agent. We got a sense of rules, and I learned about commands, which I have not been using and I will be using. Um, we looked at all the things you can @mention into the context, including files and images and Git context, and all sorts of fun stuff there. We learned about types and lints and tests and formatters, which we'll talk about a little bit more, I think, later. And you showed us that code does not have to be super scary. Um, and if it is scary, just close that window and go back, go back to the agent.
- LRLee Robinson
Yeah. Yeah, and you can ask the agent to explain code. I think people who have a lot of agency, a lot of curiosity, are able to just make things, and then when they see stuff they don't understand, they almost trick their brain into saying, "This isn't scary, this is exciting. This is an opportunity. I'm gonna learn something new. I'm gonna build something new. Please explain how this thing works." And it's like you've got this expert programmer just sitting right beside you, who is very, very happy to explain how everything works, and it has all the time in the day [chuckles] to explain.
- CVClaire Vo
Yeah. I'll give... I'll give shout-outs to Jeremy Davan Yeand, who sat next to me over the course of many decades and got very annoying questions and turned me into the monster that I am. And now, [chuckles] I have a version of that, you know, like, senior engineer sitting next to you, who has infinite patience, who thinks none of your questions are stupid. Um, and it's just, like, such a great, a great learning platform, and so I think it's just an exciting,
- 29:00 – 35:47
Using AI to improve your writing
- CVClaire Vo
exciting time. Okay, we have one more use case, not about coding, but we s- I saw a little of this before the show, and it's a, it's a good one. So let's pull up how you use, uh, a specific prompt to improve writing, especially writing where AI might touch it.
- LRLee Robinson
Yes. So I use the ChatGPT Mac OS app a lot. They did a wonderful job. And I use it for all, all sorts of things in the day-to-day kind of business world, whether it's Slack messages or blog posts, or just any writing that I need to do, emails. And I've built up this mega prompt [chuckles] about writing that has all the little knits of things that I like and what I don't like. Some of them are, are, are more about the style of writing I like, whether it's the way sentences are structured, the voice and tone. But I think the most interesting part is I've... If I scroll down a little bit, I've built up this list of banned words, which I'm- I've- I've certainly just cribbed this from other places on the internet where people have suggested good writing tips, especially in writing books. Like, a lot of writing books have phrases that you wanna avoid or words you wanna avoid, but I've tried to also give it very specific examples. So instead of saying, "This is game-changing," you can just say, "Here's the specific benefits," or, and saying, "This is so innovative," you can, you can kind of just remove that word. And I've built up this big list, some of my own, you know, personal ones that I get annoyed about, and then also just general practices. But th- this is, this is all just a helpful pass. I- sometimes I run this, and I go through, and I don't agree with the changes. I'm like, "Ah, whatever, it's fine."
- CVClaire Vo
... Um, yeah, I think this is great 'cause we, uh, we do have to give a shout-out to Delve, which makes a, a f- a, is-
- LRLee Robinson
Yes
- CVClaire Vo
... keyword on this list. The other thing is, I say and write "super" so much.
- LRLee Robinson
Yeah.
- CVClaire Vo
I, like, have a verbal and textual tic around some words. And so [chuckles] this is ... I'm gonna make- I'm gonna ban my own words here, uh, sometimes, or at least say, "Don't, don't overuse them."
- LRLee Robinson
Oh, totally. I- I've noticed in here, there's- especially some of the phrases that I use, I realize that I say it all the time, so it's helpful for the AI to be like, "Are you sure you wanna say that?" And as with all writing rules, they're meant to be broken, so [chuckles] like sometimes, like, yeah, actually, I'm, I'm happy saying, "pretty much." I know it's a little bit more informal, but it's fine. I like it.
- CVClaire Vo
Yep. Yep.
- LRLee Robinson
Um-
- CVClaire Vo
And I like these banned phrases, because again, you know, a little bit for the software engineers, but a little bit for the non-technical, is how much marketing all sounds the same?
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
Like, all is exa- data-driven by developers for developers, all this stuff. And just, you know, for the marketers out there, go out there and ban generic language from your enterprise marketing via-
- LRLee Robinson
Yes
- CVClaire Vo
... AI, and see how much more specific and high-impact it can get.
- LRLee Robinson
Yes. Yeah, 100%. My favorite recent addition here is when, when you see it, you cannot unsee it, but everybody says, you know, "We're excited to..."
- CVClaire Vo
Yep.
- LRLee Robinson
And I've noticed there's been a shift where a lot of people are now just saying like, yeah, just like, obviously, you're excited. Just cut that.
- CVClaire Vo
[laughs]
- LRLee Robinson
Like, just tell me what the thing is. [chuckles]
- CVClaire Vo
This is great, and, uh, ex- will be an excellent s- source of your banned slop phrases.
- LRLee Robinson
Oh, yeah.
- CVClaire Vo
So let's get to it. And then, uh, I need this last prompt. I'm going to screenshot this and take it: LLM patterns.
- LRLee Robinson
Yeah. I have noticed that, you know, LLMs have, and especially specific models, all have their own little tics or things-
- CVClaire Vo
Mm-hmm
- LRLee Robinson
... that they do. For a while it was, they would always output markdown lists with like the same formatting.
- CVClaire Vo
Mm.
- LRLee Robinson
It was really annoying 'cause you could always tell it was LLM-generated. There was, of course, Delve. Uh, the most recent one that I've seen is actually this, this phrase of, "It's not just X, it's Y." And it's like a, it's a very specific way of writing that in some ways, like em dashes, it's trained on good writing-
- CVClaire Vo
Mm-hmm
- LRLee Robinson
... but in a weird kind of unintended way, then ends up getting memed because so many people did it, or so-called good writers did it, right?
- 35:47 – 45:27
Lightning round and final thoughts
- CVClaire Vo
saying that, but let's do a couple lightning round questions, and I will get you back to all your awesome work. My first one really is kind of this, this theme of this podcast, which is there's a spectrum of people who have never looked at a line of code in their life all the way to, you know, staff and principal engineers who can write code by hand, um, on a whiteboard to solve very complicated problems. And I'm curious from your point of view, you know, what's the entry point for each of those, those personas, and what's the kind of right interface for people wanting to get, get started? Because we have everything from these web-based vibe coding, front-end things to terminal-based, who needs to look at the code agents, to something like Cursor that's a little bit more contextualized in the code. I'm just curious your point of view of like-... you know, what is for who in, in this ecosystem?
- LRLee Robinson
The term vibe coding is so catchy. It's, like, such a good word that- and such a good phrase that I think it made a lot of people interested in, "Wait, I can just build software now?" So I, I'm happy about that because I think the democratization of anybody being able to build software is an amazing thing. Like, I want more people to be able to contribute and build their ideas. I think it's- that was what got me inspired and interested the first time I saw a web development. When I saw the pixels light up on the screen in the browser, I thought, "Wow, this is amazing! I, I wanna do this for my career." And helping more people get to that moment, I think is amazing. So where I'm seeing right now is I think there's a lot of investment being made in tools specifically for that type of person, where they're not really ready to look at the code yet. They're not really ready to start to dig into some of the concepts that we talked about today. They're really just... This is their first step into it. It's, it's kinda like the, uh, the Squarespaces of the world. Like, Squarespace was your entry into, "I wanted to get a website, uh, online," and I think that's great. I think there will be a, a huge number of people who that is extremely valuable for. Then I think there's the graduation step from that, which is you've built the first version, you've kind of built this prototype of what you wanna do, and it works, and you're interested. You've seen the pixels light up. You've got the spark in you to keep going, and now you wanna actually turn it into a real thing that you're gonna be building with and kinda maintaining over time. And for that, it is unavoidable that you will have to learn a little bit about the code. You can't just vibe code your way forever. And, you know, again, maybe in five years, the models will be so good that I'll just be laughing at myself, but I have a suspicion that you will probably always need to know how the code works, especially if it's something you're gonna be working on all the time, and if you have aspirations of becoming a professional developer or making it something that you work on. So that's kinda where Cursor comes in, is, yes, you can use Cursor to... I just built a game earlier, like a Space Invaders game. It was super fun. Um, you can build Cursor, or you can use Cursor to build things like that. But the, the main thing we're trying to do is help bridge the gap of, "I'm interested in coding. I learned how to code. I've got this code. How do I actually use AI to help me build software?" All the way from completing the next line that I'm writing to the agent helping me generate a file or make changes or fix my lint and tests and all those good things, all the way to, you know, maybe I wanna integrate this AI into my production software CI, and I wanna run it in the CLI, and, like, you can get really advanced with a lot of these things. We're trying to, to be available anywhere that a developer or a future developer wants to build software.
- CVClaire Vo
Yeah, and, and I, I love that. I agree with you in that I- the more people that can build products, the better. I think it's just so fun. My, you know, eight-year-old made Roundcraft recently, which is a version of Minecraft, but only with round objects.
- LRLee Robinson
Mm-hmm.
- CVClaire Vo
And it's just something he would've never been able to do before, and Mom's like: Babe, you gotta read the code. Like, you gotta, uh... We're just gonna go through it step by step. [chuckles]
- LRLee Robinson
Yeah.
- CVClaire Vo
I'm gonna explain to you a little bit about what's happening here. And so I love the idea of more people building products, but I also love the idea of more people becoming software engineers.
- LRLee Robinson
Yes.
- CVClaire Vo
I think that's a really great opportunity here. So that leads me to my second question, which is, we talked about a couple foundational concepts, um, earlier, but, you know, I th- still think people need to learn about how software works, if not exactly how to code. So what are some of the either the concepts that you think are really important for people to learn, ah, languages? You mentioned JavaScript. The first thing I ever coded was a button that did "Hello, world" in JavaScript, a mil- truly a million years ago. And, and so, like, are there languages, are there resources, are there tutorials? You do a lot of education. Like, where should people who want to get started actually on the path of learning to code, what are some of the things you think are really important to know?
- LRLee Robinson
Yeah, for getting started, generally, I recommend JavaScript or Python, two of the most popular programming languages. And for JavaScript, it runs in the browser, so it's very easy to see your work. Just you type something in, and you can actually see it live. And then Python, I think, is... It looks a lot like English, so-
- CVClaire Vo
Yeah, it's easy to read.
- LRLee Robinson
Yeah, you can read it, and you're like, "Okay, I, I think I understand what's going on here," versus getting into... There's more complex programming languages that can do lots of advanced things, but for getting started, you probably don't need to do that. Um, so I, I typically recommend that. And kind of as a fun anecdote, we did a Cursor meetup the other day, and there was actually parents who came and brought their kids and were teaching them how to program at the meetup, which, seeing this generation of new developers g- get interested and excited by JavaScript or Python or just building software, like, I wish I did that when I was eight years old, [chuckles] right? Like, that's amazing, and I hope my daughter will do that as well.
- CVClaire Vo
Yeah, I think I agree. Those two languages are really useful. Again, JavaScript, right in the browser, you get immediate gratification. And then I think Python, you know, speaking to it being readable, also can give you these, like, kind of foundational concepts of, like, if/else, loops, all those kinds of things that are really good to start to understand just, like, some foundational programming concepts. And then there's lots of resources out there. Just go try to... I- the ones I love is find one of these, like, YouTube tutorials that let you rebuild an app that you already like. You know what it's supposed to be like. Can you build a version of it? Um, I think that is a really fun way for people to start to learn to, to code because it's just very concrete and pragmatic.
- LRLee Robinson
Yeah, the, the thing that I tell beginners is that when you're looking at code, there's a syntax, which is essentially like a new type of language. Just like you have English, it's like there's this other language, which is whatever the dialect of JavaScript or Python or whatever specific language you wanna use, and as you see these interesting words that have different colors, they all have some meaning. And they're, they're, they're there for a reason that gives some signal back to the computer on how to interpret each one of these different bits. And as you run into some, you can then ask questions like, "Well, what does const do? I, I'm not really sure what that means, but it seems like it's important for something."
- CVClaire Vo
... yeah, exactly. So, you know, read your code. That's gonna be, that's gonna be the sub-headline of this episode. Okay, and then last question we ask everybody, um, you are an expert prompter. I see a lot of, like, anti-prompting in your writing prompt, but when Cursor or any AI tool is not doing what you want, what do you find yourself doing? Do- are you in all caps? Do you bribe?
- LRLee Robinson
[laughs]
- CVClaire Vo
Do you yell? Do you close the window? What do you do?
- LRLee Robinson
Yeah, I mean, I, I am not afraid to admit that I, I do get a little upset. I'm like, "This, why is this not working?" [laughs] Like, I definitely am, uh, maybe not all caps, but I'm like, "Fix it. It doesn't work. It still doesn't work." [laughs] It can be very easy to, um, you know, not provide enough context when things aren't going right and when something goes wrong. So something I have to always remember is, like, when I, when I re-prompt when something goes wrong, and I'm not very explicit about what actually wasn't good, it's just a more of an emotional reaction of, "Mm, this wasn't exactly what I wanted," well, the model doesn't- can't read my mind. It doesn't know exactly what I wanted. So I have to kind of stop and be like, "Okay, it isn't what I wanted, but what did I want? [laughs] Like, what was the thing that I actually wanted?" And, and write that down.
- CVClaire Vo
Yeah, I, I do have to say, you know, I, I have no fear of people reading my X DMs, looking in my camera roll. I don't know if you want to see me when I'm mad at C- [laughs] Cursor. I'm like, "No! What?" [laughs]
- LRLee Robinson
Yeah. [laughs]
- CVClaire Vo
So I'm not always at my best, uh, when things go off the rails, but that's a good point. What are you trying to do? Explain it calmly. Be a good-
- LRLee Robinson
Yeah
- CVClaire Vo
... be a good colleague.
- LRLee Robinson
I feel that. There's, like, some sage life advice in there or something.
- CVClaire Vo
Yes.
- LRLee Robinson
Like, I'm arguing with my wife, and I just need to, like, step back and just explain calmly what I actually meant.
- CVClaire Vo
Yes.
- LRLee Robinson
I'm sorry. Sorry, honey, this is actually what I meant.
- CVClaire Vo
[laughs] Perfect. Well, thank you so much for walking us through this. Where can we find you, and how can we be helpful?
- LRLee Robinson
Yeah, I'm on- online @leerob on X or anywhere else and leerob.com. And if you want to learn more about AI, I'm gonna be sharing things as I go and teaching developers. I'm also building a course teaching a lot of the AI foundations, uh, as part of Cursor, so it's totally free to use. It'll be on YouTube and, and everywhere else, so expect that to be out soon.
Episode duration: 45:27
Install uListen for AI-powered chat & search across the full episode — Get Full Transcript
Transcript of episode Gqpk7-FruqI
Get more out of YouTube videos.
High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.
Add to Chrome