Self taught dev here, I completely agree you miss the boring details...at first. One day (hopefully early on) you realize algorithms, data structures, data alignment, etc. are actually pretty important when building larger or high performance systems, or when targeting underpowered hardware. At that point the self-teaching resumes and you pick up all these pieces too.
When I started tinkering with Ruby on Rails I never thought one day, in a different context, I would need to write a hardware-specific, custom binary (de)serialization protocol. Then it happened.
I basically had a grab bag of shell, python and ruby stuff that I learned how to do over my first 5 or 6 years in the industry and then saw an article about Haskell, tried to learn it and realized, I don't actually know _what programming is_, and then spent 10 years teaching myself all the computer science stuff that I missed from not having a degree.
I still don't know Haskell, but it was a valuable learning experience anyway.
I got hooked in a similar way. Wrote an Excel macro to automate an operational thing I did in my real job, and then asked myself, "Wait, how did that work?"
My experience as a self-taught dev too. I managed to get employed as an SE without a real computer science foundation, but then I just kept teaching myself details of networking, operating systems, memory architecture etc. and learned other topics as-needed.
When I started tinkering with Ruby on Rails I never thought one day, in a different context, I would need to write a hardware-specific, custom binary (de)serialization protocol. Then it happened.