The best way to understand programming concepts is to use them.
I would argue that one cannot say they understand a programming concept if they can't use it.
Indeed, if someone claims to understand recursion in theory but can't apply it in practice, then they did not understand it at all.