OpenSCAD is a declarative language, which can be confusing for people used to imperative languages like C++, Javascript, and Python. That means that there are no true variables or loops. What looks like variables aren't variable, and what looks like loops are unrolled by OpenSCAD. One good thing about OpenSCAD is that there is a huge amount of example code on the internet. Another good thing is that it is a pretty limited language; there isn't that much to learn compared to other languages.