A Programmer's Introduction to Mathematics uses your familiarity with ideas from programming and software to teach mathematics.
You'll learn about the central objects and theorems of mathematics, covering graphs, calculus, linear algebra, eigenvalues, optimization, and more. You'll also be immersed in the often unspoken cultural attitudes of mathematics, learning both how to read and write proofs while understanding why mathematics is the way it is. Between each technical chapter is an essay describing a different aspect of mathematical culture, and discussions of the insights and meta-insights that constitute mathematical intuition.
As you learn, we'll use new mathematical ideas to create wondrous programs, from cryptographic schemes to neural networks to hyperbolic tessellations. Each chapter also contains a set of exercises that have you actively explore mathematical topics on your own. By the end of the book, you will be able to learn mathematics on your own. In short, this book will teach you to engage with mathematics.
Not an easy evening read, but it is very well written and for the people who appreciate mathematics but feel intimidated by the notation overloading, jargon, and mental leaps in other books will find this one refreshing in that it not only explains topics in a friendly pace but also explains why mathematics is the way it is (hint: it is human endeavor). Working through exercises would make you really grasp subjects well (I left this for the second reading), but either way, you will get a better appreciation for the subject as a field. Highly recommended.
Kun guides us to some of the most important fields of fundamental mathematics. This book is very accessible to the non-mathematician, even though Kun does not dispense the formulas, proofs and general rigor. The different topics (sets, graphs, linear algebra, group theory and many more) are meticulously explained and illustrated with figures. Every topic is finished with a concrete applications illustrating the application of the math. The topic chapters are alternated by short essays on the differences in nature between mathematicians and programmers. An important theme in this book is that mathematics should be 'alive' and a computer is infinitely more versatile tool to study mathematics than pen and paper.
Overall, I found the book a joy to read and would recommend it to any scientist and programmer who wants to see how formally schooled mathematicians think.
Gave up midway through. This yet another reminder for me not to read "X for programmers" type of books. I don't agree with the idea that, since one is a programmer, code snippets would be useful in grasping some math concepts. Also, because author tries to present topics that would be applicable to programmers, the book jumps randomly between unrelated topics and makes it hard to internalize your knowledge and build up on what you learned so far. Each chapters has a bunch of exercises that you should work through for which there is no hints/solutions attached, because you are supposed to struggle. Struggling is fine, but I prefer "guided struggle" where I can fallback to something/someone where I have problems or where I want to confirm my thought process. I think that throwing a bunch of exercises at someone and tell them "go struggle" is not the good way to teach.
The author is definitely a super smart person but this book didn't work for me. I will stick to textbooks for now.
Mathematical cognition is also largely built on analogies.
2. What chapter was most interesting?
Certainly, I see Gradient as a Picture of a Flying Man.
This Work especially chapter 11 was insightful.
In Chapter 11, Kun says,
We start with basic syntax, semantics of a given programming language. And then, we move up abstractly.
We see a programming language for core-logic, features of the Language. Certainly, I view it abstractly, I mean, sure, you can come up with a new programming language.
Mostly, I'd just look at it abstractly. I think in bigger picture, where it falls short, or why consider it.
He says, in Mathematics, re-learning a field is routine.
They spend unusual amount of time. Mathematicians preparing the lectures. Certainly, I can see it, to capture a formal definition or to make it rigorous.
I can imagine, the insights, nuanced approach generates over time. I guess, Gilbert Strang's Linear Algebra. I am guessing, the insights, it took a while for him over time.
Kun says, there's two types of people in Mathematicians.
Theory-Builders & Problem-Solvers. One are unifiers in the field, they stretch long ropes to bring unity to the field.
Problem-Solvers, self-evident; A good example is Erdos.
4. What is inside of this?
Outline:
Polynomial On Pace and Patience Sets Variable Names, Overloading, and Your Brain Graphs SubCultures of Mathematics Calculus with One Variable Type & Tail calls Linear Algebra Live and Learn Linear Algebra Eigenvalue & Eigenvectors Multivariable Calculus & Optimization Big-Oh-Notation Argument for Big-Oh-Notation Groups Interface
Had a tough time reading this (couldn't finish), I expected it to be a bit easier for Programmers but this reminded me of reading a Math textbook that doesn't end up clearing up questions or confusion around certain topics for me.
Very dense, required lot of googling and took very long (around 5 months) to read once. Book taught me how to approach/read/consume math, hence I say that is has a compounding effect on my learning.
Many of us are less than comfortable with mathematics, some of us are programmers, and this book aims to help us with appreciating mathematical fundamentals.
The book starts with polynomials and sets, to ground things, and goes on to cover topics like graphs, linear algebra and calculus. It’s not easy going and not meant to be, but it does provide explanations and mostly avoids big conceptual jumps. As just one example, I found the angle of attack on calculus starting with successively less approximate slopes to limits to derivatives, very insightful.
The book does a great job of starting from a programmer’s frame of reference, moving toward what mathematicians are more used to, and continually points out challenges, including mathematic’s frustrating proclivity for informal ad-hoc notation. The main takeaway for me, was, that mathematical understanding is work, requires patience, and some grit.
Reading this book, I took my time to take in the various explanations of Mathematics in programming. It was astounding how various Mathematics concepts were converted into programs that worked. I recommend this book to any programmer.
Прочитал половину и дальше не смог. Начало было очень хорошим, где концепции из математики перекладывались на python, но чем дальше в дебри тем больше расхождений.
Ставлю 4, потому что книга взяла хорошая идею и немного её не дожала. Точнее не зацепило именно меня.
A readable introduction to the higher mathematics, proof, and theoretical computer science from an extremely talented writer. Extremely clear and helps connect computation to various fields often treated as disparate from one another.