3 ms·
I'm curious what the target audience this book is for. The chapter "Our Goal" says that the books is to teach programmers how to engage mathematics, but program
by hintymad 5y ago
I'm curious what the target audience this book is for. The chapter "Our Goal" says that the books is to teach programmers how to engage mathematics, but programmers have wide range of mathematical maturity. The second theorem in the book is as follows:
For any integer n >= 0 and any list of n + 1 points (x[1], y[1]), ... , (x[n+1], y[n+1]) in R^2 with x[1] < x[2] < ... < x[n+1], there exists a unique polynomial p(x) of degree at most n such tat p(x[i]) = y[i] for all i.
So, it seems the author assumes that a reader will have math maturity of a good senior high-school student, as most of students wouldn't need to worry about property of existence. The book also covers the proof of such theorem with formal notations and the proof is built up with previous theorems -- a pretty standard way in math books which nonetheless requires math maturity of a good high school senior. The table of contents also shows that the book will cover linear algebra, calculus, and group theory in a whirlwind. Again, such content demands close-to-college-level math maturity. I'm also generous here, as public schools of the US do not really teach that much formal math.
So, here is the dilemma: people with this level of maturity should already be good at math or have access to other materials to help them with math. People who do not possess such maturity will not go through the book anyway, or have more beginner-friendly materials to read. Note I'm sure there are exceptions, but I question the percentage of such exception.
- jcpst 5y agoI have this book. I was pretty excited about it. I have tried 3 times to work through it so far, and haven’t made it through chapter two. I did not connect with math when I was in High School. I liked geometry, but never took anything after that. I didn’t really learn anything new in college algebra. I program at an accomplished level- I’m doing senior dev work in a complex domain, and have led teams of developers. But I feel bad when trying to go through this book. Like I had huge gaps in knowledge that the author assumed I had, which led me to wonder why that is. I will probably try to struggle through this again, in hopes that eventually it clicks. If anyone knows of a book I could use as a prerequisite or intermediate step, I would appreciate that!
- elric 5y agoI have struggled with the same thing (and continue to do so). One thing I have found to be very helpful is Ivan Savov's "No bullshit guide to math & physics". It helps that it's written by a person who does a lot of tutoring, unlike the authors of many frightening ex-cathedra maths books. It basically builds its way up to calculus, in a way that's mostly easy to grok and in a way that's useful and interesting (which is where the physics bit comes in). It certainly hasn't made me a mathematician by any stretch, but it's helped me fill in a lot of gaps left behind by awful maths teachers in school, and it's helped rekindle an interest that I'd long since forgotten.
- westoncb 5y agoThe article has a good example of exactly the kind of thing I also found useful in the book: > He also discusses the fact that the language of mathematics is looser than programming in a lot of ways. In code, things have to be expressed a very exact way or they just don’t compile. Variables and functions have to be fully and explicitly defined if you expect the computer to run them. But in math, there’s a lot of tacit agreement and assumptions that go on. Lots of shortcuts and conventions. This kind of context around how math is done as a human activity in practice, especially in contrast to programming, is extremely helpful orientation for programmers trying to self-teach mathematics. It would've saved me tons of time and trouble if I'd known the above while trying to work through math texts after graduating with a CS degree: instead I wasted a tone of time writing over-detailed proofs, always feeling as if I were doing something wrong if every tiny step weren't explicit (more closely matching my experience with programming).
- dj_mc_merlin 5y agoThat is a bit of an uncharitable reading. The subchapter literally preceding the example you cited is titled "Existence & Uniqueness" and explains why those concepts are important to mathematicians, and right following the stated theorem the author explains it in minute detail and gives an informal phrasing ("there is a unique degree n poly- nomial passing through a choice of n + 1 points"). The entire chapter is devoted to how to take these kind of complex looking statements and understand what concepts are behind them, and the author explains the concepts in both normal language and how one would normally see them in a maths textbook. You are right that this book requires high school level math knowledge, as it's the equivalent of a first (and maybe second) year math course. Most programmers I have met do display that amount of knowledge however. What other starting point (or topic) would you suggest for teaching someone mathematics that can be related to programming?