I understand where you're coming from, you appear to have the ability to relate to images on your own terms, nearly completely. I do not.
I have at all times, "two sets of books" or "two maps". Unified by a singular Duty that limits what I can and can't do. My imagination is tied to imaging the next step in my 'journey'.
(something like that anyway, it has subjectivity built into it).
I cannot dump relations to random ideas, I have to understand the 'background'/'whole scene' to clear out the clutter of my imagination and keep my two frames of reference, clear.
The actual dutiful work of computer use is not that terribly difficult intellectually, it is often the kind of flower-arranging drudgery that I used to enjoy a lot in my 'youth' (lol im not that old).
I can understand one set of technologies C/C++ buut the bugs and face-slapping error chasing in programming really begins to wear quite badly.
The only way I can really program is to submit to 'someone else's ruleset' that I don't like or agree with and then endure grinding my way to how I mean it to be, based on my sense of subjective expectation and structure, hand-tied to my categorical imperative. It is possible to make elegant and powerful code like this, inside a company structure.. with uninspiring code architecture, set from the top down.
Buuuut whenever I imagine some novel technology that gets me excited, I can make shallow prototypes of the idea in existing tools and inevitably find that I need to rejig/rework the tooling to get my idea out there. And often that means editing a second set of tooling.
And every single time I have started and attempted this project, it starts off rocky-and-okay, the middle part is absolute hellish grind fighting the system and then the end is a complete drain of all my emotions and an inability to finish, leading to an internal frustation with wasted time.
Then the technology tooling all changes and I have to re-process my understanding because the semantics in the new tech stack are different to the last.
The reationships between ideas are the biggest, slowest chore that wears the most. The concepts in new languages are not terribly interesting, as most are re-arrangments of the same old music...
Every single programming language is set up in such a way that the "glue" between all the concepts, is held by an insider 'brotherhood' of experts. The documentation for plebs tells you one specific way and if you fall off the documentation's instructions, then all other ways are pain and time-wasting death. A simple map of relationships between concepts would save so many man-hours globally, it is insane (but I digress).
The devil-in-the-detail level bugs and jankiness is something only an American man with infinite pleasure - to keep his head cool and his fingers typing - could tolerate.
I'm honestly getting to the stage where I think the only reliable way to make new code, is to control the hardware from the bottom up, and do the software from the bottom up.
Every single middleware provider is another layer of shifting maps, that I have to war with, to make some new tech that works from top to bottom.
And then I'd have to release that code into an environment where my competitors can open up my assets and copy-paste out the novel bits into their own products (or minds) and jiggle the appearance of the code enough for it to look like they made it. I simply cannot do that. It is not allowed under my rules and I have the scar tissue to prove that I can't overcome my own 'programming', my own Duty.. in that regard.
Programming.. I don't think itma for me, even though my novel concepts would make a difference. The industry is just hostile for people who 'think differently' as it is colloquially said to be, but I really mean, the industry is not for people who have a subjective structure they wish to provide as a gift for organizing knowledge.
The "shape" of programming is to be that Shelf on the factory floor that everybody wars over the ever-changing maps on the Shelves. The maps fail to provide coverage of the entire, ever-changing factory itself, and are constantly updated and their meaning constantly changes.
I can not.