The trick that helps me is to do a iterative deepening learning. For example when you are reading a long book on a complicated topic, don't try to study every chapter perfectly before you move on to the next chapter. Things will fall off your head pretty quickly anyway. Instead, I would quickly skim through the book, get familiar with the main ideas and concepts (but not too deep into the details). Then on the next iteration I'd go deeper. You'll find that some chapters will require more iterations and some not. Also try to identify the important parts of knowledge that you need to learn and focus on that.