Hacker Newsnew | past | comments | ask | show | jobs | submit | capyba's commentslogin

Your last sentence describes my thoughts exactly. I try to incorporate Claude into my workflow, just to see what it can do, and the best I’ve ended up with is - if I had written it completely by myself from the start, I would have finished the project in the same amount of time but I’d understand the details far better.

Even just some AI-assisted development in the trickier parts of my code bases completely robs me of understanding. And those are the parts that need my understanding the most!


I dont really understand how this is possible. I've built some very large applications, and even a full LLM data curation,tokenizer, pretrain, posttrain SFT/DPO pipeline with LLM's and it most certainly took far less time than if i had done it manually. Sure it isnt all optimal...but it most certainly isnt subpar, and it is fully functional

So you skipped the code review and just checked that it does what you needed it to do?

Nay, I periodically go through phases in most of my large applications where I do nothing but test, refine, refactor, consolidate, and modularize (the multi-thousand line monoliths that LLM's love to make so much) for days before resuming my roadmaps.

This part is honestly one of the most satisfying, where you merge the already existing functionality with beautiful patterns.

I also make good use of precommit hook scripts to catch drift where possible


I don't know how anyone can make this assumption in good faith. The poster did not imply anything along those lines.

That looked like a leading question to me, asking for confirmation but not an outright assumption. Seems like a fair question

GPT-5 codex variants with xhigh reasoning make great code reviewers.

5.2 Codex is excellent at reviewing commits. I haven’t used 5.3, I assume it's as good or better.

Especially for large commits, it's become indispensable.


> if I had written it completely by myself from the start, I would have finished the project in the same amount of time but I’d understand the details far better.

I believe the argument from the other camp is that you don't need to understand the code anymore, just like you don't need to understand the assembly language.


Of all the points the "other side" makes, this one seems the most incoherent. Code is deterministic, AI isn’t. We don’t have to look at assembly, because a compiler produces the same result every time.

If you only understand the code by talking to AI, you would’ve been able to ask AI “how do we do a business feature” and ai would spit out a detailed answer, for a codebase that just says “pretend there is a codebase here”. This is of course an extreme example, and you would probably notice that, but this applies at all levels.

Any detail, anywhere cannot be fully trusted. I believe everyone’s goal should be to prompt ai such that code is the source of truth, and keep the code super readable.

If ai is so capable, it’s also capable of producing clean readable code. And we should be reading all of it.


“Of all the points the other side makes, this one seems the most incoherent. Code is deterministic, AI isn’t. We don’t have to look at assembly, because a compiler produces the same result every time.”

This is a valid argument. However, if you create test harnesses using multiple LLMs validating each other’s work, you can get very close to compiler-like deterministic behavior today. And this process will improve over time.


It helps, but it doesn't make it deterministic. LLMs could all be misled together. A different story would be if we had deterministic models, where the exact same input always results in the exact same output. I'm not sure why we don't try this tbh.

I've been wondering if there are better random seeds, like how there are people who hunt for good seeds in Minecraft

it's literally just setting T=0. except they are not as creative then. they don't explore alternative ideas from the mean.

Are you sure that it’s T=0. My comment’s first draft said “it can’t just be setting temp to zero can it?” But I felt like T is not enough. Try running the same prompt in new sessions with T=0, like “write a poem”. Will it produce the same poem each time? (I’m not where I can try it currently).

> just add more magic turtles to the stack, bro

You're just amplifying hallucination and bias.


> other side???

> We don’t have to look at assembly, because a compiler produces the same result every time.

This is technically true in the narrowest possible sense and practically misleading in almost every way that matters. Anyone who's had a bug that only manifests at -O2, or fought undefined behavior in C that two compilers handle differently, or watched MSVC and GCC produce meaningfully different codegen from identical source, or hit a Heisenbug that disappears when you add a printf ... the "deterministic compiler" is doing a LOT of work in that sentence that actual compilers don't deliver on.

Also what's with the "sides" and "camps?" ... why would you not keep your identity small here? Why define yourself as a {pro, anti} AI person so early? So weird!


You just described deterministic behavior. Bugs are also deterministic. You don’t get different bugs every time you compile the same code the same way. With LLMs you do.

Re: “other side” - I’m quoting the grandparent’s framing.


GCC is, I imagine, several orders of magnitude mor deterministic than an LLM.

It’s not _more_ deterministic. It’s deterministic, period. The LLMs we use today are simply not.

Build systems may be deterministic in the narrow sense you use, but significant extra effort is required to make them reproducible.

Engineering in the broader sense often deals with managing the outputs of variable systems to get known good outcomes to acceptable tolerances.

Edit: added second paragraph


I'm not using a narrow sense. There is no elasticity here. See https://en.wikipedia.org/wiki/Deterministic_system

> significant extra effort is required to make them reproducible.

Zero extra effort is required. It is reproducible. The same input produces the same output. The "my machine" in "Works on my machine" is an example of input.

> Engineering in the broader sense often deals with managing the outputs of variable systems to get known good outcomes to acceptable tolerances.

You can have unreliable AIs building a thing, with some guidance and self-course-correction. What you can't have is outcomes also verified by unreliable AIs who may be prompt-injected to say "looks good". You can't do unreliable _everything_: planning, execution, verification.

If an AI decided to code an AI-bound implementation, then even tolerance verification could be completely out of whack. Your system could pass today and fail tomorrow. It's layers and layers of moving ground. You have to put the stake down somewhere. For software, I say it has to be code. Otherwise, AI shouldn't build software, it should replace it.

That said, you can build seemingly working things on moving ground, that bring value. It's a brave new world. We're yet to see if we're heading for net gain or net loss.


If we want to get really narrow I'd say real determinism is possible only in abstract systems, to which you'd reply it's just my ignorance of all possible factors involved and hence the incompleteness of the model. To which I'd point of practical limitations involved with that. And that reason, even though it is incorrect and I don't use it in this way, I understand why some people are using the quantifiers more/less with the term "deterministic", probably for the lack of a better construct.

I don't think I'm being pedantic or narrow. Cosmic rays, power spikes, and falling cows can change the course of deterministic software. I'm saying that your "compiler" either has intentionally designed randomness (or "creativity") in it, or it doesn't. Not sure why we're acting like these are more or less deterministic. They are either deterministic or not inside normal operation of a computer.

To be clear: I'm not engaging with your main point about whether LLMs are usable in software engineering or not.

I'm specifically addressing your use of the concept of determinism.

An LLM is a set of matrix multiplies and function applications. The only potentially non-deterministic step is selecting the next token from the final output and that can be done deterministically.

By your strict use of the definition they absolutely can be deterministic.

But that is not actually interesting for the point at hand. The real point has to do with reproducibility, understand ability and tolerances.

3blue1brown has a really nice set of videos on showing how the LLM machinery fits together.


> they absolutely can be deterministic.

They _can_ be deterministic, but they usually _aren't_.

That said, I just tried "make me a haiku" via Gemini 3 Flash with T=0 twice in different sessions, and both times it output the same haiku. It's possible that T=0 enables deterministic mode indeed, and in that case perhaps we can treat it like a compiler.


That will never happen unless we figure out a far simpler way to prove the system does what it should. If you've ever had bugs crop up with a full test suite you should know this is incredibly hard to do

LLMs can't read your mind. In the end they're always taking the english prompt and making a bunch of fill in the blank assumptions around it. This is inevitable if we're to get any productivity improvements out of them.

Sometimes it's obvious and we can catch the assumptions we didn't want (the div isn't centered! fix it claude!) and sometimes you actually have to read and understand the code to see that it's not going to do what you want under important circumstances

If you want a 100% perfect communication of the system in your mind, you should use a terse language built for it: that's called code. We'd just write the code instead


we can do both. we can write code for the parts where it matters and let the LLM code the parts that aren't as critical.

People who really care about performance still do look at the assembly. Very few people write assembly anymore, a larger number do look at assembly every so often. It’s still a minority of people though.

I guess it would be similar here: a small few people will hand write key parts of code, a larger group will inspect the code that’s generated, and a far larger group won’t do either. At least if AI goes the way that the “other side” says.


>I believe the argument from the other camp is that you don't need to understand the code anymore

Then what stops anyone who can type in their native language to, ultimately when LLM's are perfected, just order their own software instead of using anybody else's (speaking about native apps like video games, mobile phones, desktop, etc.)?

Do they actually believe we'll need a bachelor's degree to prompt program in a world where nobody cares about technical details, because the LLM's will be taking care of? Actually, scratch that. Why would the companies who're pouring gorrilions of dollars in investment even give access to such power in an affordable way?

The deeper I look in the rabbit hole they think we're walking towards the more issues I see.


At least for me, the game-changer was realizing I could (with the help of AI) write a detailed plan up front for exactly what the code would be, and then have the AI implement it in incremental steps.

Gave me way more control/understanding over what the AI would do, and the ability to iterate on it before actually implementing.


Indeed. This is very much the way I use it at work. Present an idea of a design, iterate on it, then make a task/todo list and work through the changes piecemeal, reviewing and committing as I go. I find pair design/discussion practical here too. I expect to see smaller teams working like this in the future.

For small personal projects, it's more vibey.. eg. Home automation native UIs & services for Mac & Windows, which I wouldn't otherwise start.. more itches that can be scratched in my limited time.


quite a bit of software you would need to understand the assembly. not everything is web-services.

I've only needed assembly once in more than 20 years of programming, not a webdev

It was during university to get access to CPU counters for better instrumenting, like 15 years ago. Havent needed it since


I've found LLMs (since Opus 4.5) exceptionally good at reading and writing and debugging assembly.

Give them gdb/lldb and have your mind blown!


Do you mean gdb batch mode (which I've heard of others using with LLMs), or the LLM using gdb interactively ?

I wrote a wrapper python script debug.py that will run gdb as a subprocess, and then takes input from the args.

Usage is somewhat like:

$ debug.py start $ debug.py -c "break main" $ debug.py -c "continue"

Cursor at least doesn't seem to like running interactive programs yet.


That is what's hard about transitioning from coder to lead. A good coder makes full use of a single thread of execution. A good lead effectively handles the coordination of multiple threads. Different skills.

An LLM coding assistant today is an erratic junior team member, but its destructive potential is nowhere near some of the junior human engineers I've worked with. So it's worth building the skills and processes to work with them productively. Today, Claude is a singular thing. In six months or a year, it'll be ten or a hundred threads working concurrently on dozens of parts of your project. Either you'll be comfortable coordinating them, or you'll nope out of there and remain an effective but solitary human coder.


I use conductor with git worktrees and will literally have 10 or 20 running at a time getting pinged as they finish stuff for me to review, mostly getting rid of small ticket and doing random POCs while I focus on bigger stuff, the bottleneck has literally become the company doesn't have enough stuff to give me. It only really works however because I have a lot of context and understanding of the codebase. It's already here.

I found coordinating skill usage across worktrees quite annoying, how are you managing this?

Then you are using it the wrong way

Driving is a skill that needs to be learnt, same with working with agents.


Are you giving it huge todos in one prompt or working modularly?

Claude set up account creation / login with SSO login, OTP and email notifications in like 5 mins and told me exactly what to do on the provider side. Theres no way that wouldn't have taken me few hours to figure out

There is no way its not faster at a large breadth of the work, unless youre maybe a fanatic with reviewing and nitpicking every line of code to the extreme


> I would have finished the project in the same amount of time

Probably less time, because you understood the details better.


Have you added agents.md files?

You have to do more than prompts to get the more impressive results


skill issue.

sorry for being blunt, but if you have tried once, twice and came to this conclusion, it is definitely a skill issue, I never got comfortable by writing 3 lines of Java, Python or Go or any other language, it took me hundreds of hours spent doing non-sense, failing miserably and finding out that I was building things which already exists in std lib.


I wish I knew more about cattle to add to the analogy but I do very much appreciate it as is.


I’ve been a longtime competitive athlete and my best deadlift was 545 lb. I’ve been in many gyms in my life and I’ve only met maybe a dozen men lifting more than say 350 or so.

Expecting the “average” man to get to a 400 or even 300 lb deadlift is absurd. Sure, most people could be in better shape but a 4 plate deadlift is much more strength than most people need… and more than most people’s bodies can safely handle regularly. The risk of serious injury rises exponentially when you put on weight like that.

Building and maintaining strength, especially into the older ages, is certainly important but not to the levels you describe here. I suspect your comments here are based on neither personal experience nor proper education and training.


The average male 20-29 in USA is 85KG. A deadlift of barely over 2x bodyweight is not remarkable at all! The average young man does not train and when they do they train stupidly; this has no bearing on the fact that they could achieve a 400 deadlift within a few years of intelligent training.

Most gyms are not serious. You'll find no one lifting heavy at Planet Fitness, and you'll find that a 350 deadlift is one of the weakest in a dirty powerlifting gym. Among people who actually do the activity, it's not impressive. The thing is you just have to actually do the activity. My metrics are only "absurd" if you think I'm saying that the average man has the willpower and interest to achieve this; of course they don't; the average man is obese and lazy. My claim is that the average man has the physical capacity to achieve this.

Please don't misconstrue my claim of what is possible for what is likely. The average man can easily learn to cook well, read a few books per year, get their chess elo into the top 30%, run a 5k, learn to draw basic portraits, deadlift 400 pounds, and many other things that the average man will never do because they don't want to train for it.

If I said the average man could practice drawing for a few years and end up drawing basic portraits, or study chess or cooking for a few years and end up better than almost anyone they know, this is mostly uncontroversial. When I say the same for strength training, it seems to anger a lot of people for some reason. My experiences tell me that these are comparable levels of goals.

To the original point, seriously, my 102lb wife squats more than 1 plate and she's been training for 4 months.


tkinter is the best kept secret in the Python std lib.

Pair it with numpy and matplotlib (two external dependencies that personally I consider part of Python itself), and you’ve got 80% of an interactive scientific simulation environment.


In fact, I am planning to use matplotlib soon, to visualize progress in learning, since my app is a language learning app.


What exactly is an “AI working competency”? How to have a conversation with a chatbot? How to ask a chatbot a question that you confirm with a Google search and then confirm that with a trusted online reference and confirm that with a book you check out of the library three weeks later?

Perhaps the world is going the direction of relying on an AI to do half the things we use our own brains for today. But to me that sounds like a sad and worse future.

I’m just rambling here. But at the moment I fail to see how current LLMs help people truly learn things.


How about the understanding that the machine isn't sentient, but is just a machine that strings together words... Maybe obvious to you and me, but not to college students, especially American ones.


Same here! That’s a great blog with a lot of good advice.


Hearing someone proudly describe themselves as a libertarian always reminds me of the ol’ twitter quote that goes something like “libertarians are like house cats - fiercely self-assured of their own independence, yet completely reliant on a system they don’t appreciate or understand.”


I’d argue that in many of these instances, less is far more.

I want my car to just be really good at being a car, reliably get me from A to B. A Bluetooth connection to the stereo system is nice, but I don’t need a freaking 20” phablet right next to my face when I’m driving.

When I go to a website, I’m usually looking for information, to read something. I don’t often want fancy scroll and animations, I just want clear readable text free of distractions.

More and more these two examples seem to be going away, we’re losing the plot of what the point of these things are.


In a lot of ways, I agree with you. I think the key thing is that the complexity should be appropriate to what needs to get done.

Animations and etc. that distract from the actual content are superfluous. Agreed! I hate it when sites scrolljack.

But lots of HN posters want to impose the same austerity on every website, regardless of whether it’s appropriate. You can’t build Linear in 100KB of JS. Nor would you want to run it on 1 GB RAM. And that’s the case for a lot of economically useful applications.

Keeping things as simple as possible shouldn’t be the goal. It should be keeping it simple enough for the use case at hand.


I feel for the author. I do both mechanical and software engineering and I’m in this career(s) because I love making things and learning how to do that really well. Been having the most difficult time accepting the idea that there isn’t a good market for people like us - artisans, craftsmen, whatever the term might be - who are obsessive about exceptional quality and the time and effort it takes to get there. In this day and age, and especially when LLMs look ever more like they can produce at least a cheap, dollar store approximation of the real deal, “doing things really well” is going to be relegated to an ever more niche market.


Radiation does not work “incredibly well”, especially at the temperature range of interest. Forced convection (what every large terrestrial electronics system uses, from gaming laptops to terrestrial data centers) is orders of magnitude more efficient at pulling heat out of electronics than radiation. Normally electronics generate heat in a very small area relative to the entire package size, and conduction+radiation offers many practical issues to efficiently dissipating that heat to deep space.

Source: many years of practical engineering experience solving this exact problem.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: