Hey @Ouzo69,
Apologies for taking so long to reply to this post of yours
Yes, this is great — the fact that you’re thinking deeply about the different concepts, and how to explain them in your own words so they are meaningful to you, is a sure way to progress quickly and effectively
Often, different programming concepts can be explained using different words and terminology. The most important thing is that you understand what is really meant by the explanation, and express the concept in words that are meaningful to you (as long as it’s accurate, obviously).
I agree that the explanation:
“And arrays are variables where you can store multiple instances of a variable.” takes some thinking about, and maybe isn’t the clearest of definitions, but I think the term variable has been used because each element in the array has a value (which, as you say, must all be the same data type * ) assigned to an index (an array’s equivalent of a variable/property name).
Your definition works too, but if you are just referring to the values stored in each element, then I would use the term values instead of instances. To me, the term instance suggests not just the value, but a value assigned to a name (or identifier, or index).
But, if changing the words helps you to internalise better what is actually happening in practice, then that is the main thing
Keep up the fantastic analytical thinking!
( * note that this is true in Solidity, but in JavaScript arrays can contain values of different data types, although it’s definitely more common for them all to be of the same data type).