Vibe coding is one of the latest trendy things in software engineering. Damn those kids and their lingo!
Let's talk about what vibe coding is, what's good about it, and what's pretty dangerous about it.
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
hey folks I'm headed to CrossFit I had a question come in that's uh I think going to be kind of trendy one that probably a bunch of people are asking or at least talking about but we're going to be talking about Vibe coding um so I'm not going to read out the exact question I think someone who messaged in was basically just saying hey don't I don't know if you made a video on this but would love your opinion Vibe coding the tldr of it so um before I dive into it just a reminder if you want stuff answered either ask your questions in the comments below or send a message to Dev leader on social media uh it's my main YouTube channel and the social media handle I use for uh all of my software engineering content otherwise you can look for Nick centino
on linked in uh my profile should be uh open to send messages to as far as I'm aware that's might pay for premium so it better work uh but yeah I think let's dive into it it's not too long to drive to CrossFit so it's probably a shorter video and I want to say I should probably make more than one on this to talk about uh I don't know spend more time on different angles I haven't fully thought through if I want to just like hyper focus on one part right now or kind of go all across um so we'll see but I think I think the first thing I want to say is that um if you've watched other content of mine I try to share different perspectives and not just like a you one one view even if that's that is my main
view um I want to make sure I can cover uh different parts um so I think that there I'll just say it out loud I think that there are good things to to Vibe coding and and bad things so let's start off with the definition so if my definition is a little bit different or wrong uh at least you'll know what I'm talking about and hey maybe someone can correct me and I'm I can make a follow-up video um but my understanding of vibe coding is essentially being like what what's the the the phrase like Jesus Take the Wheel but for AI right so basically leveraging AI talking to an llm and just asking it to make all of the pieces of your application so uh paying basic basically zero regard to uh what it's actually writing so the I guess the theory behind it
is that instead of spending time dealing with any sort of like code organization data structures algorithms it's really just like like architecture design patterns it's just hey like I got this code I need you to do this next part hey I got this code I need you to do this next part and and basically just regardless of how much context you're giving the AI just leveraging the llm to do uh all the work for you so that's my highle working definition of it um and I kind of gave you a a preview but like I I think that there's good and bad things to this but let's start with maybe um what I will call the bad things and I think one of the really big misconceptions um that's probably one of the more like dangerous things I'm using the word dangerous um I know
it's very it's a very strong word it's kind of on purpose um I think the the most dangerous part is that nons software Engineers are are seeing Vibe coding and then saying like they're perpetuating the oh this is why we don't need software Engineers there's already like I'm sure sure you're well aware of this there's a lot of fear and uncertainty right now for software developers right job Market's tough and then we have ai on top of it by the way I don't think that these are the exact same uh reason I think there are uh a few years prior to right now if you look at a graph uh and especially if you consider some of the changes in the world over the past you know five or so years oh my God what is this person I'm doing going not fast enough pal
um the uh yeah like the the job Market's tough right so and then people are fearful of AI we have CEOs and tech people mostly mostly not software Engineers uh perpetuating this like fear that like AI can just do all of the work of a software engineer and then enter Vibe coding right so now you have these non software Engineers making bold claims like I just built an app that and look like we don't need do software Engineers um but I think there's this confusion around like that like having code output and software engineering are not like the same thing similarly like I can use uh I don't know there's so many so many AI tools for image generation now like I don't even think I've used mid Journey before but it's like me using Dolly and prompting uh you know chat GPT like go
make this picture and then saying we don't need artists now um like yeah we do yes um it's like it it kind of gets you past the initial barrier but like that doesn't mean that you become an expert and especially because if you don't even have the the domain language to to prompt effectively there's no way you can expect the AI to do the right thing right if you're building a distributed system and you can't talk to AI about latency you can't talk to it about uh eventual consistency transactional Behavior like if you can't if you don't even know what these concepts are how can you expect that you have ai build a system for you that's going to do that kind of stuff right it's it's completely ridiculous but I do think one of the really awesome things is that all of this stuff
reduces the barrier to getting started and I think that's tremendous I think there's so much value in that the same same thing applies to like AI image generation AI video generation the barrier to getting going is dramatically reduced doesn't mean that it automatically makes you an expert but the barrier to get started is dramatically reduced so my big concern with the vibe coding part is is people that do not have a software engineering background they're not trained as software Engineers they don't have experience as software Engineers assuming that it gives them the full skill set of software Engineers it's not gatekeeping software engineering it's like saying that you like I was kind of saying with the prompts if you don't know the right prompts or the right things to be telling the llm you are risking that whatever you're building is not going to be
built properly and it's not the fault of the llm it doesn't mean therefore the llm is bad it's that you cannot use the tool effectively that's all so if we want to to break this down a little bit more with the vibe coding concept um I think that if we're if we're just looking to get some type of thing output have something that's up and running I think that it could be super helpful for that right I have done this I have seen other people do this or you can basically take a technology you don't really know that well prompt just enough or pick a language you don't code in prompt just enough and get something working and when you have something working if you want to build on top of it you can probably do that pretty quickly too there's a difference though and
I think this is one of the things that people end up missing now some people when they talk about Vibe coding and how they're using it they imply this and others when they talk about Vibe coding they're explicitly sort of like I don't know going the opposite direction of this so you get you get all over the place but if you're just trying to like rapidly prototype something get a proof of concept together I think Vibe coding could be super awesome I've spent years of my career prototyping things years it would be so much more effective for me these days to pull up chat GPT and say hey there's this I don't know like um what's a good example like it working in digital forensics um what was something I had to look at we had to look at like OCR which is uh I
think it's object character recognition optical character recognition I can't remember the acronym but um basically you can look for text in pictures right so if you had a picture of a sign or you took a picture of a book like a page of a book you could get the uh the characters extracted from it um and if that's not something that that we're actively using all the time like as developers I'm not I'm not building OCR tools all the time and we wanted to do a prototype with it now we have a bunch of different OCR libraries to use it would be so handy for me to go hey chat GPT look for the top top five OCR libraries inet uh give me a highlevel comparison like write out your highle five Pros five cons and a comparison chart and then uh give me give
me an example of each one right and like and just get it to Kickstart whatever I'm doing right now I know this is only just a quick part but if we're talking about Vibe coding and going further like okay like I need how am I going to run this like I need a a console app or I need a quick like uh gooey for something cool like spit that out now right let me give me in the UI the option to pick between these things or build um you know use benchmark.us and write up the uh the benchmarking harness for this so I can compare them uh fairly right but I need to know the things to ask it so if I wanted to get benchmarks done what am I trying to compare I could ask it to suggest things but if you don't even
know what you're doing like would you you even think to Benchmark these things even if you could ask it give me the top five things that you would consider benchmarking you're going to understand what those things are so like I I again I think that in my experience there would have been so many opportunities where this would have been super handy but what I wouldn't do and I've said this in other videos is I wouldn't just take the code that it spits out not question it and then ship it if I were doing this Vibe coding kind of thing and I'm just trying to rapidly iterate I might not question it right away I might grab a bunch of the code get it running and then only when I'm trying to do an analysis kind of look through it more deeply and go oh like
yeah I guess it's using a silly pattern here but like whatever it works and then now that I'm seeing some of the results maybe maybe the results are skewed because it's using this design pattern or I don't know was doing something inefficient in this one case because I didn't ask it about that so like I can go back and refine it if I cared so I think that there's absolutely ways to do this but I think that um my recommendation for like scenarios you would want to limit this to or like like you know you're very experienced in some area or you're experienced as a software engineer and you're just trying to get something tossed together quickly it's kind of like um I give you a Content creation example uh am I capable of writing an entire blog post absolutely can I write an entire
video script I don't really script my videos too much anyway um yeah but like you know what would be even easier for me if something gave me the entire skeleton of the video script or the blog post it gave me some example paragraphs and some things to focus on and then I went back and edited it right give me the framework let me go back and edit it there's some things for software like for code that gets output where it might actually be easier for me to just get something that potentially runs and then me go tweak it now certainly not everything certainly not everything but I'm sure there are some cases where I'm like hey just get me something going I don't I haven't used this framework before so I can either go spend all the time reading the documentation just to get started
or you can generate a custom example for me in front of my eyes now I got something right doesn't mean I'm done doesn't mean I'm done but I got something to go with so I think one example is more being more experienced trying to get something spun up um and then the other thing too is like I would say if you're I mean maybe two more angles if you're a junior developer and you wanted to do Vibe coding I don't think that it's wrong I just think that you have to be careful because when we talk about this kind of thing in other videos like using llms heavily if all that you're doing if you're like hey I want to learn but then you just Vibe code and copy paste stuff out and never go back and question anything you're doing I think your learning
will be slowed down you might get a bunch of code that runs and does stuff but I think that your learning will be slowed down and I don't have evidence of this I think that a lot of people are claiming it's going to affect your critical thinking I don't have evidence of that one one might argue that you're able to do so much iteration of that kind of thing I can't stand this car beeing man there's literally nothing here one could argue you can do so much iteration of that that you get exposed to so much variety of things that you maybe pick up on patterns and stuff I just I don't know I don't it doesn't feel effective to me so I think if you're just trying to see more things it could be very interesting but uh I would I kind kind of
want to caution against it for new developers so that you don't get a false sense of confidence if you're well aware of what's Happening like hey yeah I just use an llm and it built this thing and I have no idea what it does and I shouldn't ship it and now that I have it in front of me I can go explore it like treat it like a custom handbuilt example for you to go navigate sure now go ask it questions go learn and understand what it build like that could be really cool but to say hey like it's kind of like when people uh just copy paste code out of tutorials and say hey look like I'm I'm learning it's like not not really you're copy pasting um there's there's a difference between having code on your desktop that runs versus understanding what that
code does um so different angle there and then maybe the third angle I just want to mention is kind of back to this lowering the barrier concept for non-technical people right like maybe maybe conceptually you can navigate like uh more technical things that you're then you're exposed to regularly to give you an example like you haven't written code before but you you're pretty good at problem solving and like having a systems mindset um like maybe for these types of people just getting something some things connected and functional could be very powerful and I think that again I think that that's it's a such a cool opportunity that you have people that maybe never learn to code and they can get something operational like I I think that is awesome I'm all about removing barriers but the big difference is that reducing barriers or removing initial
barriers does not then immediately put you into the seat of an expert there is no shortcut to expertise and Mastery by definition those things take time so you cannot say hey look now I have an llm that can write the code for me therefore I I've mastered software engineering no you have a powerful tool at your fingertips you've mastered nothing yet and that's okay just don't get the things confused but now I'm at CrossFit and today's a special day because as we get to squat at CrossFit and I love to back squat we just never do it it's always like overhead squatting or some squatting version I suck at in particular overhead squats so I'm pumped but let me know what your thoughts are on Vibe coding um I'm happy to do more follow-up videos on this kind of thing I think there's a bunch
of different angles to look at here and uh I think it's a lot of people are talking about it so I think there's going to be a lot of opinions floating around BR if they're not my opinion they're wrong no just kidding um yeah let's let's chat about it I'll see you next time
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- What is vibe coding and how does it work?
- Vibe coding is essentially using AI, specifically large language models, to generate all the pieces of your application by asking it to do each part without much regard to the underlying code quality or architecture. It's like saying 'Jesus Take the Wheel' for AI, where you leverage the AI to do all the coding work by providing prompts for each piece you need.
- What are the risks or downsides of relying on vibe coding for software development?
- One major risk is that non-software engineers might think vibe coding replaces the need for software engineering expertise, which is dangerous. Without understanding software concepts, you can't effectively prompt the AI or evaluate the code it generates, leading to poorly built systems. Also, blindly using AI-generated code without questioning or understanding it can slow down learning and result in suboptimal or incorrect implementations.
- How can vibe coding be beneficial for experienced developers or beginners?
- For experienced developers, vibe coding can be a great tool to rapidly prototype or get a proof of concept up and running quickly, especially when working with unfamiliar technologies. For beginners, it can lower the barrier to getting started, but they need to be cautious and not just copy-paste code without understanding it, as that can hinder their learning. Overall, vibe coding reduces initial barriers but does not replace the time and effort needed to gain true expertise.