Mostly: I program in a waythat is oriented towards quick edition, I put stuff that are not needed every time inside groups to deactivate them, I use functions a lot, I love local constants (since it can help edit quickly while knowing what you are doing)
In most: organisation, keep your project clear, easy to read, to understand, but It should not be something that you force yourself to, it should become slowly but surely a natural way of programming, I can have a C2 base of 50 events just for organisation's sake (as a reminder, C2 counts variables, includes, groups, etc.. as events), functions are great with a descriptive name, for 3 things IMO:
-isolate some tricky events
-be more clear with less repetition (if your ennemy spawnage is create ennemy, then set it's angle, then set it's basic values, I am pretty sure It'll be clearer to say : Call function "Spawn" (Self.UID,..)
-do mathematic calculation (using the Function.Call() expression, Function.Call() will take the value of the Returned value of the function)
I've constated that the easier it is to read, the easier it is to edit, and to optimise