This is my first post here so I will try to fit to how things work here.
François Rabelais wrote this sentence: “Science without conscience is the soul's perdition.”
The aim of a programmer is to deeply learn how things work and to be able to learn it fast. In my opinion, the best way to reach this point is to FACE the problem BEFORE possessing the appropriate knowledge.
This approach allows you to get way more knowledge from the course/guide/whitepaper because it will answer to many sub-questions had in mind. Many hackers use this method to learn tremendously complex things.