Compression. The more you can simplify what you're trying to learn the better.
Here are some ways to do it:
Breaking concepts into parts and only focusing on understanding one small part at a time. This acts as a 'foothold' for understanding the entire concept, similar to how a foothold in a mountain helps you climb part of the mountain.
Identifying and then ignoring irrelevant parts of the concept (trimming the fat).
Analogizing the concept (or the small parts of it/footholds) to concepts you already know.
Of course there are probably more ways to compress a concept. If someone knows any please do share.
The idea is to work with small concepts in your 'cache'. If a concept is too big you won't efficiently learn it, especially if your short term memory is bad like mine. So, you can break it down into smaller parts and learn each of those, and then combine them at the end. Or you can point to a concept you already know that is in your long-term memory (analogizing).
I'm not a drummer but my most inspiring example of picking up concepts is this video  of Larnell Lewis playing "Enter Sandman" by ear for the first time. Note how his vocabulary helps him learn the form of the song and its nuances.
Software-development speaking, I feel you, I'm also slow at reading requirements. But I'm slower if I start with over-generalized use cases, rather than going through concrete scenarios.
Yeah the requirements thing I usually have to be absolutely sure I know what they want me to build, sucks having to backtrack. At least when you have like requirement ids and definitions/drawings... that helps out.
I think knowledge be gets knowledge so the more you know the faster it is to pick up new things. I think that's why people that read a lot are able to understand new things rather quickly.
So, if I were you, I would make a list of subjects that are interesting and select books that are fundamental to the subject. Example, if you want to understand calculus then you better have a good grasp of math, algebra and trig. Learning by memorizing is only part of the answer. It's hard to advance your knowledge if you don't understand what you are reading. So you have to take the time to make sure you understand the subject by taking the time to answer problems.
If you want to be quick at understanding interfaces then take the time to understand how they are designed. Overtime you will be quick to pick up new interfaces. There are no quick answers. You have to put in the work.
Yeah and I don't mean like a easy way out or cheat or something. I just don't know if something is wrong with me or what, when someone's spitting stuff and I'm not able to immediately pick it up. But yeah having some subject matter knowledge helps.
But the rote thing, what I write down isn't even legible, it's just the time/process of writing it physically helps me remember and it seems like a bad habit.
i truly believe that when you have a large enough "vocabulary" ( and languages in general are fantastic for that, foreign languages, programming languages of different paradigms ) the better you mind can grasp new concepts.