Before today, my knowledge of macros as a concept roughly covered the fact that they existed, and maybe what they are on the broadest level. I think that in Alteryx, the definition that helped me the most as a beginner is that macros are used to make a sequence of tools available to us as a 'single instruction' (or in our case entering one 'macro tool' into a workflow instead of all of said tools). By doing this, it saves us from having to manually configure things repeatedly when they could be done automatically. After one day of being taught macros, I don't think I'm qualified to teach anybody how to make them, but maybe I can try to successfully document the different types.
We covered three types of macro: Standard, Batch, and Iterative.
Standard Macros:
A standard macro runs from an input to an output once, allowing us to apply some logic to a certain part of our workflow.
Batch Macros:
A batch macro allows us to split our incoming data into separate 'batches', allowing us to automatically use slightly different logic on different parts of the input. To me, this seemed immediately familiar to how a 'for loop' in python or javascript would allow us to execute a set of statements over a sequence, depending on our desired outcome.
Iterative Macros:
If batch macros are akin to 'for loops', then iterative macros can be compared to 'while loops'. The macro will continue to run until a predetermined criteria is met, or the loop has hit the maximum number of iterations we decided to let it run for.
In conclusion, even after a single day of learning macros I can see how powerful these macros can become in a workflow, but it'll take me a bit more than a day to actually be able to confidently use them myself!