I find a common error when reading technical books is to focus on understanding everything deeply the first pass and going through all the exercises. In my experience this quickly leads to burn out and you give up on a book half way through.
Don't get me wrong, doing the exercises is important and (perhaps) essential for learning a subject, but the key is not to burn out too quickly. Very often some of the best and most important material is in the latter part of a technical book. So I recommend reading them like technical papers: in multiple passes. If you at least superficially read through the book cover to cover at the very least you'll have a map of the territory. Additionally, it's often the case that more advanced topics in a book give you insight into why the early topics are truly so important.
And while exercises are good, you'll learn even faster if you find a practical problem you want to solve related to the material. Most people on HN will say that you must do all the exercises or you can't possibly learn. But I've found the best tactic is to read a technical book until you hit something that scratches a personal itch. For example, maybe you'll be reading a book on deep learning and then late in the book come across a section on latent factors, a problem that you're interested in and didn't know about. Even though you skimmed most of the book until this point, if you want to implement this model you have to go back and really learn all of the pieces you need to build what you want.
What if you never find anything that really clicks with you? Then you're probably better off just skimming the book for now. The key part of that is "for now". Suppose you read through a stats book and nothing piques your interest, but you come across the idea that there is some way to run a test such that you control for variance between two groups. We'll perhaps in 5 years you'll come across a problem that requires you to do just this! Because you skimmed the book you'll at least know "statistics has a solution to this problem!" Then you can go back and really learn how this solution works.
Personally I recommend against doing every exercise in a book until you need to understand that material to solve a larger, more practical problem. The best way to learn anything technical is to solve a problem with it, but you can't solve a problem with a technique if you don't even know the technique exists, so keep reading!
One thing I learned (or maybe realized?) about math books especially is that they all follow a similar structure: a topic is presented with some proofs, followed by some sample exercises worked out step-by-step, followed, of course by practice exercises whose answers are available in the back of the book. One thing that helped me retain a lot of the material was to try to work the sample exercises on my own without looking at the author’s step-by-step instructions, just based on the description the preceded it. Once I was finished, I compared my work with his - I often found myself catching important concepts that way that I would have glossed over if I had just skimmed over the example.
I have a theory that I've made up for being not particularly quick by just throwing time and effort at the problem.
Get the book on your phone, and just read it every now and again and if it doesn't make sense, try to use it as a detailed study plan e.g. Many compiler textbooks emphasize the importance of instruction scheduling without necessarily teaching it very well, but now you know that you need to understand instruction scheduling from somewhere.
^ If I'm learning a new topic I'll usually grab one famous book and two more modern one's and alternate between books if something is vague/confusing
At the end of each chapter/section, write a one page summary, in as simple language as possible, to teach a hypothetical new student what you just learned.
Even better if you can then compare what you just learned to other things you know to clearly separate them in your mind.
What exactly is your problem?
Comprehension or remembering what you read?
If it is comprehension then I would suggest picking up better book and/or a dictionary. For remembering what you learn. Practice!
what also helps with a technical book is to refresh what you learnt yesterday in the beginning on a session. You will remember things better and load the context.
Don't get me wrong, doing the exercises is important and (perhaps) essential for learning a subject, but the key is not to burn out too quickly. Very often some of the best and most important material is in the latter part of a technical book. So I recommend reading them like technical papers: in multiple passes. If you at least superficially read through the book cover to cover at the very least you'll have a map of the territory. Additionally, it's often the case that more advanced topics in a book give you insight into why the early topics are truly so important.
And while exercises are good, you'll learn even faster if you find a practical problem you want to solve related to the material. Most people on HN will say that you must do all the exercises or you can't possibly learn. But I've found the best tactic is to read a technical book until you hit something that scratches a personal itch. For example, maybe you'll be reading a book on deep learning and then late in the book come across a section on latent factors, a problem that you're interested in and didn't know about. Even though you skimmed most of the book until this point, if you want to implement this model you have to go back and really learn all of the pieces you need to build what you want.
What if you never find anything that really clicks with you? Then you're probably better off just skimming the book for now. The key part of that is "for now". Suppose you read through a stats book and nothing piques your interest, but you come across the idea that there is some way to run a test such that you control for variance between two groups. We'll perhaps in 5 years you'll come across a problem that requires you to do just this! Because you skimmed the book you'll at least know "statistics has a solution to this problem!" Then you can go back and really learn how this solution works.
Personally I recommend against doing every exercise in a book until you need to understand that material to solve a larger, more practical problem. The best way to learn anything technical is to solve a problem with it, but you can't solve a problem with a technique if you don't even know the technique exists, so keep reading!