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/
To a first approximation, this is a substantially more limited set of concepts than even low-grade math.
Iterating counters and loops is the most "general" math I've used on most problems, and for...each or equivalent auto-bounding functions over sized collections removes that.
Can you write a 3D engine without math? No. Can you write a DB engine without math? No. Can you write a general web app without math? Probably.
Point being: if your goal is to put food on the table by programming, a 2-year study plan worth of advanced math is better invested learning elsewhere.