To be honest, I've learned a lot from C2, by thinking "how I would do this If I were to do so" about the behaviors.
Other than that, I was once a student on Sciences and technics of laboratory, mostly based on physics, and later more into how human can perform and transform things with devices, that leaded to how objects react to gravit, how fluid works, etc.. and also computer related stuff (like how do I control a devices ith a command, via a graphic based language)
So C2 wasn't really a problem since I've already had to understand the logics behind this concepts:
-Why coding the same y is good, not only for myself
-Why comments are great
-How the world works, more like how to find ways to interpret how it works
-What a computer understand, and how it translate things (the float-rounding errors? yeah, that too)
-Also some experience with a graphic-based language so I haven't any misjudgement about that too.
C2 helped me to understand how games truly works.
At the end, try to understand what you need to do a game, and what tools are at your disposal to help you, because I will never say it enough: keep it simple to read and understand, every coding language offers tools that can help you, you can even create your own, see what you need, then if it is present, or if you can do it, if so, try it (without things that doesn't makes sense if possible).
What do I need to apply gravity like earth?
-to move an object at a direction
-to increase this movement in a regular way (gravity is a constant acceleration)
-To stop my movement when there is something on my way.
So how do I know if there is something on my way? (etc..)
at the end (and also for tl;dr ones): making a game isn't about coding, it is about translating an information to the computer, but most people I help sometimes want to do this directly, It is more like:
What I want -> What logics behind -> translations of the logics -> Optimisations & Standarisation so it can be used easily in the future.
EDIT: going a little offtopic, but I think it is still a good way to process for every tool