What I think is missing from most of these discussions is an acknowledgement that people, in general (including developers), learn differently . In this context : you're either comfortable not knowing, or you're not. What I mean by this : some of us are comfortable not knowing how X system works (temporarily, of course). Some of us can start building things with a web framework and gradually gain understanding from t…
Super duper high levels of abstraction are okay for beginners only because they don't know any better, and they are comfortable not knowing because they are beginners. It's fun to think that completionists exist, fun like believing in the tooth fairy or the little rat. Have you honestly finished auditing the linux kernel yet? w3schools punts nowadays and suggests using youtube for cross browser video support. High le…
I am weak on the hardware level. I know more than most programmers I've worked with, but embarrassingly little when talking with actual hardware people. I've done a little work to rectify this, but have miles more to go and I'm not sure if I'll bother.
I don't consider myself extraordinary in this regard, so people who know the stack at some level of depth is not all that surprising. I take it as a given that there are many people who know what I know plus hardware. Completionists aren't unicorns (at least not for any sane definition of it. No one knows a modern operating system 100%, for instance).
That said, knowing what the kernel does with sockets is not very helpful for writing a web page. In my experience the vast majority of benefit one gets from being 'full-stack' is knowing one level deeper than whatever they are working on.
If you are writing a performant web server it absolutely helps to know what the kernel does and if you are writing a web language framework you probably ought to understand how the web servers you rely upon generally work (for instance, threading models, etc). You usually don't need to know two levels deep very well and almost never three levels deep. Usually the intervening abstractions are complete enough that those details eventually get papered over into something else.