A Programmer's Introduction to Mathematics
A**N
Finally! A book that makes things accessible
I am a professional programmer but always struggled with math at school. I could repeat what was taught and pass the tests, but always wanted a deeper intuitive understanding of many numeric areas of mathematics the way I had with algorithms, graphs and computer science related math.This book has been a revelation, not only does it teach the topics well but it deals with the culture and underlying thought patterns a mathematician needs. Right from the introduction I knew the author's attitude towards learning aligned with my own. It has been a joy. Concepts that escaped me for years all of a sudden were clear, simple and intuitive. Concepts I found boring, difficult or unpleasant suddenly became engaging, simple and FUN.This book is all the missing pieces I wish I had been taught in school. This book has marked a new chapter in my life, one in which I enjoy mathematics for its own sake and not as a necessarily evil of the more academic parts of my programming profession.
D**L
Read the whole thing. Honest review.
First of all, this is not an absolute introduction to mathematics. The author expects that you will already have at least an excellent understanding of algebra, and some familiarity with mathematics as a whole. When I say some familiarity, I mean understanding of how proofs work and how to produce them. So no, this is not an introduction, it is a "programmer's" introduction, and as a result the author expects you to already have at least college level (high school level if you're reading from the States) mathematics education, and Bachelor's level mathematics for Computer Science education, similar to the author's own Mathematics/Comp Sci Bachelor's degree.Therefore, the book is aimed very specifically at people with this level and area of education, looking for a bridge to undergraduate Mathematics.So is the book useless for everyone else? No. The book is actually an excellent primer to 'culture' in Mathematics and mathematical notation. Even if you don't have the background necessary to get the most out of this book, it will equip you with at least the notation and proof reading skills you'll need to get some level of understanding from a proof. In that regard, this book is a great first step.The key is to not be intimidated by the sheer volume of theorems and proofs the author throws at you, at times the pacing of this book can be overwhelming, and it's common for the author to go through 20+ proofs in 40 pages with not a single line of accompanying code to help the reader digest what they're seeing. From that perspective, the book has really failed to make Mathematics digestible to your average programmer. I think that the root cause of this problem is the author's PhD in Mathematics. At times it seems he fails to translate from his level of understanding of the topics to a much less mature understanding that the reader is likely to have, but at other times he does this masterfully.Finally, I think that some chapters and all of the exercises in the book expect way too much from the reader in terms of prior knowledge. Perhaps this speaks more to my inexperience with mathematics, but all of the exercises I felt incredibly under-equipped for even after reading the chapters thoroughly, and I skipped most of them. Solutions aren't provided as a source of ground-truth if you get lost.Overall I got quite a lot out of this book, and I do feel like I am now better equipped to tackle the areas of mathematics introduced in the book, and maybe some new ones. It has served as a good introduction, a first baby step, but it is literally just that, and I don't feel like I have come away with anything more than a very high-level understanding of the topics covered. As mentioned by other reviews, this book served as a reminder that Maths is really hard, and I'll need to get my hands on many other resources and spend a lot more time learning before I can say I really understand what was covered in this book.
J**E
Great for self taught programmers
As someone who has been programming for years without much of a formal introduction, this book helped me to visualise the otherwise alien concepts that maths brings to computer science. Opened my eyes to how much of my work has been spent essentially writing my own expressions / proofs without understanding their true significance. Do consider however, that as a self-published work, this book contains multiple typos - which caused (later to be discovered as unnecessary) scrutiny as I read.
J**O
A different kind of book.
It doesn’t only teach mathematics, it teaches you how to comprehend and navigate in the mathematics way of writing things. For example in the first chapter it gives you his hand and goes with you all the way from a definition to a complete understanding of what is expected from you to do while reading a mathematical definition in any book. It explains what no other book explains about the process of learning new mathematics, what’s explicit, what’s implicit, what you have to figure out, although it also explains interesting mathematics.I really recommend this book, and I don’t have any affiliation with the author, only gratitude for his effort of writing such a profound different kind of mathematical book.
K**K
Don't Be Fooled by the Title, Math is Still Really Hard
This book reminds the reader that Mathematics is difficult. I'm only about a third of the way through, and I've given up on trying to understand every concept that has been presented. It walks through proofs and the reading of proofs from the very beginning, which from a mathematics standpoint, is a very good thing. Unfortunately reminds me that despite being a programmer, I am no natural mathematician.
T**S
Very good stuff
Can’t believe it took so long to find this book.Long realised that I needed to fill in the gaps as my ComSci course was overly practical. This was a great way to do it and a great intro to proper maths.Fantastic book not just for the knowledge it contains but for the amount of knowledge it has enabled me to go on and obtain beyond it.
M**S
Buy it now
Fantastic book and has re-ignited by interest in mathematics I thought long dead and buried. The book is written by someone who knows just how difficult it is to a non-mathematician to try to digest the notation and using code snippets as a translation for these algorithms and equations just makes it even better. Don't worry if you find even the first few chapters uncomfortable to take in, the book is not meant to be speed read but will guide you through what you need to know well.
V**D
Good book for the maths enthusiast.
Nice learning curve for the programmer with interests in maths.
T**D
The book I've wanted for years
This book is extremely useful. There are right and wrong ways to read it. The author explains how this book should be used early on: when you encounter a definition, write it down, come up with examples. It's not just a book about math, it's a book about how to think about math. If you approach it as purely a math book, and don't take heed of the advice, you will surely find it unnecessarily challenging to finish.But, if you write down definitions, take notes, and treat each page with attention, you'll find that *working* through this book (as opposed to merely "reading" it) is a rewarding and enlightening experience.Some suggestions:1. There is no single source that will answer all of your questions. If you encounter a concept or phrase that doesn't make sense, look for other material to fill in your gaps. This should already be second nature for programmers.2. Use the exercises as ways to hone your understanding of the subtopics of interest. There are many exercises and chapter notes and they provide ample opportunity to dive deeper into the foundations established in the chapter. It is actually encouraged by the author in multiple areas in the book to look at other ways some of the concepts are presented.3. Use the end-of-chapter project walkthrough as a way to interrogate your understanding and circle back on the specific concepts that you don't fully grasp.If you aren't already familiar with the topics, you will *need* to circle back on topics multiple times. This is true of any subject. You can re-work through the chapters, choose different subsets of end-of-chapter exercises, and check out different myriad resources on the same topic to expose yourself to alternate presentations of the material. I also recommend the authors blog: Math <intersection> Programming. Lots of great material there.If you give the material your attention, your mathematical confidence, maturity, and comprehension will significantly improve. After the chapter on any particular topic, you will be well-equipped to dive deep into that topic with other, rigorous sources that may have previously been too intimidating.
K**5
Finally someone explains Math in a way I can understand
Also draws comparisons between math and programming, for example it is discussed why math has looser rules than programming and how that allows mathematicians to express ideas more quickly. While I've barely started with the book, I can definitely recommend it. It certainly has reignited my curiosity for math.
S**7
Creative book but you will need to know some math and Python
I'm an older reader who does not know Python. I thought I would read this book to refresh my understandings from a second-year University course called "Basic Concepts in Math," which dealt with, for instance, the nature of proofs ("existence" and "uniqueness"), number and graph theory, and so forth. I thought the book was //very// interesting and right for me until I got to the Python examples (which probably would not even make most teeangers blink). A lot different from Fortran! Then i got bored, because I could not follow it.The author has some very interesting and trenchant thoughts on how mathematics should be taught, which I found valuable.I hope readers understand that the author is attempting to bridge programming and "basic concepts' and "math learning." It is a brave attempt, but its use as a textbook would be only for freshman or sophomore college-aged students who are studying programming and who need a background in "basic concepts."
A**R
Not an introduction, but that's a GOOD thing!
This is my favorite textbook that I've ever purchased, and it is really quite perfect for the way I like to learn. If you're a programmer who recognizes the utility of mathematical thinking and wishes they had taken their math classes more seriously, this book may be great for you. Even if you just read the cultural "non math" chapters the book is still well worth the price.Pros:- Conveys a huge amount of tacit, cultural, and procedural information about the practice of mathematics that is usually only available through formal training- Excellent at translating programming habits and concepts to mathematics (Proofs as programs, types, notation, etc)- Broad overview of the more practical domains of mathematics for programmers with excellent use case studies- Contains plenty of pointers to further content if you want to diver deeper into any subject- Effective use of visual examples to guide intuition balanced with logical proofs- No answers to exercises (I can't stop myself from looking at the answers if they're right there)Cons:- Could use some editing for sentence structure, Figure/equation placement, typos, etc, but nothing major- Does not cover complex analysis (provides reasons for skipping)- Does require intermediate level experience with mathematics (A handful of undergradutae level courses should be plenty)- Code examples are sometimes a bit odd, but this may just be personal preference
C**G
Mathematics FOR Programmers
Mathematics (the formal field) has often been a necessary but uncomfortable subject for me. As a programmer for 20+ years, I don't get much time to think about the underlying ideas from Mathematics in the many high-level libraries I use while pressed with deadlines. Dr. Kun bridges theory, notation, and implementation in a great format and has a delicate balance of explanation and example. This book elegantly takes advantage of the fact that most programmers already understand the ideas of variables, constants, functions, loops, and recursion and teaches from that perspective.I highly recommend "A Programmer's Introduction to Mathematics" to new or seasoned programmers who want to brush up on their mathematics, develop a new foundational understanding or never really enjoyed a coherent and practical education on it.
Trustpilot
3 weeks ago
1 month ago