r/programmer • • 4d ago

Is coding by hand & actually knowing the codebase worth it?

/r/FullStack/comments/1x3i4f0/is_coding_by_hand_actually_knowing_the_codebase/
7 Upvotes

65 comments sorted by

17

u/IAmBeary 4d ago

Yes… Is this a trick question? It’s obviously true. Would you rather blindly trust something or know that it works for sure?

If you need to diagnose a bug, you can’t rely on ai to tell you because it may be confidently wrong

0

u/tr14l 4d ago

So are humans

7

u/ExplodedPenisDiagram 4d ago

I hate this argument so much, because it completely ignores the other 99% of what makes one human, not the least of which is creative problem solving.

Humans can recover from error, continuously. LLMs succumb to it, inevitably.

2

u/Professional-Dog1562 3d ago

nah, just spin up 3 other agents, all of them on the highest thinking mode, and have them be skeptical of each other. Only costs about $500 with the best models to figure out each bug.

2

u/MediocreAnalyst2121 2d ago

Ahem 🤓 it’s called an adversarial review swarm, and it literally solved coding.

/s

1

u/Professional-Dog1562 2d ago

Sarcasm off: I'm tired, boss.

Sarcasm on: Finally, now I can be fired and fulfill my dream of becoming checks notes a chimney sweep. 

1

u/TheOneWhoKnocks003 3d ago

The costs will compound the more spaghetti the codebase is.

2

u/tr14l 2d ago

I see you haven't been using the latest bleeding the frontier models

1

u/ExplodedPenisDiagram 2d ago

Nonsense. Anything less than five nines of fidelity will succumb to collapse over a horizon of only a few change generations, and we don't even have two nines in any model.

For every error, that error becomes destructively propagated -- even in moderation systems.

And yet humans somehow come to robust results with not even one nine of fidelity. Creative problem solving is the "secret sauce" to this, and is THE way to prevent succumbing to propagated errors.

Without this, increasing model fidelity below that frankly impossible threshold only serves to deepen the hole you're digging.

The reality is that complex working configurations are high entropy constructs, and using a model that emits the most statistically likely result will eventually produce a negative feedback loop so strong that you end up with mud every time, eventually.

1

u/tr14l 2d ago

Wow, ok. Well, my entire department has improved every aspect across the stack. More security, more test coverage, better architecture patterns, we're actually paying down tech debt for the first time, we have proper documentation, our DORA metrics are the best they've ever been.... It's a weird looking collapse i guess

1

u/ExplodedPenisDiagram 2d ago

I think you're ignoring what I've said, or at least misunderstanding it.

1

u/tr14l 2d ago

You're operating on some strange assumption that they don't spot errors and bad patterns and poor decisions... But that's one of the things they are best at. Far better than humans

1

u/Due_Cap_7720 2d ago

I don’t know if you are purposefully being dense. Can you not understand what they are saying or are you trolling?

2

u/ZeSprawl 4d ago

They are, just not humans who build good things. You get to choose if you are one of those or not. You can’t choose this about the models.

1

u/QuietWaterBreaksRock 4d ago

Humans are naturally much better at pattern recognition than AI

AI has the computational speed, none of the efficiency

What would take us 1 look, takes AI millions of generations while training and who knows how many repetitions to be sure of its result and it'll still screw up very often

We have billions of years of evolution to our advantage, but some seem to think that 10 years of tech can replace all that

2

u/BluePhoenixCG 3d ago

I wouldn't say LLMs are necessarily worse at pattern recognition (on fact in strict terms they're likely more potent), but the difference is humans can differentiate between meaningful patterns and noise. This ability to separate the signal from the noise is what makes us better at these kinds of tasks

0

u/tr14l 4d ago

Didn't say it could replace is. But humans make a LOT of errors. You people act like we don't cause massive breaches and bring down production and mangle data. There's literally thousands of very expensive products to try to help mitigate and track it because it happens SO OFTEN. It's so common that the common industry joke is "you're not a real engineer until you crash production on a Friday". You people are trying to act like the bar is so high that they need to overcome. It's not. We are retarded monkeys. And for those of us that are the exception to that, still have peers working next to them that are, indeed, retarded monkeys. Look at this from an organizational perspective. They have literally never been able to trust us. They KNOW we are putting out bad code, broken systems, security risks. Risk mitigation because of it is a MASSIVE expense. Like, a signfiicant portion of a company's overhead kind of expensive.

Because of our fallibility.

We aren't trying to beat the best software engineers, we only need to beat the departmental average and then have a handful of OGs to oversee it all.

I'm not saying we're there yet, but we're not nearly as far as the critics think, either. Especially not with putting additional tooling and systems around it. Humans are the most unreliable machines on the planet. We made it work with them... It won't take long until coding is going to be a machine operation or for specialists. There will still be devs/engineers. They just won't be typing functions and classes.

2

u/QuietWaterBreaksRock 4d ago

AI is literally trained on our own biases and mistakes, and all of them are incorporated into it's data without any way for it to know that what it knows is wrong

You can correct a human, on the spot, you can't correct an AI that swears by its knowledge. Also, you can replace a human, you can't replace said AI, without ruining that same company. And finally, you can't blame AI, but just people

So, it's not "WE PEOPLE", it's you people, who keep meat riding a bunch of code like it's the next Jesus Christ

1

u/tr14l 4d ago

It's also trained on every software engineering book. College course materials. Etc. Not to mention you know they are continuously curating and improving the dataset. People are currently decompiling entire video game codebases and rewriting them in different languages. Did you not see the thing with Adobe? The Adobe suite is effectively open source now. There's s rust version you can install. That's far beyond what a human can feasibly do. Can you even read decompiled code? Because it can.

8

u/IrishPrime 4d ago

No. It's never been worthwhile or good to know anything. That's why most of our problems throughout history have always been solved by guessing and never through deep knowledge or understanding.

3

u/mc_pm 4d ago

. o O ( ...checks recent US history... seems legit )

3

u/mxldevs 4d ago

No, why would you subject yourself to understanding how any of the things you're shipping works? When shit hits the fan just say you didn't know it would happen and let someone else deal with the consequences, obviously.

3

u/Spiritual-Inside-370 4d ago

Knowing the code base is actually important otherwise what are you even doing. Definitely not a programmer that’s for sure.

2

u/sozesghost 4d ago

Generate as much slop as possible so it all burns down faster.

2

u/ResponsibilityIll483 4d ago

We used to complain endlessly about legacy code when it was all human-written. How much worse can AI code be?

4

u/LetsHugFoReal 4d ago

Unfortunately worse. Because it allows people to produce techncial debt at a faster rate. In my corporate environment, it's creating say 10 solutions to the same problem. Making maintenance a nightmare. It's also full of bugs and requires a specific state of data to run correctly. It's a nightmare.

AI augments existing knowledge, not as a polyfill for an absense of knowledge.

1

u/ResponsibilityIll483 3d ago

It opts for the well-trodden path, which for most developers is a step-up in quality imo

1

u/TopicSoft6567 3d ago

THIS is the biggest problem. It OFTEN builds around very specific data sets or ideas. Sometimes the ideas weren’t even in the prompts, it’s just something the AI made up.

I use AI all the time, and I love it.

But it fucks up anything even remotely complex and its code is horrible to read for any complex solutions.

1

u/BobJutsu 4d ago

Worse. Much worse. A big reason is velocity, but another is at least at some point someone understood the legacy code and ideally produced documentation.

1

u/ResponsibilityIll483 3d ago

Understanding is less important now that AI can find and fix bugs very quickly. Yes it'd be nice to avoid bugs in the first place, and AI code review also helps with that.

1

u/minegen88 3d ago

You can ask the developer whatta hell they were thinking when they did something weird and you can both try to figure it out togheter.

You can't ask an ai what it was "thinking" when it did a feature. Because it cant think

1

u/ResponsibilityIll483 3d ago

If they're still at the company and still remember

1

u/Fidodo 3d ago

Much worse because it'll be 100x bigger than the human one and spaghetti code compounds in complexity

2

u/becircus 4d ago

If you go to the /r/cscareerquestions they might say no the reason being you focus on the computer science and algorithms and actually knowing the codebase is unnecessary compared to that.

But if you want to be more than a mercenary moving around every one or two years if you want to stay at a place a long time you probably need to. And for your personal toolkit you should know it like back of your hand.

2

u/Fit-Notice-1248 4d ago

No, it's never worth understanding something and having deep knowledge. It's much much better and efficient to have no understanding on anything and instead, make guesses and be swindled by random theories. 

It's also a lot better to use the frontier models and be dependent on them to do everything and anything you need

2

u/zackel_flac 4d ago

Anyone shipping product to production with AI only will know that yes, it is completely worth it. AI is absolutely not bug free, and it simply won't show when you have 0 users.

2

u/damanamathos 4d ago

It depends on the situation.

Critical software involved in financial transactions? Yes, should probably look at it closely and make sure it works.

Standard CRUD app where you're updating the design of a page and how it's displayed? No, you can rely on new models to do that well and pick it up with the right automated tests.

Also depends on how much effort you've put into your AI coding with regards to automated review and testing. AI these days will pick up flaws that humans miss, so would try to incorporate that into the process even if you do decide to hand code things.

2

u/LeDYoM 2d ago

For me, it is worth.

2

u/antiprosynthesis 4d ago

Coding by hand, no. Knowing the codebase, definitely yes. You can use AI to get to know it faster though.

2

u/bunnypaste 4d ago

How does one learn a codebase without knowing how to read and write code by hand?

2

u/Fit-Notice-1248 4d ago

Keep asking AI to explain it to you over and over and over again. (Anthropic happy as hell people think like this)

0

u/iscottjs 4d ago

I think writing some code by hand is still useful if that process helps you understand the codebase. What I think is going to be less useful now is writing all code by hand for every feature at work when the expectation is to generate everything. 

There’s probably little value is hand crafting all the boilerplate that is probably already easy to understand, but there might be a few complex methods that need breaking down or rewriting to make it understandable.

I think there’s still value in coding by hand to enable you to learn and read code. But once you’re competent enough to read/understand then at that point it’s just going to be faster to generate it and sanity check it. 

I’m learning golang from scratch and building a side project by hand, once I’ve finished that then I’m confident I’ll be able the critique my next AI generated golang project and understand what’s going on. 

2

u/VigilanceOne 4d ago edited 4d ago

Nope just hit generate and send it off. Don''t understand something? AI. Get an error? Ai. Security issues? AI. Ai not being smart enough? Another AI.

2

u/LetsHugFoReal 4d ago

😂 Don't listen to this guy.

2

u/iscottjs 4d ago

Yep this would be my boss’s response to all of it. I need a few days to understand this codebase. Just use AI? I need to make sure this bug fix doesn’t take down our upstream systems. Just use AI?

1

u/Rich-Engineer2670 4d ago

Put another way, if the code is incorrect in some way, what is the risk you take if the code is worng? If the code just paints the screen a different color, the risk is low. If you're Boing with a 737MAX and the code has an error, the plane stops being a plane and becomes a rock.

What risk can you accept if the code malfunctions. It may be acceptable, it may not be -- up to you.

1

u/Lunchboxsushi 4d ago

I'm lucky that I've got about half a decade on the current system I work on, AI has made it nearly effortless to modify as I'm familiar with infra + full stack

1

u/Few-Celebration-2362 4d ago

Depends on the codebase.

1

u/lehmagavan 4d ago

If it wasn't worth it, why aren't kernels or other critical systems vibecoded yet? AI is sure used to generate code there, but knowing the code base - fundamental. I'm just a hobbyist, but isn't it usually people doing webdev scripting asking such questions?

1

u/KnowledgeWhole9623 4d ago

WTF kind of question is this

1

u/Groundbreaking-Fish6 4d ago

Sorry but Vibe coding is just a bridge technology. At some point the AI will become better then actual coders and you boss will say that the AI is smarter then you don't question the code. At this point we will fall back on the other skills that are involved in application creation e.g., working with users and other stakeholders to find the best solutions to their problems.

Until a year ago, I always lamented that software developers time was only about 10% coding. The rest of the time was working with users to refine and validate requirements, even if you had a team of System Engineers writing requirements. Also working with System Administrators to make sure that the network, database or web server was configured and had enough resources to run the applications successfully. Finally working with management to make sure funds were available for coding, documentation, testing, network and training.

1

u/Evening-Transition96 4d ago

Depends. Do you give a shit about actually being good at what you do?

1

u/cackhandle 3d ago

Yes. Always

1

u/AncientGrief 3d ago

There's also the issue with End-To-End agentic coding, where the AI creates kind of a fantasy code word cluttered wall of text ... and if somehow you are not able to use AI anymore, good luck ... I mean prices keep rising steadily ...

1

u/LetsHugFoReal 4d ago

If you want to produce something of value, that is production ready - yes.

If you're a bit stupid, then no. Because what will be produced will be junk.

AI produces a solution. It does not produce the most efficient, simple, maintainable, consistent solution necessarily.

1

u/Beautiful-Hotel-3094 3d ago

I second this. It’s your choice how well you want to do your job. If you don’t understand your job, AI will control your workflow. You just won’t be able to redirect it and use it properly. I find myself correcting the AI in 99.999% of the cases, I very rarely take its output as is. But that is because I understand how the solution should look like.

0

u/naslanidis 3d ago

I mean the question is kind of irrelevant. It's simply not possible to know it in detail at the pace and scale at which things will be moving. That doesn't mean quality has to be bad, it means the engineering problem to solve is autonomous automation that produces high quality code. Defining that takes software engineering skills.

1

u/drifterpreneurs 3d ago

I mean the only ones who think it's irrelevant are vibe coders who only know how to prompt a llm.

They can't read, understand or write code so how can be expected to review AI generated code? They probably still need to ask a real dev and not another llm prompter.

Open AI ceo called Ai generated code brittle, meaning its not high quality code.

Once vibe coders lose their LLM's and no longer have the ability to prompt an llm, where will they be and what value will they have? It's not like they could understand, read and write code in the first place!

1

u/naslanidis 2d ago

Why would humans he reviewing AI generated code?

You have no idea whats coming and it's not even distant. My team is building it right now. No developers at all, ever again.