Once you understand the basics of programming you can apply them to any language so the problem becomes the syntax they use and really, if you focus on learning that on a "need to know" basis you can be productive even without being fluent by using a "copy-paste-configure" approach.
The end goal is to produce something so, in short, it's smart to leverage that huge body of work and, in fact, clearly wasteful to ignore it.
Before I wrote code I built custom cars and the process is really much the same. You know what you want but there is no book of directions on how to make it and nothing else out there is quite like it so you just start making it and keep working on it until it's done.
Every app is essentially hand built and every builder does it a little differently. It's pretty much impossible to structure that process because that limits the potential to build something new and different.
What has gotten a lot better over the years is the off the shelf parts we can bolt together and get started with. It amazes me how much code I depend on to make an app and how many features it provides.
That's really the fun part of it.