I will never not have to look up how to write a for loop in bash because it's just slightly off from what you'd expect as syntax, but close enough that it's familiar
I think about what it would look like without the ;
for i in a b c
do echo $i
done
and think that every line has to start with a command (also true for if and while).
Or just see do and done as { and }
See also https://unix.stackexchange.com/questions/306940/what-is-the-purpose-of-the-do-keyword-in-bash-for-loops … , TIL!