
A Programmer's Introduction to Mathematics - chocolateboy
https://jeremykun.com/2018/12/01/a-programmers-introduction-to-mathematics/
======
threwythrw
Do the exercises have solutions? The most annoying things about math books is
the lack of solutions. A beginner absolutely needs to know whether or not
their solutions are correct.

The “the reader should know if they are correct” logic doesn’t apply here. A
beginner could easily have faulty logic and fool themselves into thinking
their solutions are correct.

I usually don’t buy math books without solutions if I’m self-studying. Would
like to know if solutions are provided in this book. If not, I won’t consider
buying it.

If this book doesn’t make the cut with a solution manual, does anyone have
recommendations on an intro to proofs book with one?

~~~
amelius
> The most annoying things about math books is the lack of solutions.

To me the most annoying thing about math books is hand-waving, lack of rigor,
and unexplained notation.

At least in programming, everything is formal and I can figure out the entire
problem by looking at the source.

~~~
kccqzy
I think you aren't buying very good math books then. I find the exact
opposite: the thing about math books I have read is that they overemphasize
rigor at the expense of intuition. Everything is painstakingly illustrated in
such great detail that I sometimes see the trees and lose sight of the forest.
I feel as if reading proofs and doing problem sets in math books is just
manipulating symbols in well-known ways without really understanding
intuitively why something must be true. For example my introduction to metric
spaces started by defining the characteristics of a certain function d without
explaining how this could be thought of as a generalization of distance.

On the other hand, many programming stuff is ruefully hand-waving and lacks
rigor. They might present important algorithms in pseudocode; even when they
present in real code, the precise semantics of the real code is often
underspecified and vaguely described in English. I mean take a language; how
often do you see in the language specification the semantics of the language
defined rigorously, using operational or denotational semantics? PL nitpicking
aside, how many programmers think a piece of code must be correct because they
pass a few test cases, without ever giving a proof?

I'm of course not saying the lack of rigor in programming is bad. Perhaps 95%
of the software we are building isn't mission-critical and relying on
intuitions is fine; we ain't got no time to prove every piece of code we
write. But my point is your observation really does not match mine.

~~~
billfruit
But at least all imperative procedural steps are clearly understandable from
source code given in many programming books. Where as maths books routinely
leave out many steps in proofs and calculations, on top of many ambiguously
used notations and terminology that can leave a self-student confused.

~~~
username90
A program proves nothing at all so I am not sure what you can understand from
it? Typically in programming you are presented with a piece of code, a
statement that this piece of code solves a specific problem and then a proof
of that it actually works. Those proofs are typically far from understandable
or rigorous.

~~~
sfvisser
But programs are proofs!

At least in the light of the Curry–Howard correspondence. :)

Anyways, I do agree that in programming it’s easier to see what are
introductions, assumptions, definitions, functions, values etc. You can’t just
invent a notation and go with it. Everything needs to be defined from the
ground up. It’s constructive and I like that, probably because I’m a
programmer.

~~~
smadge
That’s true but in most languages the things you prove are relatively obvious
propositions like “(A and A)implies A.”

------
mlejva
I have a genuine question which might sound dumb but I really do wonder.

How do you actually read math, physics and programming books?

Reading them the same way as you'd read a novel doesn't seem right. I try to
go chapter after chapter and make notes but I often get bored because I don't
see the usage in my real life coding. Maybe I'm not working on problems that
are challenging enough? Also after few chapters it often turns into a "job" of
finishing the book. I don't have the pleasure of learning new stuff anymore.

Do you really finish such books? What am I doing wrong?

~~~
joaorico
Here's Alain Connes, Fields medalist, on how a mathematician works and should
read a book [0]:

"To understand any subject, above all, a mathematician SHOULD NOT pick up a
book and read it.

It is the worst error!

No, a mathematician needs to look in a book, and to read it backwards. Then,
he sees the statement of a theorem. And, well, he goes for a walk. And, above
all, he does not look at the book.

He says, "How the hell could I prove this?"

He goes for his walk, he takes two hours ... He comes back and he has thought
about how he would have proved it. He looks at the book. The proof is 10 pages
long. 99% of the proof, pff, doesn't matter.

Tak!, here's the idea!

But this idea, on paper, it looks the same as everything else that is written.
But there is a place, where this little thing is written, that will
immediately translate in his brain through a complete change of mental image
that will make the proof.

So, this is how we operate. Well, at least some of us. Math is not learned in
a book, it cannot be read from a book. There is something active about it,
tremendously active.

[...]

It's a personal, individual work."

[0]
[https://www.youtube.com/watch?v=9qlqVEUgdgo](https://www.youtube.com/watch?v=9qlqVEUgdgo)

~~~
finaliteration
This approach seems very similar to working backwards when trying figure out
the behavior of a function that calls other functions or libraries and when
trying to a debug an issue and following the stack trace to determine the root
cause of the issue. Not a perfect analogy but I find it helpful to think about
it that way.

------
sjroot
As someone who works as a programmer but wasn’t super interested in
mathematics, I’ve found this blog to be a fantastic read time and time again.
I’d highly recommend going through Jeremy’s previous posts if this is your
first time seeing his site on here.

If this topic piques your interest I would also recommend Mathematics for
Computer Science:
[https://courses.csail.mit.edu/6.042/spring17/mcs.pdf](https://courses.csail.mit.edu/6.042/spring17/mcs.pdf)

------
_Nat_
To the author:

You might want to extend the preview PDF to include a few pages from later
chapters. The issue's that the [current
preview]([https://pimbook.org/pdf/pim_first_pages.pdf](https://pimbook.org/pdf/pim_first_pages.pdf))
only gets into polynomials over its 45 pages. But since polynomials are
typically taught to students during early childhood, it seems like most
readers are liable to just skim that content, being more interested in the
topics discussed later. For example, the start of Chapter 14 (on optimization)
would be neat to see.

That said, I like the parts that translate between analytical expressions and
programming code. Such mappings seem like high-value content to readers; the
language barrier can keep people from understanding mathematical writing,
while a few helpful translations can help to tear down those language
barriers.

~~~
j2kun
The Amazon preview has more pages, in case you're still curious.

------
alan_wade
I really wish this book would include probability and statistic sections. My
guess is that a lot of people, like me, will want to read it because they're
getting started with ML and need help getting used to the math, and
probability/stats is an important part of it that's missing.

Any chance you could add it in the future?

~~~
j2kun
Well, two chapters have singular value decomposition and neural networks as
the applications. So it does have a lot of ML :)

But yes, I unfortunately had to cut a probability chapter. I think someone who
reads this book would have a much easier time learning probability after, and
a better foundation.

~~~
codesushi42
Thank you for this book. There is a huge need for this.

It saddens me that schools may be handing out CS degrees without having first
required students to at least have taken linear algebra, multivariable
calculus, and discrete math that covers basic counting, sets, graphs and
groups. How can this be?

Probability and statistics should also be a required part of every CS program.

~~~
j2kun
/shrug misaligned incentives probably. Schools are also handing out CS degrees
without students being all that good at writing programs either.

------
Koshkin
It's good to have something that lowers the bar for programmers so they could
learn themselves some math without much fear. Knowing math is very important
if you are a coder - and not just linear algebra: knowing a formula, for
example, might let you do certain things in constant rather than linear time
or, perhaps, reduce the cost of the iteration. Unfortunately, too many of
those who can call themselves programmers by trade know very little math
(you'd be lucky if they remember what they learned in high school).

~~~
Waterluvian
I'm sorry if this isn't your intent but the way you structured your comment
comes off as very condescending.

Aside from that, I'm also skeptical that the frequency in which these maths
apply to practical, commercial programming is really that high.

Im not anti math or something. I just think the practical value gets way over
sold by some people. And sometimes it feels like it's because of the dislike
of "those who can call themselves programmers by trade."

~~~
codesushi42
It is an incredibly important foundation for analyzing any kind of data. That
is a need that crosses many different fields, be it sales forecasting,
quantitative finance, econometrics, deep learning, signal processing, any sort
of scientific computing etc.

I would be more interested in hearing an argument about why math knowledge is
not useful or lucrative.

------
EGreg
I was teaching a college class for high schoolers last year and thought it
would be great to record my lectures for them. Then I put it up as an entire
youtube channel for everyone:

[https://m.youtube.com/channel/UCuge8p-oYsKSU0rDMy7jJlA](https://m.youtube.com/channel/UCuge8p-oYsKSU0rDMy7jJlA)

It basically builds up mathematics rigorously from basic definitions, while
trying to stay very accessible.

If anyone has the time, or desire to learn math this way, let me know what you
think, and if I should make more in this series!

------
yantrams
I am a huge fan of Jeremy's blog. Found his primers on a multitude of topics
very useful - [https://jeremykun.com/primers/](https://jeremykun.com/primers/)

As a Math guy who got into the world of programming relatively recently, I am
on the opposite side of the spectrum I suppose but I'm gonna order this
nonetheless to support him.

~~~
j2kun
Would you read "A Mathematician's Introduction to Programming"?

------
aargh_aargh
Hmm, the "first few pages" end just before the "meat" begins.

From the table of contents, there seem to be short prose sections inteleaved
with the teaching sections. I hoped to see an example of the teaching section,
not the prose.

~~~
j2kun
Yeah, I should update that to have the full first chapter.

~~~
j2kun
First chapter is up now at
[https://pimbook.org/pdf/pim_first_pages.pdf](https://pimbook.org/pdf/pim_first_pages.pdf)

Also note that the Amazon "Look Inside" lets you see basically any page. Some
readers have told me the first chapters were too slow, and so I think more
advanced readers will want to breeze through that (though the applications in
the first two technical chapters have a coolness to them that is hard to
beat!).

------
bootsz
> _The problem is that the culture of mathematics and the culture of
> mathematics education--elementary through lower-level college courses--are
> completely different ... I 've had many conversations with such students
> [...] who by their third year decided they didn't really enjoy math. The
> story often goes like this: a student who was good at math in high school
> (perhaps because of its rigid structure) reaches the point of a math major
> at which they must read and write proofs in earnest. It requires an earnest,
> open-ended exploration they don't enjoy._

I found this interesting because I too discovered this difference in approach
but had the complete opposite reaction. I absolutely _hated_ math in middle
and high school. It wasn't until I took a discrete math course for my CS
program that I got exposed to dealing with real proofs, which I found required
a level of creative thinking, and I totally loved it. This admittedly wasn't
an "advanced" university math class, but the difference from high school math
was still quite stark.

~~~
j2kun
That's exactly how I felt. I didn't really discover math until college.

------
mkagenius
Nice.

I tried to start something similar which tried to explain all weird maths
symbol via code. It went nowhere.

But feel free to check
[https://github.com/mkagenius/mathsymbol2code](https://github.com/mkagenius/mathsymbol2code)

------
newnewpdro
What's provided currently at [1] doesn't provide the reader with any
impression of the teaching style or quality/quantity of visual aids.

I'm very likely to buy a hard copy of such a book, but not unless I can do the
equivalent of flipping through it like I would in a book store.

Consider changing the preview instead to a scattered sampling of some of your
proudest pages.

[1]
[https://pimbook.org/pdf/pim_first_pages.pdf](https://pimbook.org/pdf/pim_first_pages.pdf)

------
jamestimmins
On a related note, I'm curious if anyone has taken the Mathematics for Machine
Learning ([https://www.coursera.org/specializations/mathematics-
machine...](https://www.coursera.org/specializations/mathematics-machine-
learning)) courses on Coursera, and whether it really covers enough to be
comfortable with ML. The course bills itself as enough math knowledge for
folks who barely remember high school math.

~~~
harias
I have completed all three courses in the series. It was a good supplement to
other resources, especially 3blue1brown's Linear Algebra course on youtube[0]
(mind-blowing, do check it out) but I wouldn't recommend it as a first course.
The first two courses weren't rigorous enough for my taste (I am yet to find a
rigorous course on Coursera), but the third was pretty good. You should take
up books if you are serious.

MIT OCW Scholar(independent study) course on Linear Algebra by Prof. Strang[1]
is really good and is designed for self-study. If you have the time, you could
look up Coding the matrix[2] too. I read probability from Mathematics for
Computer Science-MIT[3] and also referred Khan Academy[4] and PennState STAT
414/415 [5] for statistics and probability. StatQuest channel[6] on Youtube
has handwavy but easy to understand videos on statistics for ML too. The Deep
learning book[7] by Ian Goodfellow et al. has a couple of chapters at the
beginning that gives you a fairly good idea of the mathematics required to get
into Deep learning. Communities like r/AskStatistics and r/statistics on
Reddit were really helpful when I got stuck.

I also chanced upon Mathematics for Machine Learning[8] book recently and it
seems to be good. It has a chapter on optimization that is left out in most
books but skips statistics.

[0] -
[https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)

[1] - [https://ocw.mit.edu/courses/mathematics/18-06sc-linear-
algeb...](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-
fall-2011/)

[2] - [http://codingthematrix.com/](http://codingthematrix.com/)

[3] -
[https://courses.csail.mit.edu/6.042/spring18/mcs.pdf](https://courses.csail.mit.edu/6.042/spring18/mcs.pdf)

[4] - [https://www.khanacademy.org/math/statistics-
probability](https://www.khanacademy.org/math/statistics-probability)

[5] -
[https://onlinecourses.science.psu.edu/stat414/](https://onlinecourses.science.psu.edu/stat414/)

[6] -
[https://www.youtube.com/user/joshstarmer/videos](https://www.youtube.com/user/joshstarmer/videos)

[7] - [https://www.deeplearningbook.org](https://www.deeplearningbook.org)

[8] - [https://mml-book.com](https://mml-book.com)

~~~
jamestimmins
These are great insights! Thanks so much. Do you think it's worth going
through pre-calc/calc deeply? I assumed I should do that first, but it would
take quite a while (I haven't taken calc in ~8 years and barely remember more
than the basics).

~~~
harias
Essence of calculus[0] by 3blue1brown for the basics and the second course in
the Coursera Mathematics for Machine Learning would let you get started. You
would rarely need calculus more advanced than that covered in the above, and
if need be you will be in a position to look it up quickly. If you can sustain
your interest in ML over a long period of time and are in no hurry, I would
recommend going through all the math mentioned. If you are a top-down learner,
the fast.ai course on ML and deep learning for coders will get you started
head-first. All the best!

[0] -
[https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53...](https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr)

------
armatav
Can we get that GitHub solutions repo going? I feel like that's super
important for this book. Bought it anyway.

~~~
j2kun
Let's get it started, and initial thoughts, questions, or suggestions can be
in Github issues for now.

[https://github.com/pim-book/exercises](https://github.com/pim-book/exercises)

------
baron816
I’ve found myself unable to do even elementary maths recently just because I’m
sorely out of practice. Hasn’t really affected my performance as a programmer.
Wondering, what kind of math I could learn that would benefit me in my job?

~~~
diego
What kind of work do you do? For some types of development, basic knowledge of
mathematics will take you reasonably far. Knowing more math opens up
possibilities. For example, I recently found myself wanting to add features to
some flight control software for drones. I wanted a return-to-home feature,
which involved implementing a PID controller for gps navigation. I studied
control theory in college decades ago, and hadn't used it for anything
professionally until this year. Also, autonomous navigation requires taking
vectorial inputs from sensors that must be rotated to the frame of reference
of the drone (e.g. the accelerometer). I could not have participated in this
project if I didn't have enough knowledge of calculus and algebra.

------
beefsack
It appears the ebook is in PDF format[1], does anyone know if an EPUB will
become available?

[1]: [https://gumroad.com/l/pim-book](https://gumroad.com/l/pim-book)

~~~
Snowe
I prefer EPUB for most ebooks, but maths books work far better in PDF because
mathematical notation gets turned into image files in an EPUB and don't render
nearly as nicely.

------
mrcartmenes
It’s a shame you don’t get to read any of the actual maths in the sample
pages. Otherwise I might have been able to evaluate whether I want to buy this
book. Intros don’t really tell us much

------
febin
I have been searching for something like this for a while. Just bought the
book, I will get back to you. I hope the book will give me exactly what it
promises.

~~~
febin
I would have loved to have the printed version of this book. Unfortunately not
available in India.

------
oblib
I've been wanting to peek into mathematics and an "introduction" is exactly
what I need.

Thank you for sharing this.

~~~
org3432
This was the book that Richard Feynman used to teach himself calculus when he
was 10 or 11 as I recall: [https://www.amazon.com/Calculus-Practical-Man-J-
Thompson-ebo...](https://www.amazon.com/Calculus-Practical-Man-J-Thompson-
ebook/dp/B004SN1UMC/ref=sr_1_2?s=books&ie=UTF8&qid=1543707079&sr=1-2)

~~~
elbear
This book looks great. Thank you for sharing!

------
madhadron
I would be interested to see someone post their experiences after working
through at least half of the book. I am completely outside the target
audience, and it would be really useful to know what works to teach
mathematics to programmers and what doesn't.

------
dhodges
Long-time programmer without a CS degree here. I've studied polynomial
factoring, adding, subtracting, graphing them, etc. Sites like Khan Academy
break things down in little bits but the underlying theory seldom emerges. But
after working through the preview pages of this book I feel like I finally
have a feel for some of the underlying theory ideas behind polynomials. This
really emerged during the proofs section. The bits of code and analogies to
programming really help. It was like a lightbulb going off in my brain. As a
result I have ordered the book from Amazon and can't wait for it to arrive.
Thank you for this book.

------
bwobst
I recently started reviewing mathematics on Khan Academy to brush up on my
math skills and learn more Calculus so I can better understand ML. Really
looking forward to reading this!

------
paultopia
This looks really nice, from the preview content---I really like the approach
of explaining the background assumptions of reading mathematical definitions
and such. Ordered!

------
Sniffnoy
Some comments/corrections on the first chapter, if you don't mind:

1\. Theorem 2.4 is stated incorrectly. Given the context, I feel like this is
worth correcting. Specifically, it says "degree n" rather than "degree at most
n". Part of the proof purports to prove that the degree is indeed n but of
course it doesn't because that needn't be true.

There are other cases where you say "degree n" for "degree at most n". Again
usually this would be a minor error not worth pointing out, but in this
context it seems worth getting right.

2\. At one point you introduce a convention that deg(0)=-1. Later, in the
exercises, you ask, is this really such a good convention? (The answer being,
of course, no.) IMO you should anticipate this. Indeed I don't think you
should state, as you do, "By convention the zero polynomial is defined to have
degree -1", because that suggests it's some standard universal convention,
which is definitely correct, and it's neither of those. Rather you should say
something like "We'll use the convention that the zero polynomial is defined
to have degree -1". But anyway, the point I made is that, if you're going to
question its correctness later, you should anticipate that here, maybe saying
something like "(Think about whether this convention makes sense.)" Or maybe
not, and just getting rid of the absolutism of your current wording is
sufficient. Either way, getting rid of that absolutism and certainty is good;
you want to encourage to people about this sort of thing immediately, not
encourage them not to think about it until later.

3\. You say that when you see a definition you should write down examples. I
would add, "and non-examples". Ideally non-examples that come as close as
possible but don't quite make it. You touch on this a little with your
polynomial examples, but it's worth stating explicitly.

(In some cases non-examples are unnecessary, but in the generic case one
should look for them.)

4\. Regarding your polynomial examples, you don't justify that they are, in
fact, not polynomials. Now of course you don't, that would be too hard to do
here and take up lots of space you want to use for other things. That's fine.
But if you're not going to do it, you should call out that you're skipping
over it, like you do with other things. After all, all sorts of nonobvious
things can be polynomials -- such as (x-1)(x+6)^2, as you pointed out earlier,
but included no similar examples here. (Yes that's obvious to anyone who knows
anything about polynomials, but my point is that it's not in the correct
syntactic form.) Like, x^e - x^e is a polynomial, you know? Because it's 0. So
without some more knowledge, you can't _immediately_ conclude that your
example x + x^2 - x^pi + x^e is in fact not a polynomial! You should make a
note of that, as I said.

5\. I feel like it's likely worth noting somewhere in this chapter that
actually in general in math it's the "syntactic" definition of polynomial that
turns out to be the right one (you don't want to define polynomials to be
functions if you're working over a finite field, say!). Maybe not and that
would just be confusing, I dunno.

6\. This is just nitpicking, but I'd suggest rewriting Theorem 2.3 in a
clearer, more standard way. "A nonzero polynomial of degree n has at most n
distinct roots." What you wrote down is equivalent, of course, but (IMO)
harder to read.

Otherwise, this is pretty nice. I remember being distinctly confused by stuff
like "the product over j not equal to i" when I was a kid. I imagine it'll be
quite helpful to a number of people that you're laying things out like that
explicitly.

Actually, sorry, on that note, one further comment:

7\. You comment on how sigma and pi notation are special cases of fold, but
you might want to make a further note about how (unlike general folds) these
are folds where the order doesn't matter, and that the fact that the order
doesn't matter is one of the things that allows notation like "product over j
not equal to i".

~~~
j2kun
Of course you're right about degree n vs. at most n, with many easy
counterexamples (the list (1,1), (2,1), (3,1) being a simple one). If you'd
like, please submit an erratum using the link at pimbook.org, and other
readers can see it, and I will include the fix in the next version of the book
and credit you.

Thanks for reading! ^_^

~~~
Sniffnoy
OK, will do! Like I said, I think a lot of people will find this book quite
helpful. :)

------
40acres
Thanks for the effort. I purchased the e-book and will start working through
it immediately. I'll let you know what I think.

------
codesuki
Just ordered from Amazon! I used to read his blog a few years ago and I loved
the articles and the breadth of topics. Thank you!

------
hdt91
From the ToC, is the any reason there is no chapter covering
probability/statistics? It has chapters for single/multivariable calculus and
linear algebra, and all CS programs I know have all three, especially when
there are some nice connections between them, not to mention how useful they
are in other CS/engineering subjects.

------
alan_wade
Can you create an EPUB version? I'd like to buy it but I need EPUB for my
reader.

------
wainstead
Please tell me you wrote it in LaTeX. It would be another reason to buy it.

~~~
j2kun
Of course!

------
antoinevg
I tried to buy it but for some reason Paypal refuses to use my existing
balance and instead asks for my card.

Is this something you can control on your end?

------
blt
minor suggestion: make it easier to see the table of contents. A survey book
leaves uncertain exactly what is included.

------
billfruit
Does it compare to Don Knuth, et al, "Concrete Mathematics: A foundation for
Computer Science"?

~~~
johnsonjo
It might have some crossover, but my guess is it's probably much more
introductory than that book. I didn't know this until fairly recently, but
Concrete Mathematics was used in a Graduate level course at Stanford as the
textbook (with the course name following the book's, Concrete Mathematics).
Kind of threw me off when I first found out, because the book says it's a
foundation for computer science, so I thought it would be an undergraduate
course. So, I don't think you need to be a graduate student or in particular a
Stanford level computer science graduate student to read Jeremy Kun's book.

------
holmberd
Ebook a tad too expensive for me.

------
master_yoda_1
I think the author is confused. His book is not for programmers his book is
for "programmers lacking computer science education" as computer science is a
branch of applied match. If somebody says they have a computer science degree
and they don't know math, I would doubt their degree.

------
harias
I see a lot of users are learning maths for machine learning. I did the same
and here is what I found:

I started with 3blue1brown's Youtube course[0] on Linear Algebra and loved it.
I had already done a college course on LA, but this made me truly understand
what I was doing.

MIT OCW Scholar(independent study) course on Linear Algebra by Prof. Strang[1]
is really good and is designed for self-study. If you have the time, you could
look up Coding the matrix[2] too. I read probability from Mathematics for
Computer Science-MIT[3] and also referred Khan Academy[4] and PennState STAT
414/415 [5] for statistics and probability. StatQuest channel[6] on Youtube
has handwavy but easy to understand videos on statistics for ML too. The Deep
learning book[7] by Ian Goodfellow et al. has a couple of chapters at the
beginning that gives you a fairly good idea of the mathematics required to get
into Deep learning. Communities like r/AskStatistics and r/statistics on
Reddit were really helpful when I got stuck.

I also chanced upon Mathematics for Machine Learning[8] book recently and it
seems to be good. It has a chapter on optimization that is left out in most
books but it skips statistics.

[0] -
[https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x..).

[1] - [https://ocw.mit.edu/courses/mathematics/18-06sc-linear-
algeb...](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algeb..).

[2] - [http://codingthematrix.com/](http://codingthematrix.com/)

[3] -
[https://courses.csail.mit.edu/6.042/spring18/mcs.pdf](https://courses.csail.mit.edu/6.042/spring18/mcs.pdf)

[4] - [https://www.khanacademy.org/math/statistics-
probability](https://www.khanacademy.org/math/statistics-probability)

[5] -
[https://onlinecourses.science.psu.edu/stat414/](https://onlinecourses.science.psu.edu/stat414/)

[6] -
[https://www.youtube.com/user/joshstarmer/videos](https://www.youtube.com/user/joshstarmer/videos)

[7] - [https://www.deeplearningbook.org](https://www.deeplearningbook.org)

[8] - [https://mml-book.com](https://mml-book.com)

Copied from my comment here:
[https://news.ycombinator.com/item?id=18582022](https://news.ycombinator.com/item?id=18582022)

------
nootropicat
The description got me excited, but looking at the table of contents, the
level is ultra basic - appears to roughly correspond to first year of a cs
degree.

~~~
0xddd
Certainly more than just the first year, and I don't think the majority of CS
degrees require multivariable calc or any group theory.

I do wish there were more of a preview than just the TOC to see how novel the
examples are and how much it helps with intuition for these mathematical
concepts beyond what you would learn in a plain CS sequence. That would be my
reason for buying the book and I wouldn't write it off just because the list
of topics covers the first two years of college math.

~~~
preommr
My uni did this weird thing where they put all the math courses into the first
year (except for one stat course in the second year). The first semester had
highschool basics like calc and trig, followed up by another two courses the
following semesters that covered linear algebra and ... something else. I
don't remember, I because I was too busy with girl problems.

Looking back, that first year was brutal with each successive year getting way
easier and way more fun.

------
Nasuno
A section on quaternions would be nice.

------
herostratus101
I'm a little skeptical of CreateSpace.

Why did you decide to self-publish?

~~~
j2kun
I actually used to work for CreateSpace! I think they do a splendid job on the
printing, and the royalties are much better than a publisher. I think I will
write a longer blog post with more details.

~~~
herostratus101
I had a CreateSpace textbook once and the mathematical notation was so grainy
that it was unpleasant to read.

------
00067349
why is it not working

------
ziont
I am basically trying to understand the formulas in machine learning papers,
will this book help achieve improvements in speed?

I just realize I fear math because the educational system I grew up in was
violent (like beating kids for getting a quiz wrong wtf).

It was only through psilocybin mushrooms did I discover math and calculus
again.

~~~
Ericson2314
Plenty of cliffhangers in this comment

~~~
ziont
Sure, I grew up in South Korea much of my childhood, corporal punishments was
the norm.

So I have this phobia of calculus and math. Anytime I'm faced with a formula I
get this panic attack. Some may call it PTSD. But it explains why I had such
problem with calculus and it really made me feel inferior.

it's still a cliff hanger, searching for my arc.

------
mlevental
Jeremy, been reading your blog for years. Just wanted to say thanks for the
wealth of readable intros to interesting mathematics.

~~~
cbHXBY1D
I'd like to tag onto this: I've been reading your blog for nearly a decade and
can say that you were one of my inspirations for studying math and CS.

------
liftbigweights
I guess this is for the nontraditional programmers since computer science is a
mathematical field and programming is simply applied mathematics in some
sense. I don't see how you could get a CS degree without being competent in
mathematics to some degree since CS is a mathematical field.

------
andrepd
From the bit I've read from
[https://pimbook.org/pdf/pim_first_pages.pdf](https://pimbook.org/pdf/pim_first_pages.pdf)
it seems to be very very poor.

* 19 pages of droning before you start with something concrete. Much talk talk talk about your experiences before you get to the point. I can't put into words how much it frustrates me when I'm expecting to read something interesting and the author takes 3 paragraphs talking about nothing (usually with lots of overexcited exclamation marks).

[sorry if I am being blunt, but it's how I feel]

* Imprecise definitions. This defeats the purpose of learning mathematics. Like Leslie Lamport says, rigour in mathematics is not a hurdle or a chore one must endure, it's the whole point of learning the damn thing. You give imprecise definitions, and then _obscure it even further with neverending paragraphs of confusing explanations_. This to me kills the whole pedagogical value the book might have. Here is a rule of thumb that in my experience applies well to almost everything in mathematics: the simpler your explanation is, the better. Your goal is to explain a concept as succintly and beautifully as possible. This exposes the _idea_ behind it. A long and meandering explanation only serves to obscure the idea behind. Less is more.

* Attempting to shoe-horn programming "lingo" into mathematics. Sometimes, the best way to explain something, even to programmers themselves, is not to force an awkward analogy with Java programming. EDIT: 5 pages later: "The best way to think about this is like testing software." oh boy...

* The graph in e.g. page 8 (20 of the pdf) is terribly typeset. The axes text is way too small to read and in a font that doesn't match the rest of the content.

~~~
mlevental
wtf is wrong with hn.

>[sorry if I am being blunt, but it's how I feel]

you should learn to keep your feelings to yourself when the only function they
serve is to denigrate others and derive cruel satisfaction for yourself.

>Here is a rule of thumb that in my experience applies well to almost
everything in mathematics

this is aspirational pretension - everyone claims to appreciate formal purity
/after/ they've learned something but when you're /learning/ none of that
matters because you're just trying to develop intuition. to be one of those
people that understands after their own stumblings/ruminations and then
begrudge the next person the same is despicable. shame on you and i hope
you're never in a position where someone depends on you to teach them
absolutely anything.

>Imprecise definitions. This defeats the purpose of learning mathematics. Like
Leslie Lamport says, rigour in mathematics is not a hurdle or a chore one must
endure,

but that's just like your opinion man (or leslie lamport's). there are shelves
and shelves of books for people like you - go read bourbaki or rudin or
mochizuki or whomever you'd like. this book is not for /you/ \- it's stated
purpose is to excite and entice people that don't have formal mathematical
training to learn mathematics and those sorts of people decidedly don't enjoy
austere definitions and succinct theorems and terse proofs.

hence the only purpose your comment serves is to hurt the author's feelings,
an author whom i might add has done infinitely more for the math community
than you have with your pedantry and vitriol by maintaining a blog
[https://jeremykun.com/](https://jeremykun.com/) with literally reams of
interesting mathematical content that is simultaneously exciting /and/
rigorous. and furthermore iirc jeremy was originally a math ed phd student so
i trust his opinion of the right way to teach math infinitely more than i do
yours mr random internet physics guy.

next time think twice before posting this kind of lowbrow mean shit.

~~~
theoh
"wtf is wrong with hn"

One thing that's wrong with HN is that perceived "negativity" often gets
condemned in exactly the way you have done here.

It seems as if a significant number of HN readers have never really
participated in a spirited discussion with arguments made from multiple
different perspectives. Maybe any kind of apparent conflict scares them, maybe
they project their own aggression onto a comment that seems to go against the
grain of the discussion. It will never change.

~~~
axiometry
There are many easy ways to rephrase OP's comment into one that isn't so
direct and denigrating. The only thing "apparent" here is that OP has trouble
with empathy.

~~~
andrepd
"Direct", yes. "Denigrating", how?? I'm genuinely asking so I can fix that in
the future, unless you think criticising is offending.

 _> The only thing "apparent" here is that OP has trouble with empathy._

Again, I can do without the online pretend-therapy. Amazing how perceptive
some people are that they deduce the most profound things from a dozen lines
of text!

~~~
hyperpallium
I wanted to say I found your original comment critical, but not offensive. But
I found the reply made to you offensive, because personal and aggressive.
Which I think is how you see it too.

However, it seems several people took the side of the replier.

So I reviewed your original comment, and I think I've found the problem: it
exaggerated and labelled, e.g. _droning_ , _talk talk talk_ , _talking about
nothing_ , _neverending paragraphs_.

Many of these aren't literally true ("nothing", "neverending"). Others are
emotionally loaded ("drone"). It's probably almost always better to speak
directly, without exaggeration or emotion... but this is particularly
important when criticizing.

I didn't notice these at first because I tend to filter out decoration, and
just hear the content (i.e the literal meaning) - though this is much easier
to do when I'm not personally involved!

I think, "to be blunt", to speak plainly, to get to the point, really mean to
be factual and accurate - without emotional language, exaggeration or
labeling.

Anyway, I notice dang asked to not continue this thread, but I was troubled by
it, and reviewing it helped me - maybe it will help you too.

