Just sayin', if someone is truly not a math person, saying "oh yeah, learn math and then learn graphics programming" is probably just going to discourage them.
ML is supposedly all about math. And sure, I could walk you through a backprop pipeline at this point. But it took me years before that was useful knowledge to me. The practical experience of doing it was way more interesting, and it lead to more knowledge than I would've gotten with a traditional path.
Most linear algebra courses and textbooks do. Without a lot of background, you'll run into a hard brick well.
A few good starting points
- Project Algebra's Road Coloring curriculum
- 3B1B (on Youtube) has a series on the geometry of linear algebra. You should have the mechanics of adding/multiplying matrices, but not much more
- Game theory is a nice place to explore early
Linear algebra is a many, many year progression. It's quite deep and interesting. But you don't need to start with singular value decompositions and whatnot. Start with those sorts of things, and then apply it in different domains:
- 3D graphics
- Image processing
- Control theory
- Quantum computing
- Data analysis
... and whatever else suits your interests.
After a decade or so, if rather fascinating deep dives, you'll have a deep understanding not just of linear algebra but of some rather interesting domains.
I agree with other comments that linear algebra has limited relevance to learning programming. Your experience with Emacs gives you a far bigger leg up than mastering linear algebra would.
Problems you solve with programming may or may not require math: the math requirements come from the specific problems.
Every time I've used heavy math in programming, I've figured out the math for the problem in isolation, then programmed that solution.
Strictly that is incorrect, but I get what you mean and agree with the point you’re communicating. I suspect it’s largely due to the rather dysfunctional way mathematics is taught in America.
Writing C for example requires knowledge of order of operations, inequalities, boolean arithmetic, and something very much like mathematical induction if you want your loops to terminate. Most programmers with the math optional mindset just don’t think of all the math they’re doing as math. For me the realization was empowering since once I realized I really was using a lot of math it inspired me to start filling gaps in my knowledge.
Edit: This looks interesting: https://pimbook.org/