A Good Year for “A Programmer’s Introduction to Mathematics”
jeremykun.com
jeremykun.com
The idea is great: teach mathematics in a way a computer programmer would understand.
But the title is misleading. The premise that this book will teach you maths using your already existing programming knowledge as a metaphor to build against is false.
It is literally a programmer introducing you to mathematics. Not an introduction to mathematics using programming as a foundation.
The title is catchy. The book had no editor.
I own both. They're not aimed specifically at programmers, which I don't see as a downside.
I would also like to get my hands on Resnick and Halliday books that I studied back in India during 11th and 12th.
The title should have probably been changed to something like 'A Programmer's Guide to Calculus and Linear Algebra' to avoid confusion. I hope there is a second version, where an editor mercilessly omits a lot of the decorative medium-esque blog text in some of the intros, and cleans up the jacket description or the title to prevent more bad reviews on Amazon and the like ("I thought this would teach me how to pass interviews! zero stars!").
The best part of this book is the 'culture of mathematics', where he is handing you grad school advice like how you should be reading a math text by writing your own examples whenever a definition is dropped in the book.
Such an introduction requires conceptual and foundational understanding over a full blown computational application which will likely hinder understanding.
As someone who had a reasonable aptitude for mathematics in the past but essentially no practice in the last 10 years, it seemed like the content varied wildly in how well it built on previous chapters, or more generally adhered to the "introduction" label. The programming-based content was thin to the point of being pretty much irrelevant, leaving the whole as something more like a scatter-brained textbook for an odd curriculum rather than a refocused version of a sensible one.
Moving on, it's disappointing that Kun didn't see any value in improving his product based on common feedback. It seems like negative reviews would be an opportunity for the author to better understand the audience he marketed his book toward.
At the same time, it's disorienting to see a real person acknowledge one of my reviews. I'm sure if I knew Kun in person I would be far more appreciative and impressed with his dedication and work than I allowed myself to be as a paying customer. I want to thank him for taking the high road and not lashing out at me for the unproductive snark that peppered my review.
I'm sure you can easily find all these lessons online or in videos but I like having the physical book. Partially to hold it and read it in my hands, and partially to have a consistent format and tone over a lot of topics.
Because of my experience [1], I have an entirely different approach to learning mathematics as a developer. The "do the normal track and suck it up approach."
This should be a blog post, but I don't have a blog and don't have the time to edit a story that nicely.
1.5 years before graduation, I couldn't handle advanced math anymore and I flunked the year. The next year I transferred to an easier math curriculum and have been coasting ever since. Even in my CS degree courses they never taught us linear algebra and calculus (I did learn graph theory, that was hard).
I didn't regret this decision of not studying maths for more than a decade, until a few months ago. I am noticing that my solid fundamental progress of mathematics has stopped in high school, learning graph theory was more about passing the course.
But now I want to join the conversation in math. So time to change that.
My method:
I am using the book of Haese & Harris IB HL. It's the most advanced high school math book for international students. I am now up to chapter 6 (complex numbers).
And Wow! THIS IS AWESOME! :D
Maths is just like software engineering, or at least algebra is.
I'm having tons of fun, who knew? I really didn't. I think it's because my approach to math is really different than when I was young.
Every time when I freak out, I use my programmer instincts to treat math as a 'best practices software system for numbers' and that mentality really helps.
A couple of examples:
1. I found ways to 'debug' algebraic applications (rewrite them in R and see if the evaluated value stays correct) which means I always know at which step I went wrong with my thinking,
2. I can use variables/abstract things away for a little while (grouping math expressions to letters),
3. My understanding about looping is useful (summations).
It's insane how much programmer instincts maps to mathematics. It's not fully 1 to 1, but it helps a lot more than it harms.
---
I'm still looking for a math tutor/coach. So if someone feels bored, or if you just want to discuss math and software engineering. Hit me up (my email is in my profile)!
[1] I tried to read the no bullshit guide to linear algebra. That was not a nice experience at all. Reading an actual high school textbook is a much better experience.
I worked on khanacademy videos and problems for a few months and had the same experience! I enjoyed the gamification aspect of khanacademy and need to take it up again.
I tried Khan academy but I honestly find I get impatient watching videos.
I did well in my Discrete Mathematics class at university because I found it to be intuitive, but if I'm honest I am not as proficient with even basic algebra as I should be
The green book is a subset of the longer book that also covers mechanics and calculus https://www.amazon.com/dp/0992001005/noBSmathMechCalc (see preview here https://minireference.com/static/excerpts/noBSguide_v5_previ... )
High school math is very deep, so I will not claim to cover all topics, but I present the most useful parts (equations, algebra, functions and inverses, math modelling), so it would be a good starting point.
Independent and in addition to the above, you can check out this printable tutorial on SymPy that can also be helpful as a review of lots of high school math material: https://minireference.com/static/tutorials/sympy_tutorial.pd...
You will have no gaps in your foundation with this approach - all the tricky stuff from basic algebra like negative/fractional exponents, simplifying square roots etc. will become very clear.
I am also finding desmos.com (and their app) helpful for getting insight by visualizing and playing with equations and functions.
Lack of being comprehensive isn't necessarily a problem. I had a very strange math education, a lot of what I am bad at or fuzzy on is because I am basically missing parts of highschool due to various reasons. So there are parts I have and parts I don't.
As I’ve seen written elsewhere on HN: math is not a spectator sport. The best way to learn is to work through problems until you master them. Heck, there are plenty of people in college who never bother going to lectures yet still achieve top grades by putting in the work.
You could schedule review of concepts and problems you understand with spaced repetition software like Anki to keep them in long term memory. (http://augmentingcognition.com/ltm.html)
His quote from the introduction of his book rings kind of true to me. I kind of hit a wall in my CS education. It's like I'm learning and building different flavors of the same thing over and over again with no deeper insight. New frameworks and new languages but the same concepts on an endless loop.
At my old age I've come to realize that the deeper insight is located in mathematics... and programming was just a small aspect of what was ultimately a larger structure. If you stay in the programming field, the only thing that's going to happen is you're going to travel in circles, you need to move to math or move part of your learning into something more mathematics based in order to gain that "deeper insight".
This hurts those that are self-studying without access to other mathematicians. I’m not buying his book for this reason, so are there any other introductory math books people recommend that include solutions?
Does he mean he didn’t provide solutions as in he doesn’t work out the answers, or he doesn’t even provide the answers at all? Like, work the problem, get the answer “12” and flip to the back of the book and make sure that the correct answer was 12? Not providing solutions I understand. Not providing answers makes for a pointless (math) book.
You could schedule review of concepts and problems you understand with spaced repetition software like Anki to keep them in long term memory. (http://augmentingcognition.com/ltm.html)
I went to a lot of subreddits where high schoolers hang out. They are brutally honest when it comes to what good math textbooks are.
It would be better if authors would write textbooks aimed at beginners that are self-studying and thus provide solutions. The author of this textbook has a missed opportunity by ignoring to provide solutions. I don't recommend this book to anyone for this reason.
The tricky case is with a problem where you don’t know where to start, it’s hard to ask a question like “here’s a problem and I don’t know where to start. Can you try to give me a hint?” But certainly explicitly asking for a hint will reflect better on you and adding some ideas you had (and why you couldn’t make them work or didn’t think they would work) would improve it more.
The other tricky case would be if you were missing something you never thought about, eg never thinking to check that your functions were well-defined. These systematic errors are hard but could hopefully be found by asking for help with verification with a subset of your solutions.
Posting solutions for verification/reading would hopefully also help you improve the clarity of the argument and your thought (and I guess it might help with style too).
Hopefully over time, you would find that your confidence in your own verification abilities increases and that your rate of errors if you do ask for verification decreases.
A final issue you might see is that if a question is elementary for those whom you are asking for verification (and this will happen a lot however advanced the topic), you may get a reply like “why not just say <some short solution>?” This is about as useful as an author-provided solution but not so great for proof verification. (The reason for these answers is that often exercises are hinting at some higher-level structure/theorem which you don’t yet know about and if you did know about it, you could use that knowledge to much more easily solve the problem)
————
I wonder how useful author-provided solutions really are. If the exercise is to prove something (as many good exercises are) then your solution is never going to be the same as the author’s and looking at the author’s proof won’t tell you if yours is any good.
>Hopefully over time, you would find that your confidence in your own verification abilities increases and that your rate of errors if you do ask for verification decreases.
Yes, but without feedback this is hard to do.
This book is not for self-studiers, least not in current form. It seems like there is a disconnect between authors and self-studiers. I can understand if the textbook is written so solutions aren't provided such that universities will buy the book, but there is a market for those no longer in classrooms that want to learn and an author that takes the time to provide solutions helps tremendously.