Well, that certainly sounds like a coder’s point of view… If your goal is to learn coding, then perhaps the first statement is true. Reducing architecture to just solving some kind of equation with multiple variables is however a very limited view and quite open to discussion. And i would say that most people don’t come to Rhino to learn coding. They come to design and build stuff.
My personal opinion is this: Rhino, scripting, Grasshopper, scripting in Grasshopper (in that order). Why?
I often see requests from people wanting to learn Grasshopper but not necessarily Rhino. I have never understood this, because Grasshopper is simply programming Rhino’s native geometry engine, and if you don’t understand how that works, you will always just be connecting a series of black boxes without understanding what they are really doing inside. You want the instant magic show and don’t really care about what the illusionist is doing behind the scenes.
So understanding how Rhino and a minimum of how its NURBS engine works is for me essential. Afterwards can come the automation.
Why scripting directly in Rhino before Grasshopper?
Because it will teach you more about how to program. Grasshopper’s script components already have a bunch of semi-intelligent automation built-in - stuff that is invisible and again works magically - but since you don’t see it, you never learn how to do it yourself. (I am also always surprised that a lot of people don’t even realize you can run scripts directly in Rhino, they think the only way is via Grasshopper)
Learning scripting directly in Rhino first gives you the understanding of the basics of programming - variables, loops, conditionals, etc. as well as a lot of the geometric function calls that Grasshopper components call behind the scenes. The built-in automation of the GH components isn’t there and won’t get in the way of your learning experience. You interact directly with the Rhino document or application.
After that follows Grasshopper first using native components - it’s a visual extension of scripting, you will already understand what the components are doing, and there you can begin to enjoy the in-built intelligence provided by the components.
Lastly, scripting in Grasshopper to extend the range of your power by being able to create your own custom functions.
That is, of course my personal opinion… YMMV.