"At some point, the learning stops and the pain begins."

Attributed to S. Rao Kosaraju, inventor of Kosaraju's algorithm for finding strongly connected components in a directed graph.

When it comes to coding interview practice, if you are stuck on a problem, banging your head against the wall until you figure it out is not worth it. We recommend timeboxing each problem to, say, 45 - 60min, and then looking at the solution.

However, don't jump to the next problem immediately, either. To maximize learning, spend a few minutes reflecting--and writing down--what you missed and what you can do better next time. Over time, these reflections will give you a good idea of your blindspots and what to focus on.