I think there is a chance you need to work that way. Since it is not definitive you will be working alone there is a high chance you need to work with models where you don’t know what it will do. library’s often work like this.
Also the beauty these lessons show is that design and functionality are completely separated as it should be. A program should still be able to work fully without any visual representation.
Also a visual representation should work without a program behind it (of course you would need make-up data).
All it should do is talk with each other when something has changed.
This idea is based on the MVC architecture.
Most of the times it is not needed to know what is happening in a function you use. Knowing what will come out of it will be enough to use it. Take for example Math.random, I still have no idea what is happening in that function but boy have i used it.
I don’t think this is the case. In a real project these things have nothing to do with each other. A designer knows what kind of data will be shown so they make a design around it, this does not mean the data already exists. In the mean time or way after the design is ready the functionality of the project can be made.