I'm glad it's not just me who has noticed this!
I'm glad it's not just me who has noticed this!
If you know the internals, the complexity of a lot of middleware kind of collapses, too. There are a million frameworks for doing threading, for example, but they basically all boil down to clone, a futex and some atomics. Similarly, you can figure out how almost anything works with strace. It demystifies so many things that you otherwise need years of experience to debug.
As a practical matter, you can always find a job as a competent DevOps type who can code and talk to SWEs.
I want to work my way through computer systems a programmers perspective :
https://www.amazon.co.uk/Computer-Systems-Programmers-Perspe...
https://www.brendangregg.com/linuxperf.html
If you prefer physical books “Systems Performance” by Brendan is good as well.
As the sister comment says, Linux Programming Interface is really good for learning linux system programming topics but it is mostly focused on user space.
For more userspace stuff I like Chris Wellons‘ blog at nullprogram.com
I recently had an example of this higher in the stack than anything you listed: A co-worker couldn't install node_modules because yarn appeared to be running an older version no matter what he tried to upgrade it - turned out there was a hidden config file in his home directory none of us knew about that could tell yarn to use a different version of itself.