Open Question: What Does it Mean to Understand a System?

I recently began working on a new app. It’s one part design tool, one part programming environment, and lots more too. But at its core, it’s a medium for creating, thinking with, and understanding complex systems. Of those goals, understanding a system is probably the most important, but murkiest to me.

What does it mean to understand a system? Is it the same thing as “reading” a system? How do you go from not understanding to completely understanding one? What does the threshold look like?

That’s just for a single system, so how do you generalize these principles to all systems? What does it mean to be “fluent” with systems?

I happen to have a few ideas on how to answer these questions which I’ll post in the discussion section below, but I’m curious to hear your answers too. Please feel free to use examples, to link to papers and books I should look at, etc. I’m really curious how you think about this topic.

Speed of Light