Hacker News new | ask | show | jobs
by teamsolid 33 days ago
It is wonderful how early years of modern computing was brilliant. We treated machines as they really are: machines. Performance, creativity, science..., all possible to make a 386 machine work. Nowadays is all about libraries, virtualization, [bad] code over [bad] code over [bad] code..., I dont like it.
3 comments

I sometimes think that my mental model of a computer is still an Apple ][+ with 48K of RAM leads to my writing better code.
While I did a few 10 line programs in BASIC in high school on punch cards, when things really started was a freshman class on semiconductors. The class started with diodes and quantum mechanics, then onto transistors, then flip flops, then registers, then ALUs. Then it was on to designing/building a digital clock (which never worked right), and later designing/building/programming single board computers (6802 chip).

It was fun knowing everything about a computer. That's long gone!

And mine is a Commodore Vic-20 circa 1981, with 3583 bytes of free RAM. Programmed in 6502 assembler. Can't get much closer to the CPU than that.
For a very long while now, we had programmers who never understood any low level concepts at all. They have started with js or python, and never looked 'down'. There are no limits to monstrosities they will consider normal.

Linus Torvalds, a few months ago, said something to this effect when discussing AI coding tools. That his (also, mine) generation was lucky to have started with low level stuff and managed to retain the understanding of the whole stack - and kids these days don't get that. Good luck acquiring this level of feel for computers, algorithms, data structures today, when a kid's first experience with coding will be a seemingly genius chatbot.

>and managed to retain the understanding of the whole stack

No one understands the whole stack. There is too much specialized information.

Even assembly is a high-level language relative to what’s actually going on inside a modern CPU.
Ya sure, but diminishing returns there. Programmers these days lack the most basic abstractions - and don't understand how interrupts work and what is the main difference between parallelism and concurrency, or how to calculate the memory or computational cost of a given algorithm, because - chances are - they never implemented any algorithm to begin with. I'd say this is a bigger problem than not being able to brag about having implemented complex silicon :-)
I mean, depends on what one means by 'understands'. Here is my definition of having understanding of a full stack:

I am nearly 50, started with computers when I was 7. I did sort of everything -from wiring individual transistors together into custom logic circuits, assembly on various platforms, drivers and other kernel level stuff on dos and then windows, low level networking, higher level monolithic systems design, infrastructure management, various storage systems, various compute implementations, obnoxious types of software defined networks, security stacks - from hardware based attestation through identity/role management in multi-cloud environments, higher level distributed systems and finally i am a cto for a large-ish company and do a lot of enterprise architecture.

I also dabble in hobby programming on various things, building custom firmwares for chinese electronics, building frontends and backends for side projects, I have built a js framework or two just to understand state and rendering stuff, and of course now i am dabbling with local LLMs, because thats the new thing that can be learned.

I am sure there are lots of people with similar experiences in my age bracket (I am 48) - who had a lot of exposure to all levels in the stack. Sure, I was never particularly good with anything I mentioned, but thanks to a mix of diverse work experiences and absolute, uncompromising love of learning new computer things, I think I do have a fairly good understanding of what happens in computer systems, big and small. Now, could I design, say, a modern ELB properly, no, but I do understand the networking stuff enough to at least outline the design and key elements of the system without asking a friendly LLM. No such luck for kids these days, I am afraid - they will be actively shielded from having to learn stuff the hard way.

DOS and brilliant in the same sentence...