this post was submitted on 22 Oct 2024
228 points (86.5% liked)
Technology
59377 readers
3189 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'll confess I only skimmed the article, but it seems like just a bunch of unsubstantiated opinions and I don't buy it.
Using AI generated code is like pair programming with a junior programmer. You tell the junior what to do and then you correct their mistakes by telling them how to do better. In my experience, explaining things to someone else makes you better at your craft. Typically this cycle includes me changing the code manually at the end, and then possibly feeding it back to ChatGPT for another cycle of changes.
Apart from letting me realize and test my ideas quicker, this allows me to raise the abstraction level of my thinking. I can spend more time on architecture and on seeing the bigger picture, and less time being blinded by the nitty gritty details. I would say it makes me both a faster and a better programmer.
I’ve seen the comparison to pair programming with a junior programmer before, and it’s wild to me that such a comparison would be a point in favor of using AI for improving productivity.
I have never experienced a productivity boost by pairing with a junior. Which isn’t to say it’s not worth doing, but the productivity gains go entirely to the junior. The benefits I receive are mainly improving my communication and mentoring skills in the short term, and improving the team’s productivity in the long term by boosting the junior’s knowledge.
And it’s not like the AI works on the mundane stuff in parallel while I work on the more interesting, higher level stuff. I have to hold its hand through the process.
I feel like the efficiency gains of AI programming is almost entirely in improving your speed at wrestling a chatbot into producing something useful. Which may not be entirely useless going forward - knowing how to search well is an important skill, this may become something similar, but it just doesn’t seem worth the hassle to me.
I have done pair programming with a junior partner, and I found it extremely beneficial. Taking the time to talk out my ideas and logic invariably helped make them clearer in my mind and realize pitfalls much sooner than I otherwise would have.
I had to explain things clearly and logically, and he was bright enough to ask good questions and point out typos as I was coding.
Bugs never occur in the high-level/big picture land, it usually come up in the low-level/implementation land. Should you entrust these to AI ?
Only because bugs are defined as errors in implementation details. You can still have errors in your design (sometimes referred to as design bugs).
It's not about "entrusting" to AI any more than I would be entrusting important code to a junior developer to just go off and push to production on his own. We still have code review, pair programming etc. As I said, I read the output code, point out issues with it, and in the end make manual adjustments to fit what I want. It's just a way of building up the bulk of the code more quickly and then you refine it.