I use it so much. All my Google searches for syntax or snippets? Web searches are unuseable at this point, AI can spit it out faster. But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining. I just toss in a table or an api response and tell it what I want and boom
It probably does write 75% of my code by lines, but maybe 5% of the business logic is AI (sometimes I just let it take a crack at a problem, but usually if I have to type it out I might as well code it)
What it’s good at drains my concentration, so doing the grunt work for me is a real force multiplier. I don’t even use it every day, but it might be a 3x multiplier for me and could improve
But here’s the thing - programmers are not replaceable. Not by other humans, not by AI - you learn hyper specific things about what you work on
But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining.
It’s hard to say without being immersed in the codebase you work on, but wouldn’t making your code DRY (when possible) take care of a lot of the repetition without needing to write a bunch of incredibly similar code (be it by hand or with an LLM)?
I haven’t used a LLM to help code in a while (yes I’ve tried), but I found them useful for repetitive configs, like asset files. Also sometimes it makes sense to just have 5 slightly different lines of code in a row instead of a new function.
In general though, reasonable use of DRY is a good idea. There will still be repetitive parts though where a LLM autocompleter lets you just hit tab 5 times.
No, it’s all different - like a normal use case is “write me a stored procedure to optionally update all fields on a row on this table” or “given the following json response, build a class to parse it into”
We have a ridiculous database and multiple new api’s to integrate with every year, so this comes up a lot
But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining. I just toss in a table or an api response and tell it what I want and boom
Get better at it, manually, or you’ll suck at it forever. It’s a skill like anything else.
I agree, but I acknowledge we could be at a “cursive writing” moment where something that was once a critical skill becomes irrelevant. That’s sort of a pending question at this point.
I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.
With AI you can literally just say “replace all direct field access (e.g. thing.foo) with getters and setters” and the AI will do it in under a second. It will still be a very useful skill to be able to do things like that with regex because not everything is so easy to communicate to the AI, but it will become less frequently needed and a lot of developers who never learned that skill will get by using AI and just doing the rare things AI can’t do with repetitive keyboarding.
I see cursive writing brought up a lot in these conversations and I don’t think it applies. Firstly, the cognitive load of writing code is higher than writing your letters so they join up. You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head. Yes, initially it’s hard and boring.
And yeah, sometimes you get it wrong or forget to capitalize. That is a feature, not a bug. The more you do it, the easier it gets. I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using. It was like spending a sprint trying to get a subpar intern up to speed. At the end of those two weeks, my manual coding accuracy took a noticeable hit.
I complained to higher-ups and they told me “oh it’s definitely a skill getting the prompt written correctly”, which was patronizing and irritating. Would I rather spend time getting good at asking the proprietary magic thinky box to maybe write good code this time, or would I rather get better at coding?
I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with > getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.
At least you’re learning more about regexes when you do this. Yes, there’s menial bullshit in coding. There’s menial bullshit in every field. Some of it gets abstracted away (syntax highlighting to help with comprehension), some of it gets kicked around and ultimately does not impress (VB’s drag-and-drop coding), and some of it stays because it’s necessary. Nobody likes doing manual stuff, but sometimes it’s preferable to trying to automate it.
Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.
You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head.
I get where you’re coming from, but I’ve worked with a lot of bad developers who never got the hang of this even as mid-level developers. On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.
It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.
I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using.
We are using CoPilot. As a code-completion engine it is handy. I’m much more skeptical about the new code it writes. Like you, I have not had good experiences with that.
Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.
You’re right. Tool access is certainly something to think about. I have more nuanced thoughts, but I don’t want to disagree just to disagree, you know?
On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.
Yeah, that’s one of my big fears. Not necessarily losing my job to an AI, but AI exacerbating existing bad practices.
When I started my current job, we had one rock star coder responsible for a fairly fiddly piece of our product. He went heads-down for two weeks and churned out pages of densely-written python without comments. It did what it was supposed to do, flawlessly. He left the team shortly afterward to work on a bigger project, and we got word from the higher-ups that we had to support a new feature upstream in that code. And then another. And so on. Nothing’s commented. Everything’s over-optimized. We eventually ended up just cross-compiling the upstream logic and using that in our stack because it was easier than using his impenetrable stuff.
In the end, we had to fix it with menial, boring, aggravating manual work anyway. We got ourselves into that situation without AI, but I could see something like that becoming more prevalent. And that was working code. Imagine getting a SEV, and everyone on the blame list shrugs and says “idk, I had CoPilot do it.”
It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.
Yeah, this is part of it. There’s maybe the science of programming and also, for lack of a better term, the craft: writing maintainable code, handling a SEV, thinking in terms of uptime, setting things up to be reverted easily, shutting down neurotic code reviewers, testing your code… stuff like that. Universities are good at the science part. Internships, theoretically, handle the rest. This isn’t an AI issue, but I could see AI making this problem a lot worse.
I’ve been doing it for more than a decade without help, I’m not any better at spelling or misclicks
And to be clear, I can do it - I just really, really don’t want to. I hate it so much, my eyes glaze over and I have to force myself every second of the way. It’s not interesting, there’s no puzzles involved… It’s basically data entry
It’s not interesting, there’s no puzzles involved… It’s basically data entry
So? Show me an industry that’s 100% interesting all the time. Artists still have to stretch and gesso their canvases. Rock stars still have to deal with band drama and touring logistics. Directors have to work their budgets and wrangle big egos. Why should software, which is basically using fancy math to tell the dumbest guy in the room exactly what to do, be any different?
There’s this awful idea that everything should be fun and nobody should struggle with anything or be forced to do anything menial. We want to be instant experts without going through the boring or hard stuff. And we’re willing to offload more and more of this onto proprietary black boxes in exchange for… what?
So I should suffer just to suffer? You listed a whole lot of things that they hire people to do just about as soon as they can so they can. And offloading that let’s them do their actual job better
I work with black boxes all the time. When I have a black box, I poke and prod it until I understand how to make it do what I want. And this particular black box was interesting, so I decided to open it up and learn how it works
That’s the essence of software development. My job is not typing or data entry, my job is to trick a rock into doing things humans don’t want to do
I use it so much. All my Google searches for syntax or snippets? Web searches are unuseable at this point, AI can spit it out faster. But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining. I just toss in a table or an api response and tell it what I want and boom
It probably does write 75% of my code by lines, but maybe 5% of the business logic is AI (sometimes I just let it take a crack at a problem, but usually if I have to type it out I might as well code it)
What it’s good at drains my concentration, so doing the grunt work for me is a real force multiplier. I don’t even use it every day, but it might be a 3x multiplier for me and could improve
But here’s the thing - programmers are not replaceable. Not by other humans, not by AI - you learn hyper specific things about what you work on
It’s hard to say without being immersed in the codebase you work on, but wouldn’t making your code DRY (when possible) take care of a lot of the repetition without needing to write a bunch of incredibly similar code (be it by hand or with an LLM)?
I haven’t used a LLM to help code in a while (yes I’ve tried), but I found them useful for repetitive configs, like asset files. Also sometimes it makes sense to just have 5 slightly different lines of code in a row instead of a new function.
In general though, reasonable use of DRY is a good idea. There will still be repetitive parts though where a LLM autocompleter lets you just hit tab 5 times.
No, it’s all different - like a normal use case is “write me a stored procedure to optionally update all fields on a row on this table” or “given the following json response, build a class to parse it into”
We have a ridiculous database and multiple new api’s to integrate with every year, so this comes up a lot
Get better at it, manually, or you’ll suck at it forever. It’s a skill like anything else.
I agree, but I acknowledge we could be at a “cursive writing” moment where something that was once a critical skill becomes irrelevant. That’s sort of a pending question at this point.
I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.
With AI you can literally just say “replace all direct field access (e.g. thing.foo) with getters and setters” and the AI will do it in under a second. It will still be a very useful skill to be able to do things like that with regex because not everything is so easy to communicate to the AI, but it will become less frequently needed and a lot of developers who never learned that skill will get by using AI and just doing the rare things AI can’t do with repetitive keyboarding.
I see cursive writing brought up a lot in these conversations and I don’t think it applies. Firstly, the cognitive load of writing code is higher than writing your letters so they join up. You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head. Yes, initially it’s hard and boring.
And yeah, sometimes you get it wrong or forget to capitalize. That is a feature, not a bug. The more you do it, the easier it gets. I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using. It was like spending a sprint trying to get a subpar intern up to speed. At the end of those two weeks, my manual coding accuracy took a noticeable hit.
I complained to higher-ups and they told me “oh it’s definitely a skill getting the prompt written correctly”, which was patronizing and irritating. Would I rather spend time getting good at asking the proprietary magic thinky box to maybe write good code this time, or would I rather get better at coding?
At least you’re learning more about regexes when you do this. Yes, there’s menial bullshit in coding. There’s menial bullshit in every field. Some of it gets abstracted away (syntax highlighting to help with comprehension), some of it gets kicked around and ultimately does not impress (VB’s drag-and-drop coding), and some of it stays because it’s necessary. Nobody likes doing manual stuff, but sometimes it’s preferable to trying to automate it.
Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.
I get where you’re coming from, but I’ve worked with a lot of bad developers who never got the hang of this even as mid-level developers. On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.
It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.
We are using CoPilot. As a code-completion engine it is handy. I’m much more skeptical about the new code it writes. Like you, I have not had good experiences with that.
You’re right. Tool access is certainly something to think about. I have more nuanced thoughts, but I don’t want to disagree just to disagree, you know?
Yeah, that’s one of my big fears. Not necessarily losing my job to an AI, but AI exacerbating existing bad practices.
When I started my current job, we had one rock star coder responsible for a fairly fiddly piece of our product. He went heads-down for two weeks and churned out pages of densely-written python without comments. It did what it was supposed to do, flawlessly. He left the team shortly afterward to work on a bigger project, and we got word from the higher-ups that we had to support a new feature upstream in that code. And then another. And so on. Nothing’s commented. Everything’s over-optimized. We eventually ended up just cross-compiling the upstream logic and using that in our stack because it was easier than using his impenetrable stuff.
In the end, we had to fix it with menial, boring, aggravating manual work anyway. We got ourselves into that situation without AI, but I could see something like that becoming more prevalent. And that was working code. Imagine getting a SEV, and everyone on the blame list shrugs and says “idk, I had CoPilot do it.”
Yeah, this is part of it. There’s maybe the science of programming and also, for lack of a better term, the craft: writing maintainable code, handling a SEV, thinking in terms of uptime, setting things up to be reverted easily, shutting down neurotic code reviewers, testing your code… stuff like that. Universities are good at the science part. Internships, theoretically, handle the rest. This isn’t an AI issue, but I could see AI making this problem a lot worse.
I’ve been doing it for more than a decade without help, I’m not any better at spelling or misclicks
And to be clear, I can do it - I just really, really don’t want to. I hate it so much, my eyes glaze over and I have to force myself every second of the way. It’s not interesting, there’s no puzzles involved… It’s basically data entry
So? Show me an industry that’s 100% interesting all the time. Artists still have to stretch and gesso their canvases. Rock stars still have to deal with band drama and touring logistics. Directors have to work their budgets and wrangle big egos. Why should software, which is basically using fancy math to tell the dumbest guy in the room exactly what to do, be any different?
There’s this awful idea that everything should be fun and nobody should struggle with anything or be forced to do anything menial. We want to be instant experts without going through the boring or hard stuff. And we’re willing to offload more and more of this onto proprietary black boxes in exchange for… what?
So I should suffer just to suffer? You listed a whole lot of things that they hire people to do just about as soon as they can so they can. And offloading that let’s them do their actual job better
I work with black boxes all the time. When I have a black box, I poke and prod it until I understand how to make it do what I want. And this particular black box was interesting, so I decided to open it up and learn how it works
That’s the essence of software development. My job is not typing or data entry, my job is to trick a rock into doing things humans don’t want to do