AI Made Coding Worse...

AI Made Coding Worse...

Machine-readable: Markdown · JSON API · Site index

Поделиться Telegram VK Бот
Транскрипт Скачать .md
Анализ с AI

Оглавление (3 сегментов)

Segment 1 (00:00 - 05:00)

I've been doing a lot of AI coding recently. I've had a lot of projects to build and I can confidently say at this point that AI has made coding a lot worse. Now look, I love how fast I can build something with AI. It's actually magical how you can just go type a few prompts, maybe edit a few files, and you have a fully functioning application that normally would take you weeks in literally a few hours. However, the process of building that is just becoming more painful, frustrating, and annoying to me. and the final product, while it seems good and it might work for a few days or users, a lot of times it just completely falls apart. So, in this video, I want to share with you five key observations that I've had recently working with a lot of these AI tools and writing a lot of code with AI. I'd love to hear what you think about AI coding in the comments down below. Let's dive in. Now, the first reason that AI has made coding worse is that it is confidently wrong. It doesn't just fail at a task. It does all of this really complicated stuff to seem like it's correct. And it will confidently tell you things that are just blatantly false. I'm not sure about you, but I have very often caught myself reading an explanation that an AI has given me or reading a few things that it's done in the code and going like that makes no sense at all and you just told me this is the fix to the problem or this is the solution way that we should go with it. And if I wasn't a software engineer and I hadn't had 10 plus years of coding in the past, actually making these mistakes on my own, there's no way that I would have been able to catch that. So what I really noticed is that when I'm writing code with AI, while most of the time it goes well and I can get something done very quickly, as soon as a big issue does occur, it becomes an absolute nightmare to try to fix it. to the point where sometimes I've restarted entire projects completely from the beginning because it's actually easier just to remake them than it is to try to figure out this convoluted mess that this AI has designed. Now, don't get me wrong, like AI coding is getting better. But the problem is that the model can just spit out so much code that it's just incomprehensible to you. And then when an error does occur, it just really becomes so tedious to fix it, you get in these loops where you're just like, what am I doing? Am I a software engineer? Am I just like telling a model, try again, do this, pasting error messages in the console? Like, is that what software engineering is now? I don't know. That's not what I enjoyed when I became a software engineer and started getting into coding. But I feel like I do that a lot now. Now, the second thing that really bothers me about AI coding is that you stop learning how your codebase works. You know, this morning I was just working on a project. I wanted to automate some stuff for kind of my YouTube sponsorship management. And I generated a full complete project that had like tracking of different campaigns and billing and invoicing and email management. And right now, if you ask me how that thing works, I honestly have no freaking idea. I just wanted to get it done quickly. I gave it, you know, maybe 100 200 prompts over like a 2 threeh hour coding session. And we got it, you know, it works. It's functioning, but I have no idea how. I don't know the architecture. I just know the stack. Okay, we use Nex. js to build it out. But I didn't make a lot of these complex decisions that usually you would make as a software engineer when you're designing this software. Now maybe that's on me. Maybe I should really be way more involved in the architecture. But when it's so easy to get something built so quickly, you stop caring about all these smaller decisions. And because of that, you stop learning how the code works and you lose that kind of domain knowledge or I don't know like that info that you just have that intuition that you build when you work on a codebase for a long time which makes you first of all not really you know appreciative of what's happening but also just not understanding which again when we run into a big problem or when we do need to overall the codebase or do a refactor or understand you know if we have a capability to add something you just honestly do not know because you weren't the one who made a lot of the decision. Now, again, this is absolutely self-inflicted and you can kind of mitigate that issue and go a lot slower than I've been doing it, but just losing that intuition and kind of that intel and architectural understanding of the codebase. I think we really took that for granted and I'm just realizing how valuable that was. Now, I do want to dive into my third point here, but just a quick break as I need to tell you about boot. dev, one of the best learning platforms out there and one of my long-term partners. Now, one of the biggest problems I see with people learning to code is boredom. They watch tutorials, copy code, feel productive for a week, and then they quit. Now, boot. dev takes a completely different approach. It's very hands-on, and honestly, it feels more like a game than a course. Now, with boot. dev, you're learning back-end development by actually building things, not just watching videos. You work through real challenges in Python, SQL, and Go. Earn XP, level up, fight bosses, and progress through a full back-end curriculum. Now, it sounds gimmicky, but it actually works because you're doing the same kind of problem solving that you do on the job. Now, they also have an AI tutor called Boots who doesn't just dump answers on you. It asks follow-up questions and helps you reason through problems when you get stuck, which is way closer to how you actually learn. Now, all of the content is free to read and watch. And if you want the interactive coding, progress tracking

Segment 2 (05:00 - 10:00)

and AI help, that's part of the paid plan. Now, if you want to check it out, go to boot. dev dev and use my code tech with Tim to get 25% off your first year. Big thanks to boot. dev for sponsoring this video. Now, let's get back into it. Now, the third major thing that I've noticed about AI coding is that it optimizes for passing your tests not actually working at scale. Now, think about it, right? An LLM is just this transformer architecture or what it's attempting to do is predict some output, right? You tell it something and it's like predicting the next words, at least in a simple chatbot example. So when you tell it something like fix this or solve this problem or build me this feature, it's not actually thinking about how do I make this feature scale. it work long term? How does this integrate with all of the other things that we've already built? It's thinking about how can I pass this user's review so that they give me a positive outcome. Right? That's what it's actually designed to do. You know, behind the scenes, we have all these extra fancy things that can make it better, but ultimately that's its goal, right? pass your review and give you what you were looking for, which is like a quick fix to a particular problem that you have. Now, because of that, when you use AI and especially you get deep into it in a project, you end up getting all of these really weird obscure like edge cases and race conditions and memory leaks and problems that later on are actually almost impossible to fix without completely changing the way that you've done things. I've been in AI projects where everything's working for like 2, three, four, five weeks and then all of a sudden I want to change something or add a feature and based on how it's been written, it requires a complete rewrite of for example like the backend feature, the off system or whatever because we've like too deeply coupled it to something or because we have this condition where we just can't add what we want. And it doesn't consider all of these things that you as a programmer would be forced to think about if you were actually writing the code line by line. At least when I used to code manual, you know, I came up with a plan. I started writing bits and pieces of it. I was connecting it together and the plan always changes, right? As you're going through, you change what you're doing based on what you realize. You know, okay, I can't write it this way because that's going to be a huge headache in the future. Okay, those variables don't make sense. And you adjust it in real time. The LLM just kind of blindly follows the plan. And while yeah, it does make the adjustments, it doesn't think about what's going to happen a month from now. It just thinks about giving you the answer immediately. Now, the next major thing that I've noticed is that it creates a type of debt. I'm going to call it dependency debt that nobody really talks about. Now, look, everybody talks about technical debt, right? But AI introduces this new kind of debt where you have thousands of lines, maybe hundreds, thousands of files that nobody on your team truly really understands. Now, I created a fully AI coded app with a few of my uh what is it? I don't know, team members, like business partners, whatever. It was three of us coding this app. And we were all just like in cursor and cloud code whipping up all this stuff and we got something out really quickly and it was cool and it was working. But then we actually got to a point where we're like, "Okay, maybe we're going to sell this. Okay, release it to more users. " And when we started going through and actually trying to do some real engineering on this, none of us had any clue how this thing was actually built. Like we knew the general stack and some of the languages, but like the whole architecture was just blind. Like we didn't know any of And that really hindered us from being able to do what it is that we wanted to do and having an educated conversation about the current state of the codebase, what we needed to be at, where we needed to change things. We just had all of this massive amount of like AI unknown debt where we didn't even know how bad it was. Now, what we ended up doing was literally just refactoring and rebuilding the entire thing. Funny enough, we used AI to help us do that, but in a much more structured manner where we then got to a stage that we really should have been at before, but we just didn't consider when we were like vibe coding the whole app up. So, this is kind of terrifying, especially as the project grows larger and larger and larger. And it's one thing to have technical debt, at least that you understand that it's there. It's another to have this AI debt where you don't even know how bad it is. And when eventually you do need to fix it, it can be a massive headache. And now the last and probably most frustrating thing that I hate about AI coding is the just fix it loop. Now I'm sure you guys have been in this and this again is self-inflicted. It's easy to say, "Oh yeah, just don't do that. Go manually fix the code yourself. " But what I'm talking about here is when the AI makes a mistake, you tell it to fix the mistake. it doesn't fix it and you just keep going back and forth for what you know starts at 10 minutes and then 20 and then 30 and then an hour then two hours where you're just trying to fix bugs all day and your prompts are literally just fix this here's the error message here's what went wrong let's try this solution let's fix this let's fix that where if you had just coded it correctly the first time which maybe took you 10 minutes of manual work you never would have been in this situation now as much as this really shouldn't happen it happens to me all the time and I get in this trap with the model where again like I'm just prompting it the same thing over and over again and then I sit back and I ask myself like what am I actually doing right now? Let me just open up the file. Let me try to fix the code manually. But that sometimes, you know, feels like, oh, I shouldn't have to do that. The model can just fix this problem. But often times it can't. So I'm kind of curious what you guys think specifically about this point because

Segment 3 (10:00 - 11:00)

this is the most frustrating part about AI coding where you're just sitting there like repeating the same instruction over and over again and you're thinking especially cuz you know how to do it yourself. Okay, the model should be able to just complete it. I'm going to give it a really good prompt. Okay, I'm going to fix what I say. give the error logs. And it just can't figure it out. And you have to force yourself to now go and manually write the code or change the model or do something drastic to solve the problem that you feel like you shouldn't have to do. And because of that, you keep going back and forth with the model and it would have just been faster at the beginning to fix it on your own. So anyways, productivity trap that I run into. And I'm sure you guys probably share the same thing. So I'm kind of just ranting at this point, but I wanted to share with you my thoughts. So anyways guys, that's what I think about AI coding. Honestly, it is not that enjoyable. It's great what we can produce and the outcome is awesome, but it doesn't feel like real engineering work anymore. Even though, yeah, you still need that intuition. And it's really, really frustrating in a lot of situations. And I kind of just wanted to let out the steam and see if you guys relate to me. Maybe I'm just doing it wrong. Let me know in the comments down below. But that is what I think. And I look forward to seeing you in another video.

Другие видео автора — Tech With Tim

Ctrl+V

Экстракт Знаний в Telegram

Экстракты и дистилляты из лучших YouTube-каналов — сразу после публикации.

Подписаться

Дайджест Экстрактов

Лучшие методички за неделю — каждый понедельник