Wait, why would you do matrix multiplications instead of geometric transforms?
I got a C in "Survey of Physics" in college, and struggled _hard_ with any math that was meant to model physical phenomena. I aced calculus and anything abstract. I dunno what that says about me.
A matrix multiplication is just a handful of multiplications and additions, which are very fast. If your CPU has FMA instructions, that will cut the number of operations approximately in half. If you do raw trig with angles and such, chances are you'll have a bunch of sin/cos/tan and divisions in your code, which are capital-S Slow. The same transformation might be 1-2 orders of magnitude slower than if you had modeled your transformation as a matrix.
They're easier to compose. Easier to reason about. If you have several transformations that you need to do in a row, you can just make one simple matrix for each step, and then shmoosh them all together with a great big matrix multiply.
Matrices have a tendency to collapse floating point inprecision. A 3D model will often be constructed in [-1.0,1.0] coordinates for xyz. The final camera space that your GPU draws will often have no coordinate greater than 10,000 or so. These are easily precisely represented with 32 bit floats. However, if you do a multi-step geometric transformations on them, you will more often than not blow out your floating point precision in intermediates. This means you need to do your entire transformation with doubles. On the other hand, if you're using matrices, you construct each matrix with doubles, compose your complete transformation with doubles, then convert the final matrix to float and everything is fine. When you transform the points of your model from model space into camera space, you'll use the matrix with 32 bit floats.
Good modern compilers (not MSVC) will generally do a pretty good job of optimizing a matrix multiplication to SIMD instructions. In the previous paragraph, you might think, "who care if I have to use doubles instead of floats?" and this is why. Floats are twice as fast as doubles in dense SIMD code.
GPUs will have first class support for matrices. You can just be like "here's my matrix bro" and the GPU will be like "thanks".
Unfortunately I don't know of a good way to learn the subset of linear algebra that programmers need to model the real world. The Gilbert Strang linear algebra MIT courseware is all well and good, but it really focuses on the needs of mathematicians. I feel like everything I know about linear algebra I just sorta picked up through osmosis over the years.
I got a C in "Survey of Physics" in college, and struggled _hard_ with any math that was meant to model physical phenomena. I aced calculus and anything abstract. I dunno what that says about me.