C# is my Blub. I use Visual Studio (and not Visual Studio Code). I also use some T-SQL and JavaScript, and sometimes C++ on the weekends. In all of these, my understanding is still rather shallow. And for my day job, and most of my hobbies, it works.
But there is a definite next level I haven’t pierced, the level of “real programmers”. I want to understand the code I see on GitHub, even contribute. I want to be capable of more. But it is hard when I can’t even tell what I’m seeing, when I’m just trying to Make It.
Keep the curiousity up and learn your Fundamentals - things that do not change that often and on which most of our tools and frameworks are built. Dive deep into OSes, networks - build your own TCP and/or HTTP server, assembly and the machine code - how the CPU and memory works? As well as some algos and data structures for sure. These few things cover most of it ;)
I think this correlates more to individual culture and interest in general computing than anything else. As you said yourself, the 'lost programmer' isn't curious, isn't interested in the details. They are interested in getting their specific tasks done and collecting a paycheck. Many may have ended up in a field they are not excited about. That's not something you can fix.
As an aside, it will only get worse as the technical implementations get easier. Probably a lot of AI generated SQL queries being put into prod nowadays.
True; but I would argue that even if you don't care that much, when things don't work as expected - you pretty much always need to understand your tools and/or the layers of abstractions that are below. If you don't, not only you're going to feel lost, but you will not be able to solve certain set of problems
Exactly; but, if you started from higher levels, it's never too late to go lower, step by step. I did exactly that and I highly, highly recommend doing it
On the other hand, if you have a 10-year-old who expresses interest in "computers", you probably don't want to teach him conditionals by showing him conditional jump instructions in x86 assembler. Maybe teach him BASIC instead of the latest trend in Javascript, but I think he would not be too comfortable or happy with assembler.
C# is my Blub. I use Visual Studio (and not Visual Studio Code). I also use some T-SQL and JavaScript, and sometimes C++ on the weekends. In all of these, my understanding is still rather shallow. And for my day job, and most of my hobbies, it works.
But there is a definite next level I haven’t pierced, the level of “real programmers”. I want to understand the code I see on GitHub, even contribute. I want to be capable of more. But it is hard when I can’t even tell what I’m seeing, when I’m just trying to Make It.
As an aside, it will only get worse as the technical implementations get easier. Probably a lot of AI generated SQL queries being put into prod nowadays.
We should probably learn CS from the least abstraction to the highest.
So that when the abstraction breaks, we know where to look to understand why.