We replace verbosity - since these tools are usually way more expressive than the thing they abstract away - with a new abstraction layer that allows us to type much less stuff but at the same time introduces a completely new cognitive complexity layer.
As always; sometimes they give more than they take, sometimes not ;)
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.
What actually happens with these people is they are pragmatically cargo-culting - because it helps them achieve some other aim, like delivering business value - until their abstractions leak and they have to go uncover the truth.
People grow and learn when they need to :)
Nothing wrong with delivering business value - that's what mostly software is about after all; here, I am talking about pure incompetence and a certain approach that only reinforces it
That’s not how you work and it’s not how people work. It’s not how anyone works. Give others some credit.
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.