October 22nd, 2024

Using AI Generated Code Will Make You a Bad Programmer

Relying on AI-generated code can hinder personal growth and skill retention in programming, leading to dependency, legal ambiguities, and potential disrespect in the community, while emphasizing coding as an art form.

Read original articleLink Icon
Using AI Generated Code Will Make You a Bad Programmer

The article discusses the drawbacks of relying on AI-generated code for programming, arguing that it can hinder personal development and skill retention. The author compares programmers who depend on AI to "script kiddies," suggesting that they miss out on essential learning experiences. Skills may atrophy over time if programmers do not engage in writing code themselves, leading to a dependency on AI tools that could ultimately replace them. The piece raises concerns about the ownership of AI-generated code and the potential lack of respect for developers who do not write their own code. While acknowledging that AI tools can improve efficiency, the author emphasizes the importance of taking pride in one's work and the artistry involved in coding. The article concludes by questioning the motivations of those who prefer to use AI for coding tasks, suggesting that it may reflect a lack of genuine interest in programming.

- Relying on AI-generated code can impede personal growth and skill development in programming.

- Programmers may become dependent on AI tools, risking their relevance in the job market.

- There are legal ambiguities regarding the ownership of AI-generated code.

- Using AI tools may lead to a lack of respect from peers in the programming community.

- The article advocates for taking pride in coding as an art form rather than relying on AI for code generation.

Link Icon 17 comments
By @artemsokolov - 4 months
1972: Using Anything Other Than Assembly Will Make You a Bad Programmer

1995: Using a Language with a Garbage Collector Will Make You a Bad Programmer

2024: Using AI Generated Code Will Make You a Bad Programmer

By @budududuroiu - 4 months
Copilot and AI generated code 100% has degraded code quality, judging simply by the now infamous metric about code churn in repositories shooting up after copilot was introduced.

The thing that bothers me is that your colleagues will use AI, your bosses will see it as progress, yet not realise the time saved now is going to be wasted down the road

By @Alifatisk - 4 months
This has been my concern for a while, that switching from basic autocomplete to ai generated code, copilot or switching the Cursor ide will make me stupid and forget how to write the most basic stuff without needing those tools again. I am very scared of losing my ability to write the code by myself again thanks to ai.

If it wasn't for that, I'd switch to Cursor or use copilot in a instant, because honestly, I've asked some ai tools like Claude for help a couple of times, and those has been for tasks that I know more than one would need to be involved in to complete that, but with Claude, I solved it in a couple of hours, incredible stuff!

Also, if it wasn't obvious, I am not claiming that this is the case, these are just my feelings, I would love to be convinced otherwise because then I might switch and try out the luxury QoF others are having.

By @throw16180339 - 4 months
My ChatGPT use falls into two categories:

1. Having it perform mechanical refactorings where there's no creativity involved. I'm hacking on a program that was written in the early 2000s. It predates language support for formatted IO. I had ChatGPT replace many manual string concatenations with the equivalent of sprintf. It's easy enough to test the replacements at the REPL.

2. Questions that would be unreasonable or impossibly tedious to ask a person.

Describe in detail the changes from language version X to language version Y.

Which functions in this module can be replaced by library functions or made tail recursive? This definitely misses things, but it's a good starting point for refactoring.

Is there a standard library equivalent of this function? I regularly ask it this, and have replaced a number of utility functions.

Give examples for using function.

By @marginalia_nu - 4 months
Yeah I don't think this is a good take.

In a learning context, sure, you probably should not be using copilot or similar, the same way you shouldn't be using a calculator when doing your basic arithmetic homework.

Beyond that, this just seems like a classic scrub mentality hangup. If a tool is useful, you should use it where appropriate. You'd be a fool not to. If it's not useful, then don't use it.

By @Rzor - 4 months
I guess you could extrapolate this in _some_ scenarios as: not using AI-generated code could get you fired. The conversation about how people are doing their work 90% faster feels exaggerated, but 20-30%? I can definitely vouch for that. Some employers will certainly want you to deliver results faster, especially if they are seeing results with your colleagues.

Buckle up, LLMs are here to stay and will likely continue improving for a while before they plateau.

By @BugsJustFindMe - 4 months
> You May Become Dependent on Your Own Eventual Replacement

If you're going to be eventually replaced, and I absolutely believe that even the best of us will, you may as well get in on the ground floor to extract value for a bit before that happens.

Not writing your own code doesn't need to mean turning your brain off. You still need to look at what came out, understand it, and spot where it didn't match your needs.

By @idopmstuff - 4 months
Yeah, probably true, but joke's on you - I'm just a B2B SaaS PM so making me a bad programmer is a huge step up!

But in all seriousness, these models are getting to the point where they're really useful for me to just build one-off tools for my own use or to prototype things to show other people what I'm looking for (like an interactive mockup). That's the power of turning a non-programmer into a bad programmer, and it's certainly worth something!

By @cranberryturkey - 4 months
fun fact: after 25 years as a software engineer in silicon valley, I'm convinced nobody cares about code quality and they never have.
By @ErikBjare - 4 months
I take issue with the first and major point: "You Rob Yourself of Learning Opportunities"

My experience has been quite the opposite: it speeds up my rate of work as I get answers faster, and thus gives me more learning opportunities in a workday.

By @chairmansteve - 4 months
Using an excavator will make you bad at shovelling.
By @rerdavies - 4 months
On the other hand, not using tools that increase your productivity by up to 50% will make you an unemployed programmer. <shrugs>
By @anarticle - 4 months
TL;DR: shipped

More specifically, I think code quality is a luxury that not everyone has if you work for dumb corpos who think that moving the gantt chart block left will speed up development.

The answer there is probably don't work for those people, but salaries cap out at some point and the allure of megacorps is there.

I'm a CS old head, who has manually allocated / managed memory, and built what would be considered stupid data structures to support scientific efforts.

For me, using AI and getting 0 to 1 experience in languages/frameworks I don't know is ultra. Combining those skills has made me some money in shipping small software, which has been fun.

By @JohnMakin - 4 months
While I agree with the spirit of this post, it seems a bit misguided on several points.

1) I do not believe AI will ever replace programming as a practice, because people will still need to read/review the code (and no, I don't personally believe LLM's are going to be able to do that themselves in the vast majority of cases)

2) while the "script kiddie" characterization is a bit of an unfair generalization, there is some truth to this. I disagree that using AI to generate code puts you in that realm automatically, but I have seen quite a few cases of this actually happening to give this point some merit.

3) Using AI generated code atrophies your skills no less than using someone's imported library/module/whatever. Yes, I probably couldn't write a really good merge sort in C off the top of my head anymore without thinking through it, but I don't really have to, because a bazillion people before me have solved that problem and created abstractions over it that I can use. It is not inherently bad to use other people's code, the entire software world is built on that principle. In fact, it's an extremely junior mindset (in my view) that all code you use must be written by your own hand.

4) "code being respected" is not really a metric I'd ever go for, and I'm not sure in my career so far I've ever seen someone push a big pull request and not have a bazillion nitpicky comments about it. Respecting other people's code doesn't seem to be very common in the industry. I struggle to think why I personally would even want that. Does it work? Is it readable/maintainable by someone other than me? Is it resilient to edge cases? If all yes, good, that is all I really care about.

5) > If you're someone who has no actual interest in learning to code, and instead see AI as more of a freelancer—telling it stuff like "make a kart racer game," and "that sucks, make it better"—then none of this really applies to you.

I mean, sure. I have very little interest or joy in "coding." I like building, and coding is a means to that end. Again, seems like a very junior mindset. I know people do find an enormous amount of joy in it for the sake of it, I am not one of those people, and that's fine. Usually it drives me to create better abstractions and automation so I don't have to write more code than I want to.

By @mjtechguy - 4 months
Using AI generated code will also make me a programmer I could never be. Been an infra and cloud guy, so this has been a game changer for me to actually create MVPs of things that have only ever existed in my head. I love it.