In queue, we push elements to the back. Right? So, we keep the pointer to the rightmost index and the leftmost index. Whenever we push, we put the element to that index and increase the index pointer by 1. Whenever we pop, we delete the element from the leftmost index and increase it by 1.
This is my belief on how queues work in general. Anyways, a Google search ay help.
Recursion seems like magic to many people in the beginning. But don't worry! Get a pen and a sheet of paper and draw a recursion tree for any example (Learning things yourself helps!). That should help. If it is still difficult, feel free to ask.
I think only Delhi has some coaching institutes for competitive programming. Anyways, Most of the people here learnt on their own and your child doesn't need to be an exception to this rule.