4 ms·
If you spend time on places that attract newbie programmers (some subreddits focused on game dev or game engines, for example) you’ll see the outcome of “I no l
by nkrisc 2y ago
If you spend time on places that attract newbie programmers (some subreddits focused on game dev or game engines, for example) you’ll see the outcome of “I no longer think you should learn to code.” And it’s not pretty.
Many, many posts of people looking for help fixing AI-generated code because the AI got it wrong and they have no idea what the code even does. Much of the time the problem is simply an invented method name that doesn’t exist, a problem that is trivially solved by the error message and documentation. But they say they’ve spent several days or whatever going back and forth with the AI trying to fix it.
It’s almost a little sad. If they just take the time to actually learn what they’re doing they’ll be able to accomplish so much more.
Now of course people learning the traditional way have these same problems, but they’re debugging code they wrote, not gobbledygook from an AI. It’s also easier to explain the solution to them because they wrote the code, so it tends to be simpler. Several times I’ve pitied someone asking for help with AI code and even when I explained the solution they still didn’t understand it, and I had to just give up on them - I’m not getting paid to help them.
- pydry 2y agoIME these tend to be the same people arguing that programmers will all be out of a job in 10 years. It makes me wonder why they persist.
- kshacker 2y agoI have played around wit AI code from time to time. I do not code routinely but I have pet personal projects that allow me to do some code and this is where I experimented. Rule number 1 and the only rule: You need to be a subject matter expert. Be it program logic or be it programming language. AI is only a helper, it will go wrong, frequently, and if you do not understand the reason for the code and the programming language, you will take so much more time than if you did not even use the AI. Without naming the IDE, but one of the top 3 I guess, I asked it to simplify some code. I had repeated code 8 times. 6 of them were identical, the last 2 had a variation. The AI just did not catch it, and refactored all 8 blocks to use the logic of first block. How can you even do that? The code is similar but different, it looks the same but there are extra lines of code in the last 2 blocks !! And it took me a while to realize this. I never ingest AI code directly so at first I was marveling at a job well done, and as I read and compared, the horror !! And that was not the first time it happened, but once again I got tricked by the soft spoken well mannered AI to believe that it did a fantastic job when it did not. Edit: It is just an assistant. You give it a task, it will make a mistake, you tell it to fix the mistake, it will fix the mistake. It still saves you time. Next day, it will make the same mistake - and hopefully that gets reduced as the versions evolve.
- nkrisc 2y agoI like to think of AI as a force (or skill) multiplier. If you’re low skill, it doesn’t do much. The higher your skill, the more useful it is.
- chii 2y agoThat hasn't been my experience, nor that of others using the AI. It's a force constant, rather than a multiplier. If you're low skilled, asking it to do a low skilled task, it works fine. If you're high skilled, and asked it to do the low skilled task, you saved a tiny bit of time (less than that of the low skilled person). But it cannot do a high skilled task (at least, not right now). It can pretend, which can lead the low skilled person astray (but not the high skilled person). Therefore, all AI does is raise the floor of what is achievable by the laymen, rather than multiply the productivity of a high skilled programmer.
- derekp7 2y agoYou could also be a mixed skilled developer. Good at regular code, architecture, and algorithms but not as familiar with a given UI framework. Having the LLM generate the html and css for a given layout description saves a lot of time looking through the docs.
- dingnuts 2y agoLLMs will be best at HTML and CSS among programming languages because even if it's subtly wrong the browser will still render something. Still, I'm not sure I need to spend $250/yr to occasionally generate some HTML that I could use a template to generate
- skydhash 2y agoDoes it really? The thing is that there’s a domain model beneath each kind of library and if they solve the same problem, you will find that they will generally follows the same pattern. Let’s take the web. React, Svelte, Angular, Alpine.js, all have the same problems they’re solving. Binding some kind of state to a template, handling form interactions, decompose the page into “components”,… once you got the gist of that, it’s pretty easy to learn. And if you care about your code being correct, you still have to learn the framework to avoid pitfalls. Same things with 3D engines, audio frameworks, physic engines, math packages,…
- whstl 2y agoSubreddits focused on gamedev have long stopped being about the craft itself, unfortunately. 90% of the posts are about marketing or are self-help/motivational. Anything related to art, sound or programming barely gets upvotes.
- nkrisc 2y agoBrowse by new though and you’ll see it. Post after post with zero comments about questions or problems that are answered in the docs.
- whstl 2y agoAnd the people who can actually answer have been driven away by the money-chasers.
- Arisaka1 2y agoThe other side effect to that is the difficulty to socialize, albeit online, with those who care about the craft itself. To paraphrase a meme "best I can do is text editor wars".
- whstl 2y agoYep. Gamedev.net was an amazing hang back in the early 2000s up to the 2010s. Now it's just a perpetual "how do I do this with Unity" that is super hard to filter. I just go to meetups now. > best I can do is text editor wars Or Unreal vs Unity wars in this case :'D
- elpocko 2y agoThey like to talk about feelings a lot. Lots of posts about how it feels when their upcoming game reaches <number> of wishlists on Steam, or how it felt when their low resolution pixel art game using Kenney's asset packs flopped against all odds.
- fsndz 2y agovibe coding is overrated. The good sequence is: learn to code, then vibe code when possible. Vibe coding is a trap for junior software engineers. https://www.lycee.ai/blog/why-vibe-coding-is-overrated https://www.lycee.ai/blog/why-vibe-coding-is-overrated
- ohgr 2y agoAppears to be a trap for idiot engineers as well. Some who are quite senior.
- valenterry 2y ago> a problem that is trivially solved by the error message and documentation Then why does the AI not solve it anyways? I think understanding "the code" will eventually be as important as understanding machine code or assembly nowadays - still very important for a small number of devs, important in very rare cases for some other devs and completely irrelevant to the majority of devs.
- richrichardsson 2y agoPerhaps because "A.I." doesn't understand anything, it just makes plausible output based on its training data. LLM is a much better term, because intelligence has connotations of understanding, whereas model does not.
- hagbarth 2y agoDoes your question not refute your statement? The AI doesn't solve the problem because it can't.
- valenterry 2y agoYeah, in a sense it does. But I think the problem here isn't "the AI" but actually the tooling or the way "the AI" is applied by the person. (i.e. being unable to even c&p the error message into the AI) Because from my experience, sonnet 3.7 can almost always fix issues of that type and if it can't, it's usually not "trivial" at least not by my understanding of the word.
- j-bos 2y agoIf anything, debugging gobbledygook an AI wrote is good practice for debugging gobbledygook John from 4 years ago wrote.
- nkrisc 2y agoHah, but at least that code probably ran.
- IanCal 2y agoIt was always thus, and will continue to be. The scale may change, but that is likely just because more people code. You couldn't do X but now you almost can! > Now of course people learning the traditional way have these same problems, but they’re debugging code they wrote, Really? They've not copied and pasted something from SO? They're that early in their coding journey? > It’s almost a little sad. If they just take the time to actually learn what they’re doing they’ll be able to accomplish so much more. Leading a horse to water, etc. but llms are excellent at being a patient teacher of basic coding. Frankly they can be excellent at lots of things people keep saying they're bad at but some seem to refuse to learn how to use them as a tool. It reminds me of watching people be unable to use Google in the past - how to not just ask a question but search for information.
- vincnetas 2y agoReal live example. Recent conversation with colleague : Hey, trying to translate excel sheet with chatgpt, cant understand what to do (posts screenshot with explanation and example "pip install [package-name]" You just need to execute specified command in your environment What is "my environment"?
- api 2y agoAs a very experienced programmer who has experimented with using AI: I can't imagine trying to do anything useful with it if you don't understand the code it generates. Even if the code it generates works, what happens when you need to change it and no longer have that AI conversation and its state available? Then there's the security nightmare this is going to be. All this slop-code generated by ignorant hustlers with AIs is going to be a hellscape of security bugs.
- adriand 2y agoKnowing how to code, and having a lot of experience and an "intuitive" sense of what is a good idea and what is a bad idea, also puts you in a position to question the advice the AI gives you. Just now I was asking Claude to help me with an issue with a React component and it told me to add useEffect with a timer. I am not a React expert, but that immediately felt like a code smell to me, so I followed up: > is it weird or an anti-pattern to use a timer like this? The response: > Yes, using a timer like this is generally considered an anti-pattern in React for several reasons: It introduces non-deterministic behavior (timing-dependent code), It's a workaround rather than addressing the root cause, It can be brittle and lead to race conditions. I'm sure all those things are true. This is a classic example of the problem with people using AI programming tools but lacking a real understanding of what they're doing. They don't know enough to question the advice they're getting, let alone properly review the code its generating. The other day, in a Rails app, Claude generated a bunch of code that spawned various threads to accomplish certain things I needed to do asynchronously. Maybe these days, in Ruby 3 and Rails 8, this is safe. But I remember that back in the Rails 2 days, going off and spawning new threads was not a good idea. Plus, I have a back-end async job processor already set up. Again, I questioned the approach. The revised code I got back was a lot simpler, and once I'd reviewed and tested it, I (mostly) used it as-is.
- sharemywin 2y agothat's the thing if your inquisitive and have an interest in learning things then you can still go far with AI coding. can you explain why this code works? is this the best way to do it or are there other solutions? what are the pros and cons? are there security problems with this? how could I make this code more secure? what are some things I should look out for with AI coding(meta question)? what does this error mean? just talking back and forth with the AI on the phone you can get a high level understanding of a topic pretty quickly and way more in depth and personalized than a tutorial on the internet.
- sharemywin 2y agoand that's just about any topic.
- baxtr 2y agoThat’s an interesting observation, because a corollary of this would be: if young people believe this to be true and don’t start learning to code now, there will be an even higher shortage of developers, unless the AI system become insanely better than today.
- bob1029 2y ago> Much of the time the problem is simply an invented method name that doesn’t exist I spent a solid 2 hours yesterday trying to get an SSDP protocol implementation going because the LLM was absolutely insistent upon using 3rd party libraries that don't exist and UDP client methods defined in Narnia. I had to spoon feed it half-way attempts before I could get it to budge on useful code. This was all before I realized we had a problem with multicast group membership and multiple network adapters. These models definitely can help (I wouldn't have gotten as far as I did without one), but you need to know what you want every step of the way. Having mere "vibes" about a sophisticated end result will result in unhappy outcomes. I think the model would have made my life much worse if I wasn't as cynical and suspicious regarding every aspect of its operation. I can see how these models would steal learning opportunities from more novice developers. Breaking out Wireshark is the sort of desperation that only arises when you can't constantly ping some rubber duck for shreds of hope (or once you realize there is no hope).
- d3nj4l 2y agoYeah, I like using LLMs when I code, but every time I've tried "vibe coding" (i.e. letting the LLM do the whole thing start to finish) it's never written a full, functioning app that doesn't have bugs in the basic functionality. I tried this just a couple days ago with the SOTA Gemini 2.5 Pro - it wrote itself into a corner and when I gave it the logs from my bugs it literally said "this doesn't make sense" and got stuck. That finally prompted me to take a look at the code and I immediately knew what it got wrong.
- bluGill 2y agoI gave up on AI because of that. The old IDEs that use an AST for autocomplete still exist and work very well for allowing me to hit tab and get the correct function filled in. They are also very good at the little pop-up that tells me details about the parameter I'm trying to fill in really is - the AI has no clue what order the arguments really are and so often gets it wrong. They won't complete 1000 lines of code - but that is only rarely a savings as most 1000 line code snippets I've worked with just as fast to write myself (I've been programming for 30 years) as to figure out how the AI got some details wrong. If the AI had access to the AST and could know what functions exist they might be helpful. Then they could write that function they wished existed if it doesn't. However that means they need to know how to understand the code not just the structure.
- NeutralCrane 2y ago> Now of course people learning the traditional way have these same problems, but they’re debugging code they wrote, not gobbledygook from an AI. I’m not sure this is true. Prior to AI you saw a lot of the same behavior, but it was with code copied and pasted from stack overflow, or tutorials, or what have you. I don’t think AI has changed much in terms of behavior. There has always been a subset of people who have just looked for getting something that “worked” without understanding why, whether that’s from an AI code assistant, or an online forum, or their fellow teammates, and others who want to understand why something works. AI has perhaps made this more apparent, but it’s always been a thing.
- nkrisc 2y agoThe difference is that code are copy-pasting isn’t randomly mutated for each person doing so, and likely if they take the time to go back to where they got it there is likely also an explanation or more info about if they care to take the time to read.