Hitting walls while learning - what helped you overcome them?

After reading this thread here I thought a bit about how it’s pretty common for people to hit a wall at some point while learning how to program. It’s a new concept, it feels like a huge jump and it seems like nothing that came before has prepared you for it. You run against the wall a few times but the concept doesn’t want to sink in.

I think some of the most common walls that people hit are concurrency and pointers.
A big one for me was recursion. I just couldn’t grasp it, it broke my brain. I sadly can’t remember how I eventually got over the hump (or wall), but I can remember how a co-worker took some pieces of paper and walked with me to a staircase , simulating the stack by laying down pieces of paper on the steps. Great effort, but it didn’t help at all :smiley:

What where your walls and what helped you overcome them?