There are three aspects to learning math, which each benefit from a different learning technique:

1. Memorize definitions. Flash cards are a good method of memorization, but this might not be sufficient. More than being able to parrot the definition by rote, you should have an intuition for what it really means, which you obtain by considering (and inventing) examples of what fits the definition and what doesn't. So when the flash card comes up asking you what reduced row echelon form is, don't just parrot the words, instead take the opportunity to think about what a matrix looks like in rref, and another example where the matrix is not in rref.

2. Prove theorems (and lemmas, corollaries etc). If you don't yet know how to prove things, skim through a copy of Velleman's _How To Prove It_ and you'll get the gist. Even if the proof seems too hard, or you already saw it in a text book, try proving it by yourself from scratch anyway. Even if you come up against a brick wall and you can't see how to proceed, the effort will give you more insight, both into the theorem itself and into the definitions it relies on.

3. Practice algorithms. Step-by-step instructions like matrix row reduction are algorithms. Apply these recipes to solving relevant problems.

Mathematics students struggle with linear algebra when they skip one of these steps. Especially students who think they are more interested in applications, they might want to jump straight to the algorithms without paying much attention to the theory which supports those algorithms.

Trust me, if you can really nail steps 1 and 2, mastery of 3 will follow naturally and it will feel easy.

Whereas, if you skip steps 1 and 2, you will get to the exam and feel like you are playing dodge ball with concepts about which you feel uncertain.