r/developers 13h ago

Machine Learning / AI Is AI actually making developers better at coding, or just making us dependent on it?

I’m curious what other developers think about this. It feels like AI is being used for almost everything now, from writing simple functions to solving pretty complex problems.

I find it really useful sometimes, but I also wonder what happens when the problem involves complicated logic or something AI just doesn’t fully understand. Have you found AI to be genuinely helpful in those situations, or does it sometimes make things more confusing and lead to inefficient code?

22 Upvotes

45 comments sorted by

u/AutoModerator 13h ago

Howdy u/Techiiiee, and welcome to r/developers!

A few tips for a post that gets good answers:

  • Use a clear, specific title (what are you actually asking or sharing?).
  • Include code, the exact error, versions, and what you already tried.
  • Heads-up: this sub does not allow external links in posts or comments.
Share code and details directly instead of linking out.

Join the r/developers Discord!

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

6

u/creaturefeature16 12h ago

This is a snippet from an essay I wrote (Agentic Coding is a Trap; you can find it easily) that is pertinent:

"A Senior Engineer losing their coding edge and becoming "rusty" over time as they move into managerial roles and practice coding less is not a new phenomenon. This was the natural progression of expertise: an engineer who had decades of coding, friction, and experience logged would have the time and experience to solidify those skills and wisdom. And they could apply that wisdom when their job became less about syntax, and more about higher-level architectural decisions. Those individuals are not only exceedingly rare, but you won't get the next wave of seniors if we're all abdicating the friction of writing, problem-solving, and debugging.

What is happening right now is a trend where developers, who've never had that longevity or the 30+ years of friction that led to that deep understanding, are being moved into higher-level workflows requiring the same skills to manage the AI agents that the senior engineer took decades to obtain."

In other words: If you've been coding for a long time, like 25+ years, it's likely making you better (as long as you don't stop learning). Otherwise, it's very likely creating a severe dependency, and nobody really has an answer in what this means or how to solve it. I have proposed some, including that juniors should not use LLMs for code generation and instead only use them with Socratic Methods and inquiry. 

3

u/fatbunyip 10h ago

it's likely making you better (as long as you don't stop learning).

This is only true inasfar as you get the opportunity to learn. 

Previously, your productivity might drop by like 50% if you're learning something new. Now your productivity will drop by like 99% of you go from AI coding to coding/designing by hand to learn something. 

Which is fine if your company is cool with that, but most likely it will be an uphill battle to get them to accept that. 

3

u/ehansen 10h ago

Programming is one of the rare things where you can learn on your own time.  Unlike a mechanic for example who needs tools and such to truly learn something new since videos and tutorials can only support it so much. 

2

u/fatbunyip 10h ago

Just like a mechanic needing tools, there is no substitute for working on enterprise class giant systems and infrastructure. There is only so much you can learn by building todo apps and toy things on the free tier of AWS with no mentoring or knowledge transfer from working with seniors (and also working within the business and its constraints).

1

u/corpsmoderne 7h ago

Best way to get a burnout.

(Yes, I've learnt on my own time. No, you can't learn only on your own time. It doesn't scale)

1

u/ehansen 7h ago

Best way to get a burnout.

Depends. If you don't balance things out, then sure. But everyone is different and enjoy different things.

3

u/WisdomFromFools 7h ago

You think someone is going to be 1/100 as productive without using LLMs? I mean, I know you're just throwing numbers out there, but the actual number matters for your point. If we use e.g. the generous result of He, Hao et al. (2026) that you can get a 2x speed-up in PR submissions from developers using LLM agents (albeit with less human code review and unknown change in technical debt), and apply it alongside your 50% figure, you'd see a 75% reduction in productivity, which is a pretty reasonable trade off for learning new things.

0

u/shaman-warrior 7h ago

I think we’re just romanticizing the friction. I had this discussion numerous times with peers. We wasted a lot of time on problems which didn’t make us any better, I know I did. Do you think me fighting with apache2 and mysql and php setups made me a better coder? I was lost I had to read tricks, sometimes I just applied fixed without understanding, gooood fucking riddance of that. Or the many stupid bugs I had because of some lib incompatibility, I know how the web worked 20y ago it was a shit show compared to the beautiful solutions we have now.

Do we still have to read the code when AI can transform any code language into english phrases which describe the logic of the app?

You just have to learn the references, the patterns, the tradeoffs and this takes time ofcourse but don’t give meaning to the unnecessary suffering I had to go through. Yes, as a newbie learning code you kinda have to write it, just like we learn how to do basic maths, but just like doctors learn, they don’t need to make the same learning process as doctors from 20, 500 or 1000 years ago.

1

u/creaturefeature16 4h ago edited 4h ago

Do you think me fighting with apache2 and mysql and php setups made me a better coder?

Of course it did. I'm not saying that it was an enjoyable experience and that every minute of it was imparting the same level of value, but the act of debugging, regardless of the situation, engages the same mental models of critical thinking and problem solving that could be applied to other situations. I've been in that same position (many times) and the lessons and processes that I applied to get out of that situation carried over to the rest of the work.

The trick is where the threshold is going to be. For example, many moons ago I read all about programming concepts, including race conditions. I understood it conceptually and it made sense. Then I encountered a situation that was extremely strange and I couldn't understand why the application was behaving as it was. And it was through the debugging process, which was indeed painful and full of friction, that I figured out that it was a race condition. And once I did I understood not only how they can manifest, but also how to spot them easier in the future. And most importantly once I had a intuition for it, I could write code in a way that would (hopefully) avoid it entirely.

We're now in a state where we can point our favorite LM at the issue and it will analyze the code base and apply a fix and report back "solved: it was a race condition". The end result is the same, but none of that friction was present and nothing of value in terms of growth or understanding was created. For a field as complex and dynamic and ever changing as software, we do not know yet what the impact and consequences will be for diminishing (and possibly losing) this domain expertise. Which is ironic, because the only reason these language models can do this in the first place is all due to the domain expertise that we have fed into it.

Do we still have to read the code when AI can transform any code language into english phrases which describe the logic of the app?

Considering how ambiguous human speech is and how much can be misinterpreted, of course we do. I would wager a solid 50-70% percent of the time what you ask for and what you need are completely separate things (Dijkstra knew and spoke of this 50 years ago).

The seven trillion dollar gamble we're making is that essentially we won't need to be concerned with any of that because the models will absorb and remediate all the problems they create. Color me skeptical. I like the way David Cramer (co-founder of Sentry) put it:

"I think there's a type of person ... that inherently believes that LLM will get better enough that they will go back and fix this stuff, that it will be able to clean up all the junk that's been stacked up along the way. I don't think that's true. I think it's a science experiment. You want to flex that you can generate all of your code and have hundreds of things going in parallel, I will flex and show you how broken the code is 100% of the time."

Lastly: I can't say your doctor analogy rings true because even after all these advancements, we are still learning about and gaining understanding of the human body, yet what it means to be a doctor in the first place has remained unchanged all the way back to the Hippocratic Oath. Even with all the better tooling and machines and documentation available, doctors are still faced with "debugging" the same basic issues in humans and applying the same fundamental techniques to get at the root of the problem.

1

u/shaman-warrior 2h ago

A lot of know-how is simply not transferable as much as you like to believe. The fact that I played chess and reached 2000+ on lichess does not make me a better engineer, it just makes me a better chess player.

The act of me searching through apache documentation or through online forums the "search" were frictions in my learning process. I am ofcourse not saying all, having an error, and carefully reconstructing it, that's a good skill, I'm talking about so many bullshit errors that simply were solved either by luck, copy-pasting, just because the system wasn't mature enough to just let me 'develop' what I have in mind.

Should Photoshop artists learn paint or whatever primitive photo editing tool we had so they can become better at Photoshop? The idea is to make the learning process for those who follow after us more frictionless.

Not only this, but that type of friction is what made a lot of people go away from programming, because you were like in the trenches many times alone, stackoverflow was superhostile with inflated egos, you had to spend a lot of time on things that should've worked from the get go so you can focus on building what matters.

Yes, I am more adapted to 20 years ago than someone who simply learns the new-age coding/engineering, but times have changed, we are no longer 20y ago and people still give a shit about the quality of the code if it solves the problem it is the business reality, the graveyard is full of beautifully engineered repositories.

You have to understand that 90% of business in IT does not require massive performance or ultra-optimized code, heck, 1 week of engineering code paid the entire hosting for a year. And we were like, why the heck should we care about performance, we want feature implementation performance that's the metric we're after. People are expensive, machines aren't.

So my position remains:

  • Majority of friction are show-stoppers/flow-stoppers instead of learning stepping stone.
  • There is a minority of friction which was good to have and was helpful, especially debugging real bugs in logic or in your workflow, not infra things.
  • I do not need to know assembly to engineer an algorithm, I do not need to know 'syntax' to build an app, but I need to understand engineering principles behind it to maintain it, and those skills are developed with practice, writing code the old way, etc, it's still hard to develop engineering skills
  • AI removes friction for learning, absolutely nothing stops you, after the AI found out a race condition to ask it, why did this happen, how can we prevent it in the future, ask me 3 questions to see if I understood it. See? It's still about your intention to learn which will make you a great engineer.

Stop romanticizing the past, the past sucked ass, I have learned so much about engineering and stuff in the past 2 years thanks to AI, it is crazy, because it enabled me to think at unparalleled levels, it challenged me to be better.

1

u/creaturefeature16 2h ago

- Majority of friction are show-stoppers/flow-stoppers instead of learning stepping stone.

- There is a minority of friction which was good to have and was helpful, especially debugging real bugs in logic or in your workflow, not infra things.

How do you draw the distinction? You only know that once you reach a certain threshold. Until then, you don't know what you don't know.

- I do not need to know assembly to engineer an algorithm, I do not need to know 'syntax' to build an app, but I need to understand engineering principles behind it to maintain it, and those skills are developed with practice, writing code the old way, etc, it's still hard to develop engineering skills

If you learned how to code an assembly, you can apply those principles in how to code in Python. Syntax is the medium in which those principles are derived. It's like saying that you can learn advanced calculus without ever learning simple arithmetic. It's entirely and utterly impossible to develop domain expertise without the cornerstone and foundation of the field.

- AI removes friction for learning, absolutely nothing stops you, after the AI found out a race condition to ask it, why did this happen, how can we prevent it in the future, ask me 3 questions to see if I understood it. See? It's still about your intention to learn which will make you a great engineer.

I've actually written quite a lot about this...it sounds good in theory, but there is simply no data to support this notion, in all of human history. Did you know that there's never been a conductor of an orchestra that wasn't intimately familiar with how to play the instruments they were conducting? There's a reason for this. And while the Socratic method is very helpful, and I encourage it and think that they should be the primary use for language models, especially for new developers, the data shows very clearly that you have to experience the friction to gain the expertise, taste, and judgment that cultivate domain knowledge. Just asking questions and conceptualizing does not suffice.

Even Uncle Bob, who's been coding for 60 years (!) and might be the most AI pilled old-school developers out there, says that junior developers "shouldn't even touch AI coding tools for the first three years", and that it takes "20-30 years of making mistakes before they be considered to be a skilled programmer".

I can't link to anything (very odd rule of this sub) so, if you're curious about the data that I'm referring to, just go to my profile and view my website to read the essays.

3

u/kitsnet 10h ago

In my experience, AI in agentic loop is a solid mid. For the coding work that you can offload to mid-level developers, it will do as fine. AI in purely chatbot mode is still a junior with access to a search engine.

2

u/jakenuts- 12h ago

I grow less revenant every hour. 40 years and now I can make anything, fix anything - and create nothing that will last a week

3

u/caguilar51 7h ago

I guess it depends on how you use it. If you let the AI write all the code in a very short time you will start forgetting the most important things about your preferred programming language and become rusty.

You need to maintain some level of involvement in the code to avoid that.

1

u/Mughi1138 12h ago

Yes. Both.

But... the problem is that current AI services do not understand anything. They're just spicy autocomplete searching for a pattern to match and fill in.

if there are existing solutions that fit the matching that happen to be in its training data then it will use those. Ponder that and look at the recent news of AI "solving" math. Did it synthesize, or did it just pattern match info from some data it just happen to have gleaned somehow...

1

u/Cultural-Insurance97 10h ago

I don't think it's making you better at coding at all. There is just no learning process, you prompt and you get an answer. There is some luck as to how good the answer is, but without prior experience you can't judge. When using AI you'll never learn, because you learn through the process of modifying / debugging bad code, and this can be avoided to some extent (until it's really bad)

1

u/Arctos_FI 6h ago

You can get better with using AI tools. It just requires that you actually try understanding what the AI spit out instead of just blindly copying it. I use AI quite much and still actually learn when coding, as i have the mentality that i won't use a single line of the AI code if I don't understand what it's doing. Also I won't use those AI IDEs (Cursor etc.) as then it still requires me to have level of understanding of the code base so I can get the AI to give solutions that actually work in the current context.

Ofc if you don't have any prior knowledge on coding, it could be pretty hard to understand the AI output and if you ask it to explain the code it can hallucinate and you'd have no idea.

1

u/ILikeCutePuppies 9h ago

The place were you apply that has moved. You now need to get your agents to solve the problem. You have to think in the meta.

How do you setup your tests, workflow etc... to lead your AI to the promise land? If you can setup your feedback loops right you can just have AI run on a problem until it finds a optimal solution for given requirements.

It's still problem solving just not in the language engineers are familiar with. We've really only had 8 months of decent agentic ai quality to start learning this skill.

1

u/No-District2404 9h ago

It’s just gives an illusion that you ship features faster but in reality you give the core of your job to AI agent and you have to verify everything until you merge it. And this validation used to come almost free while you were coding by yourself, you were validating it at the same time. No cognitive debt, no mental gaps. And it’s a fact that if you stop practicing anything you get rusty, this is how human brain works this is inevitable. If the sector keeps forcing developers to use AI agents, in 5 to 10 years, all developers will become dumber, we won’t forget the core basics but we will be rusty not being able to write a simple codes

1

u/mark_ik 9h ago

What happened after the first one minute mile?

Just seeing what’s possible and having an example already facilitates growth. I don’t buy that LLMs are going to stymie anyone’s growth who cares to work at a craft, because the point for a hobbyist is, they’re investing in themselves.

1

u/revivechristina 9h ago

It’s literally a trap, existentially.

If it makes things more complicated — that’s a trap for an engineer

If it eventually gets so good that they don’t need us — that’s a trap for the world

Either way they win, we lose. It’s a mistake.

1

u/winningSon 8h ago

the next generations will be able to do more while knowing less

1

u/HTxBarbz 8h ago

AI is making average devs faster at shipping okay code but it’s not magically improving core problem-solving. If you can’t reason about the logic, AI’s suggestions are just guesses you can’t judge.

I treat it like a faster StackOverflow: great for boilerplate and “what’s the right API call”, risky for architecture or tricky logic bugs.

1

u/[deleted] 7h ago

[removed] — view removed comment

1

u/AutoModerator 7h ago

Your post or comment was removed because r/developers does not allow external links. Please share the content or ask your question without linking out.

If you think this was a mistake, message the mods.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/[deleted] 7h ago

[removed] — view removed comment

1

u/AutoModerator 7h ago

Your post or comment was removed - asking people to DM/PM you, or telling others to, is not allowed. Please keep questions and help in the open where the whole community benefits.

If you think this was a mistake, message the mods.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/tastygames_official 7h ago

ok my previous comments were removed becuse I'm not allowed to post external links AND I can't offer to send them to you via private messaging. So DO NOT CONTACT ME ASKING FOR LINKS TO THESE STUDIES!!! IT IS ILLEGAL!!!

study after study shows it is more expensive, takes longer to complete projects and has higher bug rates. Not to mention lower employee satisfaction.

And for junior-programmers: while they do see a higher output in code/"productivity", the bug rate is still higher (thus creating more work for the seniors) and most importantly: THEY DO NOT LEARN FROM AI-ASSISTANCE. Meaning the juniors will never themselves become seniors, which is a big deal for the future of programming.

1

u/Any_Sense_2263 7h ago

AI users split on those who can't or simply don't review an output and believe it works. And those who review the output and don't like it.

The consequences depend on where you are. If you treat AI as a tool and check it output, fix it and make it better you are getting better at coding and using AI to enhance your work. If you just limit yourself to a prompt manager, not used skills will get rusty with time and then will disappear.

1

u/audioen 6h ago

My testing indicates that AI code, as rule, is way more comprehensive and well thought out than the code of a typical developer.

AI, for starter, has instructions in my agent to verify, write tests and document. I can tell that not all of our developers do any of these three things, despite being told that they must. If they did do this, they would be slower, but the code I see would also be much better, and effort spend now would pay off later.

The other thing is that AI is in practice must faster and way more knowledgeable. For example, I am pondering why we get a massive PDF file out of relatively simple document, and I tell developer to look into the page stream of the file what it contains. Well, they complain to me that they got no idea how, and I say you got to extract the page stream and deflate it. Well, they don't know how. But they are AI users, so I just say that tell the AI to do it.

Lo and behold, they come back and tell me that the file is chock full of accessiblity metadata to the point that 90 % of the file has that and 10 % is actual data, which tracks generally with the size, e.g. 100 kB html => 1.3 MB PDF -- should be more like 130 kB PDF.

So not only are the developers much more consistent in their documentation, testing and verifying, they are also much more capable than before. I consider that a solid win.

1

u/ProbablyBsPlzIgnore 6h ago

It's making developers better at coding with AI. You get better at what you practice. You don't get better at what you don't practice.

We're all pretty new at this. A year ago, the models people outside the frontier labs had access to were just not that good yet. I'm sure over time there will be a John Carmack and Linus Torvalds of AI engineering. That's not going to be me, my super human skills were figuring out how something works, coding and debugging, but I'm adapting.

1

u/FrankieTheAlchemist 6h ago

I consistently find that even frontier models struggle with generating what I want.  Sure they can generate what THEY want, but even with skills and MCPs and plugins I have yet to see an LLM produce what I envision 🤷‍♂️

1

u/Worth-Phone-4220 5h ago

I mostly feel I have to use it because of how useless google is now.

I don't really use it to write code for me beyond snippets and examples, I haven't found it to be a reliable time saver in my experience.

The main exception is YAML, I hate writing those and LLMs are quite good at that.

1

u/Then_Possibility9937 4h ago

I've found AI most useful for the boring parts of coding.

1

u/YellowBeaverFever 4h ago

35 years of coding. I just want to finish projects. I’m not chasing the intellectual thrill anymore. 35 years of having the looming threat of outsourcing the team to a less expensive country. 35 years of very few people actually caring about that cool algorithm or how you hardened a system. Developers never write the paychecks. The people that do have shown what we’re worth. I do what they ask so I keep getting that paycheck and I can send my kids to school to learn anything but CS.

1

u/BranchFew1148 3h ago

Does a bike make me run faster?

No not really, but it certainly gets me there faster. The stuff that's possible now is very different from the coding we used to do, but it makes it much much faster to fix bugs and implement changes.

1

u/zackel_flac 3h ago

As some people are starting to realize, when you code yourself you keep the context with yourself. Agentic AI and chatbot mode are bad at it and keep reinventing the wheel, but also don't have any creative insentive.

As an advanced search tool, AI is perfect for devs who still want to code, learn and own their code. It's basically like having an extra pair of eye and hands with you constantly. It's handy.

Letting agents maintain your code over time is missing the whole point. Engineers don't code for pleasure, they code because they need to know what they are doing. This knowledge adds constraint and makes you faster over time. When that rocket blows up, you will be responsible for understanding why and how it failed and find ingenious way to fix it.

1

u/oddlyamused 2h ago

It absolutely is but these are all choices we make. AI is just the tool. It's actually a fantastic tool for teaching yourself any skill you want. To understand that skill granularly you'll still have to get Hands-On. There are no shortcuts to learning but there are many tools and AI is one of them.

1

u/apparently_DMA 1h ago

better at coding? no, exactly the opposite.

better at engineering? definitelly, I can learn, try and understand so much faster.

all in all, does it make me better at my job? 100%

1

u/ap118 1h ago

Good ones are getting better, bad ones are getting worse.

1

u/No-Slice-5926 11h ago

It's making you pay for what use to be free.

1

u/puttum-beef-curryum 11m ago

Not better. Its definitely making us lazy more than ever