Thanks for posting. I wish there were many other books done similarly.
Selfishly, I'd love to see statistics, probability and advanced robotics displayed this way.
<3 <3
https://mathcs.clarku.edu/~djoyce/java/elements/elements.htm...
for geometry.
(previously I was noting a physics PDF set as well, but it's apparently not well-grounded/is controversial)
The 'tooltips' are also a nice touch. If someone wanted to go nuts with this concept, they could allow the user to highlight any sentence, equation, or individual symbol to bring up an 'Explain this' popup option.
Now with LLMs it is so much easier and faster. Hopefully books will be rewritten.
What makes someone a "programmer" vs a mathematician? If you suspended your arrogance for a few moments you might realize you've wasted our time with a question that answers itself.
I mean it's also a generalization of very little value. Is someone doing linear algebra in lean not doing "the real stuff"? What is a programmer to you? Your question is why do some people not follow an area that is tangential to them to the maximal extent? Or to some arbitrary level of "real" as you subjectively define it? Is your claim that the level of linear algebra offered here is inherently useless unless paired with the "real stuff"?
Or did you just want us all to know you are a practitioner of such arts? Gold star for you.
Besides, I've never met a physicist or a (real) engineer who would go to such lengths to oversimplify the math part, even if it was only “tangential” to them.
Being able to dig deeper is important, but what's more important is to have an intuitive understanding of many many things: psychology, economy, finance, physics, art, etc. It's important to know the limits of your familiarity with any of these. For instance, my understanding of the fundamental practices in Accounting is really good (I've led a budget aggregation software for a huge conglomerate), but details is bad (tax rules for each industry, etc).
When I needed to create a software for optimizing stone cutting, I needed to know enough from computer vision, computational geometry, and optimization to know that our solution is feasible, task team members to learn what they need to do, and get into implementation, debugging and optimizing with them when needed.
After that, I still can't write code in computational geometry that handles all corner cases.
It's really good if we know everything with infinite precision, but for a programmer it's not efficient. We need to know where to stop.
My personal favorite is a former NASA employee who recorded a series of lessons for students to use to supplement their normal undergrad studies, prepare for exams, that kind of thing. He has a YouTube channel which has all sorts of topics (for free), but his site has paid videos on math, chemistry, electricity, some electronics, statistics, and a few other topics. You can find it on the high seas if you want a preview. Look up MathTutorDVD. It is not the end all, be all, but it is very helpful and I’ve learned in my own spare time lots. He covers high school math to Calculus 3 and probably beyond. I haven’t looked in a long time.
Khan Academy is also an option but I have not used it much so I can’t sufficiently comment on it. The things I’ve seen there have been decent and their main faculty are highly technical people who went into teaching. People have said great things about K.A., and likely they have a better way to track your progress and they might have better quizzes and tests.
One thing I remember specifically being called out is that majority of students who struggle with Calculus struggle almost exclusively due to linear algebra and formula manipulation. That the actual Calculus part is not the problem, it’s the lack of pre-requisite practice and learning more than anything.
The standard Calculus book by James Stewart will do. It covers most of the same. It is readable and quite affordable because it is so widespread.
A nice “1000 problems solved in Calculus” work book will also help. Practice is always good here, and it feels good when ideas learned from multiple sources work together.
Lastly, there are a couple of solid books that go into translating mathematical concepts so as to be usable in computer software, meaning how to take math formulas and turn them into usable algorithms. I want to bring to your attention their existence because eventually this is something that needs to be done, but trying to do everything at once will overwhelm you and distract you. It is however a “thing” when you get things down.
I recommend getting some notebooks - lined and square, a set of colored pens, and writing each and every exercise, lecture down. Color code notes, formulas, your own solutions and corrections. Grade yourself if need be. Keep your notebooks, labeled after each subject. I don’t know to what extent digital note taking is done today but I’ve always personally found it ineffective. So if you already self identify as a slow learner, writing things down in a meticulous way should help you greatly. Notebooks and pens are otherwise cheap, better to have an excess than not enough.
I hope this helps. I’m sure other people here have far better resources and I’ve forgotten all the stuff I used, but I’m not dead set on any one method.
I wouldn't say this one is programmers-oriented either - it was posted to HN, sure, but maths and physics students could benefit from some visualizations too as a supplement to a more rigorous text.
As for the things you mentioned as omitted, I think if you want to do a complete treatment you have to introduce more mathematical prerequisites which limits the audience of your book. For a mathematician, I'd say classical linear algebra in itself is not particularly interesting - it's very well-behaved and pretty much "solved". What you care about is how it relates to other structures (groups, modules, fields), how it develops into other topics (functional analysis) and how it's used to study other objects (representation theory, tangent spaces of manifolds). In isolation, most of what's left is the computational aspect which is what non-mathematicians mostly care about.
[1] https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQ...
https://bentilly.blogspot.com/2009/09/teaching-linear-algebr...
I don't assign homework anymore because I have no interest in grading AI output (and even less interest in asking AI to grade AI output). The inverted classroom approach works well for me. Students read the textbook on their own (and I encourage them to use office hours, collaborate, or use AI tools if they need more explanations), doing checkpoint exercises to make sure they understand the material, and class time is spent on working problems.