RE: https://caneandable.social/@WeirdWriter/116346826982245032

Even among programmers the knowledge of how a computer works is largely missing. This means that code is often not optimised for performance. If you don't know how the CPU works, you're not going to understand the simple things you can do to improve your code's performance.

I worry when I talk to programmers and mention things like "TLB miss" and they don't know wtf it means.

A boot camp might teach you to code in 10 weeks. But it won't teach you to understand in ten weeks.

@quixoticgeek I have seen programmers who were totally unaware of the consequences of their code "just quickly" loading over a gigabyte of data into ram and then looping over it multiple times. They barely grasped how much memory they were using at all.
It didn't even get down to details like TLB misses, cache misses, or anything like that. Just basics.
@quixoticgeek I wonder how much of this dates back to the MS/Apple big push into education, biasing the curriculum towards using their apps, and ‘generously’ training teachers on the superficial.

@quixoticgeek I don't really expect most modern devs to know how modern CPUs work, because modern CPUs are fucking witchcraft. Performance optimisation at the sort of level where you actually need to know the CPU is a very specialist skill.

If you want to delve into the non-Euclidean horrors then I recommend https://xania.org/202511/advent-of-compiler-optimisation

Introducing the Advent of Compiler Optimisations 2025 — Matt Godbolt’s blog

Announcing AoCO 2025 - daily December posts about compiler optimisations

@DrHyde agreed. But simple stuff like understanding basic memory management and TLB and the like is IMHO just basic knowledge for programming.
@quixoticgeek even that is more than I would expect from a normal dev. Most of the slow code I see is because someone is doing unnecessary work most of which will be thrown away, or doing unnecessary I/O, or they're blocking on some response and just sitting twiddling their thumbs when they could be getting on with something else.

@quixoticgeek I wonder somewhat if the "GUI ALL THE THINGS" push didn't contribute to the shift. It made different kinds of things "cool" in the zeitgeist and shifted aspirations from "the most efficient X" to "the friendliest looking X".

They're really both worthy goals, we shouldn't really be picking between them, but the current tech culture definitely values one over the other by a really wide margin.

@gooba42 @quixoticgeek they don't even make good accessible things. Just things that satisfy the aesthetic demands of those who don't actually have to use it
@mgleadow @gooba42 quite. I got into so many arguments at uni during the UI design part of my course. They got so annoyed by my keep designing CLIs instead of GUIs.
@quixoticgeek @gooba42 we had a usability homework exercise to determine the overhead of saving a file in our text editor. I wasn't a vi(m) user at the time, but I was a power user of keyboard shortcuts, so won with "press F12"
@gooba42 @quixoticgeek I'd argue GUI the things is fine so long as all the things are in the GUI. Low density stuff with the detail hidden away is a trap!
@andygates @quixoticgeek No doubt, I'm good with a *good* GUI but the wrong people are impressed by just having a GUI at all.

@quixoticgeek i have a BSCS and I had to look up "TLB miss."

Of course, I do app-level development, mostly in a framework that encourages you to put all your "business logic" in classes where an instance represents a row in a DB table, and that will happily let you write an N+1 query without even warning you. So I'm usually just trying to get folks to think about network latency (not even syscalls!) in test suites with runtimes measured in hours... 🫠

@quixoticgeek While I am aware of stuff like TLB misses, cache line alignment and that relativlely basic stuff, I do still wonder how much this actually impacts performance. Most of the projects I write are not big enough to see a need to be optimized to this degree.
@commander__ depends on the program. Depends on the dataset you're using. Etc... knowing when it's relevant is half the challenge.