I like to break down need of understanding into a few categories:
- no need to memorize or understand (some domain specific and infrequently-used portion of the API)
- memorize and understand later (it's better to just continue and get a holistic picture than to get off into the weeds analyzing how some framework magic works)
- you should comprehend this fully before continuing (general and recurring patterns for structuring your code)
Well, sure. You have your luck as determined at conception, your luck of upbringing, and then your luck as an adult. They're all luck-based, but qualitatively different.