Live data from Hacker News

On The Need For Understanding

blog.information-superhighway.net

11–20 of 49 posts

Re: On The Need For Understanding

#11
It's pleasant to read an article that genuinely seems written by a person; warts and all. It doesn't matter that it repeats some of its points. Actually maybe that's the point. I hope more people try this.

Re: On The Need For Understanding

#12

I can't imagine programming without understanding aka vibe coding. Hence I will never vibe code.

What do you do to learn new programming construct? What did you do to learn programming - didn't you write

  #include 

  int main() {

    printf("Hello World");
    return 0;
  }
while having no idea what 'stdio.h' is?

Re: On The Need For Understanding

#13
post #3

In the world that the AI bros want for us, understanding has become a hobby.

Yep. It is a luxury. Nowadays I use AI for work, and my productivity increases. However, I don't learn much from the tasks, because I get more tasks since the team went down half size. Understanding is a luxury now.

Re: On The Need For Understanding

#14
I think as an industry LLM assisted programming is largely amplifying an existing gap: commercial software is often under much higher speed constraints and much lower correctness constraints than the sorts of software that can be created by deeply understanding a software system.

Obviously this depends on the industry; aviation software that runs in regulated environments is probably under even higher correctness constraints than that which Sussman discusses. Accounting software too needs to balance books correctly or risk fines. But most software needs to be mostly correct. New features and better UX is more useful for the users of many systems than fixing tail frequency bugs.

Personally I do hobby code on systems I understand from scratch. Writing for older, well documented retro hardware for example is very fun. Writing things from simple abstractions is also fun. But my speed in doing this is something I know is not commercially viable and that's fine by me.

Many fields have a commercial aspect of them that has a much lower quality bar and a much higher output speed bar than their hobby equivalents. Wedding photography, voice acting, the quotidian demand for these things is far lower than appreciating an Ansel Adams piece in a museum.

Re: On The Need For Understanding

#15

Interesting piece - reading it I found myself skimming, the point being made was being made repeatedly, albeit showing that as the author grew as a developer so did the complexity of the software they were using. There was one thing that screamed in my head, though, whilst reading it, was, yes we can have a look at the library being used, read the code, and understand what its actually doing (this is one of the reaso…

> It just doesn't fit into one person's head anymore.

True, but I think it doesn't have to, at least not everything at the same time.

You can still usually understand the ins and outs of a specific component/service/module/etc with some time - e.g. if you have to develop or maintain that component.

Alternatively, you can also try to understand certain data or action paths throughout all components of the system - that's what OP did with the layout bug: They were trying to understand how Android's relayouting logic worked, so they managed to get a mostly complete picture of all the pieces that are involved in that specific functionality. But they probably didn't bother to learn the rest of Android's UI renderer or other unrelated components with the same thoroughness.

I think this kind of "selective understanding" where make conscious decisions which parts you want to understand and which you treat like a semi-predictable black box works well in practice.

Re: On The Need For Understanding

#16
post #12

I can't imagine programming without understanding aka vibe coding. Hence I will never vibe code.

What do you do to learn new programming construct? What did you do to learn programming - didn't you write #include int main() { printf("Hello World"); return 0; } while having no idea what 'stdio.h' is?

Choosing not to know what stdio.h means is willful ignorance, an LLM has little to do with said chosen ignorance, that is a choice because "hey it works on machine!" and when I pushed it, nobody seemed to mind.

What a time to be alive. Actively choosing to rebuke knowledge because "what the fuck does it matter anyways"

Re: On The Need For Understanding

#17
post #12

I can't imagine programming without understanding aka vibe coding. Hence I will never vibe code.

What do you do to learn new programming construct? What did you do to learn programming - didn't you write #include int main() { printf("Hello World"); return 0; } while having no idea what 'stdio.h' is?

no. it was the first question I asked and was given a satisfactory explanation (along the lines of, "this adds things to your program that help it write text to the screen.")

Re: On The Need For Understanding

#18
post #12

Earlier quoted context omitted.

What do you do to learn new programming construct? What did you do to learn programming - didn't you write #include int main() { printf("Hello World"); return 0; } while having no idea what 'stdio.h' is?

no. it was the first question I asked and was given a satisfactory explanation (along the lines of, "this adds things to your program that help it write text to the screen.")

That's not even remotely satisfactory if we're talking about understanding what we're doing

Re: On The Need For Understanding

#19
The Android example is a bummer. After this many years and generations of GUI frameworks, you should not have to experiment nor dig into source code to learn how to do something as simple as laying out your widgets.

The docs should have examples for that kind of thing.

Re: On The Need For Understanding

#20
There are a few emotional trigger points that LLMs seem to cause in programmers and this is a common one -- the need for deep, first-principles understanding that LLMs make obsolete.

One thing that gets me in a lot of pieces like this is they kind of assume people have no agency, that now that these tools exist we won't be able to help ourselves but use them despite our better judgement.

The broader topic which I don't see discussed so much are values. If you value deep understanding, well you should continue programming and learning in such a way. In some cases you may just want to use a language model to spin up a quick tool or PoC. And there is an entire grey area in between. It's a value judgement to decide what you use LLMs for, as much as what you don't.

Post reply on HN