Most efficient way to learn mathematics So there's a lot of advice on how to learn mathematics most efficiently, and it mostly revolves around doing problems, asking questions, and considering all possible generalizations. However, I was wondering if it was actually necessary to read a book? I find that I often learn much more through classes than self-studying because I'm forced to do many problems, and get feedback on my solutions. 
Thus, would the most efficient way simply to immediately work through the problems in a section without reading, and only read when it is necessary to understand the problem? For example, read a problem, then go back to the section just to read the relevant definitions and theorems/propositions that could apply to the given problem, rather than having to read the whole chapter?
In that case, while reading advanced topics books or research papers that don't have exercises, one would have to make up their whole problems, so they'll have to read through the paper carefully. But when one goes through pedagogical texts to learn the rudiments of the field, is it necessary to read through the chapter? Or would it be more efficient just to spend the whole time thinking and doing problems?
My main problem with reading is completion. If one finishes a book, how would one know where to look for information that was not covered in the book? It'd be a waste of time to re-read another book on the same topic at the same level, but it may contain some information that wasn't covered in the original book, which one wouldn't know of if one hadn't read it.
In particular, I feel that it's almost impossible to retain almost anything when one just reads the chapter. It feels like doing the problems is the only way one can remember anything in the long term, and so are there any advantages/disadvantages to doing this? Or is there any even more efficient, specific way to learning mathematics?
 A: My first suggestion is that you should get used to using mathematics you don't fully understand. I know it seems contradictory, given that you are asking how to learn and not how to use, but there are reasons for doing this.
Even mathematicians don't understand perfectly every aspect of the mathematics they are using.  Although some may understand the foundations of their field, they often have collaborators and colleges to help them use or understand mathematics that are outside their field. You should learn to work with collaborators and colleges that understand the mathematics you need and can offer you the right help and support in those areas. It is often better to ask somebody for help rather than struggling with what you don't understand.
As you get used to using mathematics in your daily work and in the paper you are reading, you will start to notice what comes up frequently, so you can decide what is worth your time and what isn't. It is important that you decide how far back you should go when it comes to retrospective learning. You should have a clear view of your objectives as an engineer and the time you have available.
Again, you should get used to using mathematics you don't fully understand. For example, suppose you want to learn the mathematics related to signal processing used in a recent paper you are reading. It is okay to get a book on signal processing to study from and do some exercises, but it's not okay to go back to calculus and linear algebra books to read them all and do all their exercises before reading the book on signal processing. If you need help with linear algebra, it is best to Google it or ask a question here.
So, now you just need to decide what is the most important mathematical topic for you career and start studying it. :)
