I can relate to some of these things in a way. When I was 15 I tried to teach myself TC++. I got hung up on pointers and thought that I just wasn't smart enough to understand them. Many years later I had somebody who helped me understand pointers and I realized that I just wasn't interested in learning past that point.
I had kicked myself many times for not following through on learning TC++. I thought that I was too dumb to be a programmer. Turns out I just don't want to be a programmer! Sure I can bash script pretty well and I can knock together some PHP to do something if I absolutely have to or even a little python, but I only get out those tools when I neede them to accomplish a primary goal.
It turns out that I'm quite good at writing, teaching, and identifying areas where specific tools can help the people who I am teaching. So I write, teach, and build tools as needed.
And just because I do them in bash or do them poorly in Python doesn't mean that I'm bad at programming. It just means it's not where my strengths are and that I focus on what I am good at and love doing.
I guess what I'm really trying to say is that you aren't a bad programmer. You're just better and more interested in something else and you need to figure out what that thing is and pursue it and put programming on the back burner as a superpower as was mentioned in the previous comment above this one.
Actually, I think this might be an interesting thing for the OP to look into in itself.
Since in my experience, people's interest in any field tends to fall along a spectrum between 'does it for the art/sake of it' and 'does it to achieve a certain goal'.
If you're the latter, then of course you're likely to struggle with a lot of tutorials, since you don't see the value in the end result. Why would I learn about some new code organisation setup to build this dummy notes app when I have absolutely zero need/interest in a notes app? If you're that kind of thinker, you'll struggle to maintain interest in many tutorials simply because there's no real payoff for them beyond 'build some useless crap nobody needs'.
Ad it may explain the lack of interest in work too. Some people just cannot enjoy working on things they themselves have no passion for. If that's the case, the OP may be best served by looking for a company that is working on something they have a personal interest in.
As said, that doesn't make for a bad programmer (or a bad anything in any field). It just means you've got a different incentive structure to people who create stuff for the sake of it.
Someone else in this thread mentioned therapy and that has helped me immensely in this pursuit but.. It also helps to relate to other people in the same situation.
May we all feel some peace!
There is some level of cognitive maturity required to understand new ideas. I understood pointers somewhat from school, but it really made sense to me once I learned about computer architecture in more detail.
Sometimes you need to see the whole picture to understand why an element is present there and usually that happens only if you stay long enough with a problem/concept.
This is probably why many programmers are uninterested in your chosen field of teaching.
TLDR, isn't "disinterest" often a cognitive bias driven by some subconscious estimation that we're unable to do something?
I think this affects everyone, a lot.
TL;DR I think disinterest is driven by a combination of capability and soul AND (sometimes very loud) outside influences.
Lots of people work as software consultants. It's really no different from physical trades - you know your tools, people come to you with problems, you solve them.
I do think a big factor is choosing what you work on though. It's a lot less fun if your projects are dictated to you, unless you happen to really enjoy your field.
I think this is unnecessarily controversial. "Rarely to anyone" needs evidence. Plenty of happy programmers around.
I get your (or Zed Shaw's?) point though. There's nothing wrong with wanting to be a programmer, but programming for the sake of programming is a fast way to get bored or to burn out. Programming is a tool. It doesn't hold inherent value without being applied to a particular problem. So find problems that you would like solved, or at least find out what sort of problems you enjoy solving.
"... programming for the sake of programming is a fast way to get bored or to burn out."
That's exactly right.
Good way to put it. Programming is not a end in itself, it's a tool like many other that we use to navigate the sh*t called life.
And maybe "programmer" is the problem. Be a _____ who can also code. Zed Shaw said it best in the final pages of learn python the hard way. Programming as a career is rarely fulfilling to anyone. But being a teacher/doctor/librarian/entrepreneur/warehouse worker/farmer/etc. that can code is a super power.
I'm basically talking to myself with this pep talk so I appreciate you bringing it up but.. let's both go find the thing that we like and apply programming to that thing!