I think you touch on an important point here: there is the "it provides an income" side to programming but also the art and creative side.
The debate of whether everyone should learn to code is a difficult one. I personally don't think everyone needs to be able to code, must as much as not everyone needs to know plumbing; that said, if you enjoy the learning process, the skill can come in handy even if you only use it for small tasks and not as a source of income.
In my experience probably only 5% of the CompSci students, undergrade or grad school, really got it and were elegant and skilled at writing code or designing an architecture. The rest were just able to functionally regurgitate a learned skill if at all
The big debate is whether they functionally are unable to get it or if they just lack passion, drive and motivation. I'm undecided on whether programmers think differently or are fundamentally "special". I tried to find research on this a while back but couldn't find anything