Tangentially related but that's something I've come to realize too as of recent. Asynchronous programming in JavaScript is new to me so as an exercise, I'm writing a document where I explain the concepts to myself and once I shifted from "how I understand" to "how I would this to someone else", figuring out a good enough scenario/problem harder.
Good problem sets that aid studets' intuition aren't easy to come by, oftentimes they're either too easy or too hard.