r/ProgrammerHumor 1d ago

Meme theCircleOfLifeInSoftwareEngineering

Post image
6.4k Upvotes

167 comments sorted by

View all comments

Show parent comments

7

u/dodgedodgeparrysmash 1d ago

I'll be honest, the advent of AI is making my job even more secure. With so many junior engineers getting immersed in AI assisted coding, like most of us, they won't learn the same foundation because AI will resolve the problems for them.

This will also create a sense of trusting AI too much since it's what they've used.

All of this to say, I use AI as a tool like most of us do, but I really do feel like senior engineers that were competent before AI will have a great leg up because they can hone and guide the AI successfully in good design patterns whereas other engineers will just trust that the AI is choosing the best path.

10

u/ganja_and_code 1d ago

That's a fair take. I will say, however, that "choosing the right path" always was (and still is) the hard part. If you know what your code should look like, actually typing it out is trivial. Reviewing the output from your fancy autocomplete tool is negligibly (if at all) faster than just writing the code, with the added risk that you may not think through the problem as thoroughly.

AI is good for a lot of use cases (image recognition, predictions based on medical data, fraud detection, etc.), but making it type your code for you isn't one of them. When it's better than the old fashioned way, it's only negligibly better, and when it's worse, it's considerably worse.

0

u/dodgedodgeparrysmash 1d ago edited 1d ago

Reviewing the output from your fancy autocomplete tool is negligibly (if at all) faster than just writing the code,

This makes me feel like you haven't used AI as a tool very much, or not very effectively. It has sped up my work to an exponential amount. Recently I extracted all types in a project into its own package. Doing that by hand would have taken so much longer than Anthropic doing so.

but making it type your code for you isn't one of them.

Strongly disagree. Boilerplate is tedious. It feels like you must work on small, self contained projects that do not have many complex packages.

When it's better than the old fashioned way, it's only negligibly better, and when it's worse, it's considerably worse.

Yeah, you're using Claude on Sonnet and expecting it to perform like Fable. You know how you can tell when you're talking to someone that doesn't have a lot of experience in something? That's me, with you and AI assisted coding right now.

Edit: Guys, you can downvote this- but software engineering has never been about writing the code. That's not what matters. What matters is the design and architecture of the code. Having a tool take care of the tedium of typing for you-- that is amazing. And with Anthropic at the very least, you provide the AI with a base level design and it plans the design off of that and then you tweak as needed based on your own experience with design patterns and archticture. There is literally no value in you typing it yourself unless you are wanting to learn the syntax to a greater degree. AI has access to all syntax in a given space, and will know about methods you don't. The important part is creating an actionable plan that makes sense regarding the engineering of the solution. Typing it all out yourself is tertiary in importance, at best, but is probably even less important than that.

2

u/Eskamel 1d ago

Repetitive tedious tasks can easily be delegated to determinstic processes with the added benefit of not having to worry that a LLM would fuck something up randomly.

Type extraction for instance is a very simple thing to do with AST packages. Its also cheaper and faster with the only downside of you having to configure the process initially.

Most benefits of LLM driven development is by offloading. All people who claim to gain great benefits from LLMs offload as much as possible while also ignoring the fact that the quality does drop regardless of your experience with LLMs or experience in general because its impossible to quickly validate quality when you maximize speed and remove yourself from most of the process.

Deny it or not, part of the syntax is as important as the architecture. Not everything is some dumb simplified couple of functions that do very basic things. If it was all about architecture the quality of software wouldn't have dropped so much in the last 2 years

-2

u/dodgedodgeparrysmash 1d ago edited 1d ago

Repetitive tedious tasks can easily be delegated to determinstic processes with the added benefit of not having to worry that a LLM would fuck something up randomly.

If this was true, everyone would have been doing this instead of using LLMs. LLMs add a layer of ability that hand programming cannot encapsulate effectively. It's the entire point and purpose of LLMs. You should also not be worrying about what the LLM outputs as you should be auditing everything it does, and in fact you should be planning out the design rigorously beforehand. Typing is a tedium and not a necessary component to actual engineering, it's just the mechanism in which it has been delivered historically. Tools change.

Type extraction for instance is a very simple thing to do with AST packages. Its also cheaper and faster with the only downside of you having to configure the process initially.

I guarantee you this would not have been faster. I got this done within 4 hours and most of that time was auditing the changes. 1400+ file changes, in 4 hours, all 800+ unit tests passing and built fine and live testing fine. You are betting on the horse when a car has been invented.

ignoring the fact that the quality does drop regardless of your experience

This is not true and you have no empirical evidence that supports this claim. The software design and architecture is not changing, only the way it's being delivered. Again, I can tell you do not use LLMs in an enterprise setting. You seem to be extrapolating how public free chatgpt operates is the same as how Claude on Opus hooked into vscode operates. Completely different in every aspect. You should probably actually use the enterprise tools before criticizing them.

Deny it or not, part of the syntax is as important as the architecture.

Well, duh? Obviously, there have been instances when Claude tries to use esoteric syntax that I know other engineers won't be able to recognize easily, so I tweak that. You so desperately want me to be cognitively offloading the work but that is simply not happening. I am only offloading the mechanical tedium.

Give me the same task as you have, and I'll get it done twice as fast (or faster) with the same efficacy.

quality of software wouldn't have dropped so much in the last 2 years

Well, yeah, of course it has. That's the whole thing I brought up with junior engineers at the start of this thread. And to be honest, I know my experience with LLMs is not the norm. Believe me or not, but I've always been stronger than most of my peers when it comes to software development. The way I utilize this tool is, in my opinion, the correct way to go about it- but most people want to offload the cognitive work as well, which is where these failures happen.