upvote
A better analogy is that software dev is more like making the rug making machine. If you were doing that, it would be useful to be intimately familiar with precisely how rugs are made, and you might want to make a bit of one by hand in order to get that experience. Then when you design the machine, you use gears, 4 bar linkages, and other mechanisms that you are already familiar with because you carefully studied those concepts earlier, likely with some hands-on exercise. Then you draw a design, simulate it, and send it to a machine shop and can possibly never touch the machine itself (although I think in practice these kinds of bespoke first-gen machines need debugging after manufacturing).

I.e. in order to get to the point where you didn't have to manually touch this thing, you likely did have to learn deeply about its underlying concepts by manually doing things.

Operating machines doesn't always have the same phenomenon. E.g. experience with a hand-powered drill is unnecessary to use an electric drill.

reply
> the only difference is what data and business rules

The "only" difference? Wow.

reply
Database, API and Frontend are tools and generic raw material that need to be whittled down into the final shape.
reply
for all the CRUD apps out there, which are not the full set of software programs
reply
Most of the software which was the same thing has been abstracted already in CRM, WordPress, content builders, website generators...

What's left is a lot of very different software which have very few things in common.

reply