To each, their own. To deeply understand an area you have to learn it from bottom up.<p>I learned BASIC as a small kid, using a clone of ZX Spectrum. I was aware that the memory was limited and that I can poke and peek a memory address to set or retrieve the info.<p>I learned Pascal and then rapidly went to C and C++. I learned about pointers and how the memory is layed out and what are system calls.<p>I learned about CPUs and I learned some X86 assembly.<p>Ar the university I learned about digital circuits and how to assemble one using logical gates. Of course I learned much more, data structures, algorithms, operating systems, distributed systems, parallel and concurrent programming, formal languages and automata theory, cryptography, web, lots of stuff.<p>I learned other lots of stuff by myself.<p>I've built desktop apps, websites, software for microcontrollers, games, web applications and now I am working on microservices based apps running in cloud.<p>I was a junior developer, graduated somehow to senior. I worked as a software architect and now I am a team leader.<p>These days I work almost exclusively with C#, but I am also interested in other languages if I have some spare time to evaluate them.<p>What I want to say is this: is not enough to learn the highest level of technology of today. Today that is AI, few years ago it was JS frameworks, more years ago it was Java, .NET, Python.<p>To be good at what you do you always have to learn all layers under the current top layer. Learn from bottom up. You don't have to be good at every technical detail, but you have to understand at least how the things work.