I don’t want to sound like the fifth Yorkshireman (ref), but here’s my take on the topic of “There isn’t but a crooked path towards PS development enlightenment—YET”
Very bad choice, but back then there wasn’t better alternatives than generic old books made of trees. Besides having difficulties moving my first steps with coding, I couldn’t grasp this DOM concept, mostly because learning JS in the context of a Browser and trying to apply this precarious knowledge onto the Photoshop DOM was overwhelming to my younger self.
It may sound silly now, but in a pre-Node.js era, a JS engine independent to, and disconnected from a Browser environment was a very novel concept.
Do you want to do this? You’ve got to know that first. Wait, that? Well, there’s this other thing that it’s build upon. Go learn it and come back (ad lib.)
Anyway, as soon as I got my toy project done in Flash, one Steve Jobs wrote a certain letter and presto, CEP landed. HTML, CSS and JS (which are possibly now taught in preschool) became my nightly companions—I’ve always been a PS retoucher, so I was spending my days using PS instead of programming it.
Things were slightly easier then, because I had a decent grasp of ExtendScript, and my only worry was to conquer CEP (Chromium + Node.js, two techs at the price of one). It took me a while, but by Jove I eventually got it.
UXP came along, and I was already familiar with the notion of environment (UXP) API vs. host application (PS) API, and the need to integrate them. Same old riff, you’ve got to learn at least two things (if not more, in case you aren’t fluent with the languages involved). At this stage I felt more comfortable, and I was able to deal with it if not effortlessly, at least with a manageable amount of work. Still, the feeling is that one is constantly circling over the same concepts like a vulture, hopefully with a deeper understanding each time.
Please Adobe don’t change anytime soon because I’m now in the descending part of my brain’s performance curve
As it’s clear, I tried to do my best to provide the kind of learning material I wish I had when I started. The tradeoff for me is that I’m not full-time on writing (plus I’m slow, as a non-native speaker proofreading takes more time, etc.) and I had to make choices. As an independent author, my reach is limited: I’ve done UXP/React, I’d like to work on UXP/JS. I did PS Scripting (ExtendScript), I’d like to rewrite a second edition (modern JS).
The official documentation has improved over the years, and the people in charge of it are truly committed, but it’s still lacking in providing learning paths, and more generally speaking, the kind of glue that infuses sense to all the scattered parts and turns them into a bigger something that has a master plan behind. Or at least this would be my idea of documentation.
It goes without saying that I’d be glad—and I’ve offered—to help; although, I don’t know if you’ve noticed, we’re living a post-pandemic, hot war, high interest rates, mass layoffs, spending cut, big tech reset era, so it might not be the best of times to get resources for such things.