Some of the main data types in programming are:
binary (true/false)
numbers (usually with separate data types for integers and for inexact real numbers)
strings (typically put in quote marks, like “hello”)
arrays (basically lists)
hash tables (key/value stores)
symbols (kind of like names for internal use)
In some languages, when you create a variable, you have to say what type it is. Like:
integer x = 3
In ruby you don’t specify types and you can (but usually shouldn’t) switch a variable to a different type.
x = 4
x = 3
x = "hello"
x = :symbol
You can keep changing what x is, including to different types.
Similarly, some languages make you specify data types for function inputs and outputs. Ruby doesn’t.
Ruby has introspection features where you can ask questions to your data, e.g. what type it is.
Hashes (key/value storages) work like this:
Both the key and value can be any type, and they can be different types than each other. In some languages, all the keys would have to be the same type, and all the values would have to be the same type.
Play around with this a little. If it doesn’t make sense, look it up some. I’m giving very brief explanations so it’s totally understandable if you need more information.
Look up and play around with arrays (lists) a bit.
Ruby also has functions for converting between data types.
The to_a function can convert a hash to an array, and to_h can convert an array to a hash. Try those out. You’ll likely get an error message at some point and need to look up how to use those functions successfully.