
Ask HN: How or where to begin learning mathematics from first principles? - smtucker
A little bit of background:<p>As I&#x27;ve become more skilled with programming and electronics I have felt myself begin to near a wall. My knowledge of and skills in math is relatively poor and all the interesting things that make up the more advanced programming and electronics pursuits seem to be heavily based on math.<p>When I butt heads with these more advanced topics I find I resort to scouring the internet to cobble together pieces of various tutorials and guides. While it does feel good in a way to hack together limited understandings to make satisfactory solutions I&#x27;m beginning to feel less like a hacker and more like a hack. The knowledge I gain is shallow and I don&#x27;t think my tactics will get me much further.<p>Instead of working backwards from implementation I would like to start from the beginning and learn math the proper way. Unfortunately most of the resources I find online seem to more focused on teaching me how to <i>solve math problems</i>. I have no interest in solving specific math problems on a test, I&#x27;m not going to school and I doubt I will ever take a math test again in my life. I want to work up from first principles and gain the tools to reason about the world mathematically and understand the cool things that are currently out of my reach like antenna design, machine learning, electromagnetism, cryptography etc.<p>Unfortunately I so know so little I have no idea how where to start. What websites are helpful, what books I should buy, etc. I was hoping someone here could share. Thank you.
======
WallWextra
I got started on "real" math with Spivak's Calculus. Some people start with
Topology by Munkres, which is not a difficult book but is very abstract and
rigorous so makes a good introduction. If you feel like you have ok calculus
chops, maybe Real Mathematical Analysis by Charles Pugh. Other good books are
Linear Algebra Done Right by Axler, or the linear algebra book by Friedberg,
Insel, and Spence. Maybe even learn linear algebra first. It's so useful.

Do plenty of exercises in every chapter, and read carefully. Count on about an
hour per page (no joke). Plenty of math courses have their problem sets
published, so you can google a course which uses your chosen book and just do
the exercises they were assigned.

If you don't feel comfortable with basic algebra and other high school math,
there's Khan Academy, and some books sold to homeschoolers called Saxon Math.

If you haven't had a course in calculus before, maybe you should skim a more
intuitive book before or alongside reading Spivak. I don't know of any
firsthand, but I heard Calculus for the Practical Man is good. Scans are
freely available online (actually, of all these books) and Feynman famously
learned calculus from it when he was 12.

~~~
alfiedotwtf
OP wants it from first principles as their maths is "poor" . I don't think
Spivak is a good choice to jump right into calculus.

If OP wanted a more softer approach, Spivak's Hitchhiker's Guide to Calculus
is probably a better option first before going full Spivak.

~~~
WallWextra
I honestly couldn't tell what he meant, whether he had stumbled through calc 3
and gotten sick of memorizing arbitrary rules, or if he can't solve a
quadratic.

I tried to include some good high-school level math resources.

------
hal9000xp
I had the same problem with math. There are two books which changed my mindset
forever:

[http://en.wikipedia.org/wiki/What_Is_Mathematics%3F](http://en.wikipedia.org/wiki/What_Is_Mathematics%3F)

[http://en.wikipedia.org/wiki/Concrete_Mathematics](http://en.wikipedia.org/wiki/Concrete_Mathematics)

The first one is the general book about math. It's a classical book.

The second one is Donald Knuth's book written specifically for computer
science guys.

~~~
copperx
Does Concrete Mathematics have any practical applications? and by practical, I
mean, can you use the knowledge there to learn more math?

I have the impression that it is mostly a book that teaches you techniques of
how to solve recurrences. Am I wrong?

~~~
walrus
Concrete Mathematics is essentially the mathematics needed to study analysis
of algorithms. From the preface:

    
    
      One of the present authors had embarked on a series of books called
      The Art of Computer Programming, and in writing the first volume he
      (DEK) had found that there were mathematical tools missing from his
      repertoire; the mathematics he needed for a thorough, well-grounded
      understanding of computer programs was quite different from what he'd
      learned as a mathematics major in college. So he introduced a new
      course, teaching what he wished somebody had taught him.
    

So yes, there are practical applications. And recurrences are a recurring
theme, but there's more to it than just that.

------
maroonblazer
I found myself in a similar situation about a year ago and while I've made a
lot of progress I still have a long way to go. Here's what I've found useful:

Precalculus, Coursera,
[https://www.coursera.org/course/precalculus](https://www.coursera.org/course/precalculus)

"Precalculus Mathematics In A Nutshell", George F. Simmons,
[http://www.amazon.com/Precalculus-Mathematics-Nutshell-
Geome...](http://www.amazon.com/Precalculus-Mathematics-Nutshell-Geometry-
Trigonometry/dp/1592441300/)

"The Hitchhiker's Guide to Calculus", Michael Spivak,
[http://www.amazon.com/Hitchhikers-Guide-Calculus-Michael-
Spi...](http://www.amazon.com/Hitchhikers-Guide-Calculus-Michael-
Spivak/dp/0883858126/)

[http://www.khanacademy.com](http://www.khanacademy.com)

[http://www.reddit.com/r/learnmath/](http://www.reddit.com/r/learnmath/)

[http://www.math.stackexchange.com](http://www.math.stackexchange.com)

------
nicklaf
I absolutely, positively second the recommendation of "Real Mathematical
Analysis" by Charles Pugh (don't miss the advice he relates from his
colleague, on pages 9&10, with the heading "Metaphor and Analogy", which could
easily form the basis for a dissertation on the psychology of mathematical
intuition and inspiration). Pugh does an exquisite, uncommonly good job of
avoiding a pitfall that >99.9% of mathematics authors fall into, making it
more or less impossible for one to genuinely understand mathematics outside of
a university. What pedagogy is it that Pugh (and Spivak) care enough to get
right, where nearly all others fail? It is this: Pugh has carefully crafted
his book into what I'd call a 'mind expansion tool': almost everything there
is crafted to be read, internalized, and meditated on. By contrast, almost all
other mathematics books read like a laundry list of theorems and proofs, with
some discussion inserted as an afterthought.

Let me tell you a dirty secret about mathematics textbooks: almost all of them
are highly flawed and incomplete dialogs between the author and the supposed
reader. The reason for this: the first and foremost purpose of almost all
mathematics textbooks is to organize the AUTHOR'S conception of the subject
(not the student's!), for the primary purpose of TEACHING a course on the
subject. In other words, the book's primary purpose is NOT to be read
directly. A given mathematics textbook represents a model of the way in which
the author (casually) BELIEVES students of your level might try to reason
about the subject, whereas in reality, the author has so long ago advanced
beyond your level that s/he cannot even remember how difficult it was when
s/he first learned the subject.

If you attempt to read most mathematics texts directly, outside the context of
a university course (and without having already gained a true understanding of
mathematics), you will almost certainly reach a stage in your reading in which
you have internalized a certain amount of verbiage (say, some theorems, maybe
a proof or two, and some light discussion, with the pretense that the
abstractions introduced are 'useful' for some unknown reason). Certainly, you
are asked to do some problems at the end of the section, and this is in fact a
somewhat reliable way to reach some kind of personal discovery, and hopefully
at least some mild enlightenment about just what the section was really about.
(A good textbook will have highly instructive problems; however, the
difficulty is, it is virtually impossible to know just how worthy of your time
they will be before you spend hours working on them.)

However, even at university, I almost NEVER resorted to reading the textbook:
careful attention paid to the lecture, copious notes, regular attendance of
office hours, and most of all, intense thought about the problems SPECIFICALLY
given (and hopefully invented) by the lecturer were all that I was ever
inclined to pursue (and all that I ever needed to succeed). If I read the
textbook at all, it was only ever sought as a reference, or to fill in the
gaps of a lecture which I failed to understand completely. Which is precisely
the reason most math texts read so poorly: they are supplementary material for
university courses.

Despite vouching for it, I do not recommend you only read Pugh--at least not
right away, and not from cover-to-cover. If you must start from scratch,
please start with Spivak's "Calculus", which is similarly excellent in
directly addressing the pedagogical needs of an autodidactical learner. Please
note that by far the most thing to learn when studying mathematics is
something that is impossible to encapsulate in any specific result; I am
talking about "mathematical maturity". If you only do a one or two problems in
all of Spivak, but spend several hours thinking deeply about a specific aspect
of a problem or passage that leads you to have new, creative thoughts, you
will have learned more than you could have by merely working through it in a
mindless fashion.

If you do intend to make it through a significant chunk of Spivak, be prepared
to spend an enormous amount of time at it. There are many, many difficult
problems in it. In addition, you should be spending time and effort not only
writing down the steps of your proofs, but trying to come to grips with the
very definitions you are working with. In mathematics, definitions and
assumptions are most important--and they are certainly more important than
clever tricks. This is why graduate students in mathematics have to learn
their subjects over again--most undergraduate subjects do not do a precise or
complete enough job of completely stating all definitions needed to make the
theory entirely clear.

The greatest mathematician of the 20th century, Alexander Grothendieck (who
recently passed away), was as productive as he was because of his uncanny
skill in inventing definitions of mathematical objects which put the problem
in a broader context. Raw mathematical power is available to mathematicians to
the extent that they allow the context of ANY given problem which they attempt
to expand in their mind, until it connects with the relevant intuition. Once
this inspiration strikes, the answer becomes easy. To Grothendieck, solving a
problem was more a test of his ability to create a useful theory, than an end
to itself. This speaks volumes to the value of thinking abstractly and
creatively, rather than just trying out hoards of problems and expecting
things to magically line up in your brain, hoping for an answer to pop out.
There are generally two kinds of problems in mathematics: those which simply
require organizing the essential definitions and required theorems until the
answer is obvious, and those which need a fundamentally new idea. In neither
case will you be able to 'plug and chug'. A great deal of harm is done to
students of mathematics in grade school, because the subjects are invariably
taught by non-mathematicians, in a highly non-mathematical way--in fact, in a
way that is antithetical to the very core of the subject. Please google and
read Paul Lockhart's essay titled "A Mathematician's Lament" to see if you
really understand just what mathematics is (or if deleterious notions from
your schooldays are continuing to blind you from the simple beauty of pure
mathematics). I will add as well the recommendation that you read G.H. Hardy's
essay, "A Mathematician's Apology".

Learning mathematics is so incredibly difficult for the novice because it is
almost impossible to teach this process. One must fail over and over again. I
cannot lie: mathematics will be probably be difficult and unnatural for
everybody except those who allow themselves enough time to commit to thinking
freely and creatively about it, until a point of 'accelerating returns' is
reached. Attempting to proceed directly to applied problems will invariably
fail. The counter-intuitive truth about applied mathematics is that studying
pure mathematics is in fact far more practical than attempting to think about
the problem directly. This is because an understanding of pure mathematics
gives you the ability to CREATE. Alfred Whitehead said: "'Necessity is the
mother of invention' is a silly proverb. 'Necessity is the mother of futile
dodges' is much nearer the truth."

I'll also leave you with a relevant quote from the great expository writer and
mathematician Paul Halmos: "What does it take to be [a mathematician]? I think
I know the answer: you have to be born right, you must continually strive to
become perfect, you must love mathematics more than anything else, you must
work at it hard and without stop, and you must never give up."

And another, in which he tells you how you should read a mathematics text:
"Don't just read it; fight it! Ask your own questions, look for your own
examples, discover your own proofs. Is the hypothesis necessary? Is the
converse true? What happens in the classical special case? What about the
degenerate cases? Where does the proof use the hypothesis?"

I have heard professional mathematicians express themselves the difficulty
that even they have in maintaining the attention span required to read a
traditionally written, unmotivated mathematics textbook. One such
mathematician said that he skipped directly to the theorems, and attempted to
discover a proof for himself. This is another secret to mathematics: it is
always better to invent proofs yourself than to read the ones given in the
text. This may be counter-productive in the early stages of your learning, but
it is something you should continuously challenge yourself to attempt. If the
first steps of a proof do not come to mind automatically, cover up the proof
given in the text, except for the first few words. Then try to prove it again
from scratch, with the knowledge that the objects being used in just that
initial part might be part of one possible proof. Repeat as necessary, until
you have either discovered a proof for yourself, or you have uncovered the
entire proof given in the text. In either case, you will have thought long and
hard enough to never forget the definitions and ideas needed to write the
proof you end up with, even if you forget the proof itself. Later, you will
only remember the essential idea. Then, it is an excellent exercise to attempt
to work out the details again.

~~~
pixelperfect
Thanks so much for your insightful post.

I was working through the first couple of chapters in Spivak's Calculus
recently, and was struck by 1) what a great book it was, and 2) what a time
commitment it would take to complete it properly! If I could choose a book to
take to a tropical island for a year, Spivak might be it. But is it worth
spending hundreds of hours working through Spivak and Pugh from the standpoint
of developing a professional skill? For someone like OP already out of college
and wanting to learn to think mathematically to apply it to
programming/electronics, is working through these books as a basis to pursue
further mathematical studies overkill? Or worth it?

~~~
marcosdumay
For somebody that wants a career on electronics? "Sure" is not enough to
express it... Your question is almost equivalent to "Is it worth it to spend
time studying electronics"? The only thing I don't knwo is if the book goes
deep enough, or if he'll need another couple of them.

Now, if he wanted only to get good at the software realm, I'd recommend a more
superficial understanding of calculus, saving time to study discrete math and
CS (that are mostly the same thing in different languages).

Anyway, I'd also recommend algebra to both specialities, to be learned at the
same time as calculus and discrete math. It'll make the learning easier.

------
jpfr
Wanting to learn mathematics from "first principles" brought a lot of comments
from graduate-level mathematicians. While their advice applies very much for
mathematics students, I can't recommend going down that road for engineering
types.

In mathematics, everything is connected. One can build up a specific topic
from first principles only. But with a too narrow focus one looses these
lovely connections between different fields that allow to change the
perspective on how we think about problems.

I was in a similar situation some 2 years ago. Try "Vector Calculus, Linear
Algebra, and Differential Forms" by Hubbard and Hubbard. You will not be
disappointed. Yes, you get (enough) rigor and a lot of first principles
mathematics. Nonetheless, the authors have found a lovely way to integrate a
wealth of important results from many fields into a coherent text that has one
goals: letting you understand the connections and letting you solve the
problems.

~~~
nextos
Is Hubbard & Hubbard an engineering-type text? I was under the impression that
it's very rigorous. It was even used as a textbook at Harvard Math 55.

~~~
jpfr
As a mathematics textbook it of course provides rigorous proofs. But it
doesn't neglect to develop intuitive insight (that can be less rigorous yet
still very effective).

Here's a quote given in chapter two. That's some motivation to develop more
mathematical maturity as an engineer!

    
    
      In 1985, John Hubbard was asked to testify before the
      Committee on Science and Technology of the U.S. House of
      Representatives. He was preceded by a chemist from DuPont,
      who spoke of modeling molecules, and by an official from the
      geophysics institute of California, who spoke of exploring
      for oil and attempting to predict tsunamis. When it was his
      turn, he explained that when chemists model molecules, they
      are solving Schrödinger’s equation, that exploring for oil
      requires solving the Gelfand-Levitan equation, and that
      predicting tsunamis means solving the Navier-Stokes equation.
      Astounded, the chairman of the committee interrupted him and
      turned to the previous speakers. “Is that true, what
      Professor Hubbard says?” he demanded. “Is it true that what
      you do is _solve equations_?”

------
gtani
Very similar question:
[http://www.reddit.com/r/compsci/comments/2notz5/how_do_you_p...](http://www.reddit.com/r/compsci/comments/2notz5/how_do_you_personally_learn_more_about/)

(with a good answers regarding Khan Academy, Polya "How to Prove", lamar.edu,
math.stackexchange.com, universityofreddit.com, lots of online curriculums
from different universities, curricula aimed at data science (Prob/stats,
linear algebra, calculus). These're good listings of resources for precalc and
for data science:

[http://www.reddit.com/r/math/comments/2mkmk0/a_compilation_o...](http://www.reddit.com/r/math/comments/2mkmk0/a_compilation_of_useful_free_online_math_resources/)

[http://www.reddit.com/r/MachineLearning/comments/1jeawf/mach...](http://www.reddit.com/r/MachineLearning/comments/1jeawf/machine_learning_books/)

[http://www.zipfianacademy.com/blog/post/46864003608/a-practi...](http://www.zipfianacademy.com/blog/post/46864003608/a-practical-
intro-to-data-science)

______________

The threshold question are,

\- can you locate like minded folks to bootstrap a study group, or tutor(s)
who are willing to devote time?

\- (if you're in US/Canada) how about community colleges by you, in a lot of
places they're still well funded and will efficiently pull you up to first
year college calculus and linear algebra, and maybe further

\- What level of high school / college math did you last attain, because
reviewing to that level shouldn't be too stressful. At least, in my very
biased view of math education.

------
barry-cotter
Betterexplained.com has many very good intuitive explanations of mathematical
concepts. Elements by the publishers of Dragonbox will give you reasonable
intuition for geometry. If you just want to use calculus Silvanus P.
Thom(p?)son's _Calculus Made Easy_ is excellent. Linear Algebra Done Right and
LAD Wrong are both good books. LADW is free, legally.

The Art of Problem Solving series of books are uniformly excellent.

------
haxiomic
Try [http://www.khanacademy.org](http://www.khanacademy.org) (free), their
math series starts from basic arithmetic and walks all the way through to
undergrad-level mathematics.

I personally preferred khanacademy to my math teaching at school and it's been
handy during my degree.

For more advanced stuff i've found Stanford's online courses
([https://www.youtube.com/user/StanfordUniversity/playlists](https://www.youtube.com/user/StanfordUniversity/playlists))
and MIT OpenCourseWare
([http://ocw.mit.edu/index.htm](http://ocw.mit.edu/index.htm)) to have the
best material for Physics

~~~
kellros
I second this and would strongly advise this approach.

The courses available on Khan Academy help you visualize the math and gain a
better understanding on the 'why' (reasoning) while also teaching you the
'how' (application).

There's sufficient math courses available to teach you everything from
pre/primary school arithmetic to first year university/college level
calculus/linear algebra.

~~~
tjl
I hope that their math section is better than some of their engineering
courses. See the critique at,

[http://www.leancrew.com/all-this/2012/12/khan/](http://www.leancrew.com/all-
this/2012/12/khan/)

I've also been involved in teaching similar material as Dr. Drang and agree
completely with his critique.

I've come across students who've had similar sloppy teaching and had to re-
teach material so they could unlearn what they'd learnt and get a proper
foundation for moving forward. Consistently, they would have very poor
assignments for the first few weeks until they had that foundation.

------
spc476
I found "Mathematics for the Millions" ([http://www.amazon.com/Mathematics-
Million-Master-Magic-Numbe...](http://www.amazon.com/Mathematics-Million-
Master-Magic-
Numbers/dp/039331071X/ref=sr_1_1?ie=UTF8&qid=1417675239&sr=8-1&keywords=Mathematics+for+the+millions))
to be a very interesting read. It goes through the history of math, how it was
discovered and used, from ancient Egypt (geometry) to the 1600s (Calculus) and
shows the progression of thought.

~~~
kingmanaz
Seconded. "Mathematics for the Million" is an incremental, bottom-up approach
to learning Mathematics. It should be an interesting read for those fond of
history.

------
jvvw
I suspect there is some confusion here by the use of 'first principles' in the
title. As a former mathematician when I see 'first principles' I think of
axiomatic approaches to mathematics and the study of subjects like analysis,
algebra and geometry from those first principles. I suspect however that what
you want is good ground in the foundations of mathematics necessary to
understand common applications of mathematics, which is quite different.

It is also a difficult question to answer without some context of your current
mathematical understanding. Do you know any calculus? Any linear algebra? If
you don't, those would be good places to start as they underpin many areas
with applications of mathematics. Bear in mind too that Mathematics is a huge
subject in that even if you take to it naturally, you're not going to acquire
a breadth and level of understanding without a fair amount of study. Looking
back I probably put a lot of hours in my youth into really understanding
linear algebra fully for example to the level that I could teach it at a high-
ranking university, and that was with the help of people whom I could pester
with my questions and the incentive of exams to take.

The other approach is to look at the areas you want to understand and then
work out what topics you need to study to fully understand them. Cryptography
is worlds away from electromagnetism for example. Looking at cryptography, are
you interested in public key cryptography or symmetric key cryptography? If
the former, then you need to start learning number theory and if the latter,
knowing some statistics is probably more relevant.

------
ivan_ah
I recommend you start with a review of all the topics from high school math
which are not clear to you, e.g. functions, solving equations, geometry, and
algebra. This may take some time, but it's totally worth it. Building your
math knowledge is like building a house---you want to start from a solid
foundation.

Next, the traditional "pillars" of STEM are calculus and mechanics. Calculus
will beef-up your skills for understanding and manipulating function.
Mechanics is important because it teaches you about modelling real-world
phenomena with mathematical equations.

Perhaps of even greater importance are the subjects of probability and linear
algebra. Probabilistic reasoning and linear algebra techniques (e.g.
eigendecomposition) are used for many applications.

RE problems, I think you should reconsider your stance about that. It is very
easy to fall into the "I learned lots of cool stuff today" trap, where you
think you're making progress, but actually you haven't integrating the
knowledge fully. Solving problems usually will put you outside of your comfort
zone and force you to rethink concepts and to form new "paths" between them.
That's what you want---ideally the math concepts in your mind to be a fully
connected graph. Speaking of graphs, here's a concept map from my book that
shows (a subset of) the links between concepts from high school math, physics,
calculus, and linear algebra:
[http://minireference.com/static/tutorials/conceptmap.pdf](http://minireference.com/static/tutorials/conceptmap.pdf)

Good luck with your studies!

~~~
eru
All good points. By the way, if you go from first principles, do measure and
integration theory before probability theory.

------
chris_wot
Here is what I've read so far (I've been starting from first principles).
Basically, I've been reading through the series "Humungous Book of x
Problems", having read (and about to read) the following:

1\. Humungous Book of Basic Math and Pre-Algebra Problems

2\. Humungous Book of Algebra Problems (still actually going through this)

3\. Humungous Book of Trigonometry Problems (up to vectors)

4\. Will be reading Humungous book of Calculus Problems soon and then the
Humungous Book of Geometry Problems.

I know this sounds slanted, but I'm a big fan of these books. However, I also
had to do what you did with Trigonometry - one of the extremely irritating
things is that nobody teaches you _why_ the names are sine, cosine, tangent,
cotangent, secant and cosecant. For me, I had to go to do some elementary
research and draw the lines on a circle to understand that sine was "gap" or
"bow" (corruption of the original Arabic), tangent was based on tangens (to
touch) and secant was based on secans (to cut). Once I worked that out,
actually everything started to get rather a lot easier. Sure wish I'd had easy
Internet access in high-school and a more adventurous intellect!

------
learnstats2
I've worked with several adult learners on this but almost no adult is able to
learn math just for fun - unless they have a project or crucial examination to
work towards. But, you do have a project. You should use that.

I think you're mistaken that your existing tactics won't get you further. This
is how most people learn, by trying things out and building on them until they
understand what works and what doesn't - standing on the shoulders of giants.

For practical purposes, your satisfactory solutions are a great piece of
learning and the start of your understanding. You're maybe experiencing some
discomfort about it, but that's normal. Keep going!

P.S. You said "from first principles", which has a specific meaning in math.
It's a kind of philosophical ideal in math that you start from nothing (forget
about high school math) and carefully and precisely build the subject of
mathematics on top. Some of the answers here picked up on that phrase, but it
probably isn't relevant to the other interests you mentioned - to do
programming or electronics, you will want to build on the knowledge that you
have learned already.

------
mathgenius
I suspect the real answer to your question is "in your own head, and with your
own pen and paper." Amazingly, you cannot learn mathematics from reading
books. Especially the abstract stuff. It is just too opaque. Not until you
start to manipulate the symbols yourself, in your own way, does it start to
make sense. Having said that, I would still like to recommend a book to read
:-) This is big-boy maths (i am not shitting you), explained with cartoons and
a bazillion examples from things like sensor networks, robotics, pattern
recognition, electromagnetism, it goes on and on. Just published, but also
available for free. I bought several copies. It blows my mind that a
mathematician took the time to explain these advanced topics to the mere
mortals:

"Elemantary Applied Topology", Robert Ghrist.
[http://www.math.upenn.edu/~ghrist/notes.html](http://www.math.upenn.edu/~ghrist/notes.html)

Although you probably need to have some idea of multi-variate calculus (and
linear algebra) before you get started.

------
SEJeff
I'm in a not too different situation from yourself as a self taught developer.
I spent about 6 months and taught myself most of the mathematics concepts I
forgot or never tried hard enough to learn from the Khan Academy. Their
mathematics tutorials are excellent.

[http://khanacademy.org](http://khanacademy.org)

------
jckt
You seem quite resourceful so you might enjoy MetaMath[1]. This is, in my
opinion, _literally_ learning mathematics from first principles. Well, it's
not really _learning_ mathematics (insofar that lot of the concepts won't be
particularly novel), but it's really showing you the "first principles" of
mathematics, and how you can build that up into other stuff.

If you feel like MetaMath is your kinda thing, do visit the FAQ; it's quite
good (and virtually required reading if you're going to do this alone).

Admittedly, it's not going to give you the tools suited for solving problems
of antenna designs, or enlighten you about electromagnetism, but if you're
into just pure recreational mathematics, it's worth a look.

[1] [http://us.metamath.org/index.html](http://us.metamath.org/index.html)

~~~
mdup
No, I don't think MetaMath is the kind of thing the OP wants. Sure, it builds
mathematics from "first principles", but not in the same meaning as the OP
means. When you read his question, "first principles" really mean "as a
beginner".

Although I like how MetaMath brags about how easy it is to verify proof by
yourself if you're not a mathematician, in the end I don't think it's useful
for any people but math-oriented in the first place. It's not going to explain
the meaning behind the math (it actually intends to take rid of the meaning)
and certainly not solve daily problems like antenna design or machine
learning. I rather see it like a collection of theorems declared true by a
computer following dumbly (I mean that in a positive sense) a substitution
rule and base axioms. It's another kind of beauty.

------
alfiedotwtf
First principles? You're not going to beat:

    
    
      http://en.wikipedia.org/wiki/Naive_Set_Theory_(book)
    

It starts with defining what a set is, then builds up from there while being
completely contained. No knowledge is assumed and could be enjoyed by someone
with high school maths.

------
westoncb
I was in a very similar situation. The thing that helped me the most was
getting an understanding of what it is mathematicians are trying to do and
what their methods are. "What is Mathematics?" ended up being pretty pivotal
(as another poster mentioned), though the topics did seem pretty random to me
when going through it at first. The introductory material to "The Princeton
Companion to Mathematics" is an excellent compass for orienting yourself. That
introductory portion is about 120 pages, though it's a huge book (well over
1000 pages) and the rest of it probably won't be too useful to you for a while
(but at the same time, those intro essays were invaluable). I'd second Axler's
"Linear Algebra Done Right" as a nice early (yet pretty serious, despite the
title) book. Linear algebra is used all over the place, and the way it's
addressed in that book you'll learn something about creating mathematical
systems rather than merely how to use some existing system. It also helped me
understand what's interesting and why in mathematics to read in philosophy of
mathematics and math history, and popularizations, etc. "Men of Mathematics"
is quite good, as are "Gödel's Proof" and "Mathematics and the Imagination."

Once I was immersed in it for a while, I started getting into more CS related
mathematics: things in computation theory, programming language theory,
category theory--and I would spend a lot of time reading networks of wikipedia
math articles from basically random starting points inspired by something I
read. Didn't understand much to start with, but I'm glad I did it and I find
them indispensable now.

I think it's of the utmost importance to go into it with an understanding that
you SHOULD feel lost and confused for quite a while--but trust in your mind to
sort it out with a little persistence, and things will start coming together.
If you find yourself avoiding math, finding it unpleasant and something you
'just can't do,' check out Carol Dweck's 'Self-Theories.' Good luck!

------
tiler
On where to start => I'd start by getting a very solid grasp of graph theory.
It is the bedrock of many algorithms and along the way you'll learn all kinds
of useful mathematical notation, but in a way that should be easier for you to
pick up than plain old 'pure-math.' I've found the following series of videos
presented by Donald Knuth, aka The Christmas Tree Lectures, to be incredibly
informative and inspirational [1].

Another area of math that you need to know for C.S. related activities is
linear algebra. To get started I'd recommend reading 'Coding the Matrix' by
Phillip Klein.

[1] =>
[https://www.youtube.com/playlist?list=PLoROMvodv4rNMsVRnSJ44...](https://www.youtube.com/playlist?list=PLoROMvodv4rNMsVRnSJ44WuwbminUqXX2)

~~~
jeffasinger
If he's looking for a more of an actual first principles approach to linear
algebra, I could not recommend starting with Linear Algebra Done Right by
Sheldon Axler enough.

It starts from a few basics which most people would be comfortable with post
calculus, and builds up to the most important theorems in linear algebra. It's
probably not the book for you if you are actually interested in linear algebra
algorithms.

------
azmenthe
I wanted to give some recommendations before I hijacked your thread with my
own question but I was going to suggest What is Mathematics, How to Prove it
and Naive Set Theory which have already have been mentioned.

I'm actually in a related situation in which I'm competent in analysis
(bachelors in physics) but I struggle with all the category theory inspired
design patterns in functional programming.

Every book/article I've tried to read is either far too mathematical and so is
disconnected from programming or is too close to programming and lacking in
general foundations (ie: a monad is a burrito).

I would greatly appreciate any suggestions!

~~~
Todd
I came here to suggest the same thing. I started with real analysis but
realized that I was lacking the mathematical maturity to understand things
back to first principles. My suggestion is to start with learning how the
foundations of mathematics were rebuilt starting from axiomatic principles in
the last part of the 19th century and early 20th century.

The book How to Prove It helped me tremendously. Get a good book on abstract
algebra. Maybe start with Herstein, then progress to Dummit and Foote and,
maybe eventually, to Hungerford. This is the kind of math that will help you
reason about data sets. It's foundational in mathematics and it also happens
to be very applicable to computer science.

After that, you will have a strong basis for branching out to more specialized
branches of mathematics that may have more relevance to the types of problems
that you're solving.

~~~
nicklaf
That is excellent advice. If the student is struggling to write proofs in her
or his real analysis text, s/eh should definitely seek out "How to Prove It".

------
j2kun
Here is a shameless plug for my own blog, [Math ∩
Programming]([http://jeremykun.com/](http://jeremykun.com/)). The difficulty
ranges in how much mathematical background you need, but there are also some
primers aimed at programmers, starting from this
[essay]([http://jeremykun.com/2013/02/08/why-there-is-no-
hitchhikers-...](http://jeremykun.com/2013/02/08/why-there-is-no-hitchhikers-
guide-to-mathematics-for-programmers/)).

I'd really love feedback from you on what you found approachable and what you
found unapproachable.

------
dil8
I have found the below links excellent pathways to mastering mathematics. I
actually was in the same place as you and started with Spivak Calculus. Now I
am back at school studying mathematics :P

[http://www.amazon.com/gp/richpub/syltguides/fullview/20JWVDE...](http://www.amazon.com/gp/richpub/syltguides/fullview/20JWVDEKMUJQ2)

[http://www.amazon.com/gp/richpub/syltguides/fullview/R1GE1P2...](http://www.amazon.com/gp/richpub/syltguides/fullview/R1GE1P236K3YSV)

------
plinkplonk
Learn how to prove theorems. "How to Prove It" by Velleman is the best book
for this (imho). (Amazon link [http://www.amazon.com/How-Prove-It-Structured-
Approach/dp/05...](http://www.amazon.com/How-Prove-It-Structured-
Approach/dp/0521675995))

More good advice at [http://scattered-thoughts.net/blog/2014/11/15/humans-
should-...](http://scattered-thoughts.net/blog/2014/11/15/humans-should-learn-
maths/)

------
Tinned_Tuna
I would highly recommend reading:

    
    
      - A Course of Pure Mathematics (G. H. Hardy). I read this before I started my undergrad in CS/Maths. Free Online.
      - University Calculus (Hass, et. al.). This was reading for my first year, and continued to be useful throughout. Expensive.
      - A Book of Abstract Algebra (Charles C. Pinter). I read this after my degree, but boy, do I wish I'd had it _during_ my degree. Fairly cheap.
      - Linear Algebra Done Right (Sheldon Axler). Moderately priced.
    

I can't remember which of the texts I had on Number Theory were good at this
point, but I do remember that it was quite hard to locate one which was
tractable. There's a whole heap of fields which I chose to avoid (woo for
joint degree!) but now I kinda regret it -- although I wouldn't have easily
given up any of the comp. sci. modules I did...

I would always recommend working through Hardy first, regardless of what else
you do.

I don't know of any good websites for this stuff. You may be able to find
reading lists on public-facing university module/course web pages, which will
help bolster this list.

It may be cheaper to buy access to your local uni's library than try to buy
all of the above books. The uni I attended is around £70 a year for a non-
student.

Your best bet is to get a notebook and the book that interests you most and
work through that book, then the next, and so on. If you get stuck, as someone
with a maths degree what the heck's going on :-p

~~~
th3iedkid
>Linear Algebra Done Right (Sheldon Axler).

Thanks for this , i had been trying to read G. Strang's one and this one seems
to be a more compact refresher on the course!

Could be b/c of my level of knowledge but to follow Strang's one to begin with
, i had to watch those MIT lectures online in the begining.

------
brandonmenc
Mathematics: Its Content, Methods and Meaning by Aleksandrov, Kolmogorov, and
Lavrent'ev

[http://www.amazon.com/Mathematics-Content-Methods-Meaning-
Do...](http://www.amazon.com/Mathematics-Content-Methods-Meaning-
Dover/dp/0486409163)

Covers something like three years of an undergraduate degree in mathematics.
Lots of words - but that text is used to develop an understanding of the
concepts and images. Considered a masterpiece. An enjoyable read.

------
RohanAlexander
'The Nature and Origins of Modern Mathematics: an Elementary Introduction'
could be a nice complement to the suggestions already here. It's very much
first principles, but in a comprehensive and interesting way. You can download
it here:
[http://cupid.economics.uq.edu.au/mclennan/NatureOrigins/natu...](http://cupid.economics.uq.edu.au/mclennan/NatureOrigins/natureorigins.html)

------
tel
There is no royal road to math.

There are instead, roughly, between 4 and 50 branches of mathematics which
each start and "end" in different places with different goals and philosophies
and styles.

What makes this all "math" is that almost inexplicably these branches tread
the same ground over and over. Which is to say: learning one branch can
dramatically improve your ability to understand another branch. Learning
several builds your "mathematical intuition" all together.

In order to learn more math you will most likely want to choose one of these
branches and study it intensely. You will _not_ want to start from first
principles to begin. Nobody does, it's too complex. Instead, you should seek
to understand some set of "introductory core ideas" from that branch.

In order to study _any_ branch you will need to learn the language of
mathematics: logic, theorems and proofs. Essentially, this is a language you
can think in and speak. Without it, you will be incapable of carefully
expressing the kind of sophisticated ideas math is founded upon.

Fortunately, programming _is_ an application in logic. If you can program a
computer you're between 1/3rd and 2/3rds of the way to understanding
mathematical logic well-enough to begin to understand mathematical argument.
That said, you will not yet know enough. There are books which teach this
language directly (Velleman's How to Prove It, perhaps) and there is an entire
field of _study_ of this language. Usually, however, you just learn by doing.
Certain branches are more amenable to this learning of the logical language
than others.

One thing to note about the logical language that would be told to you by any
teacher but is only mentioned in a few books is that it is not much like
English in that you can just listen to or read something in the logical
language and have it immediately form a cogent picture in your mind.
Mathematical language is a language of action---you _MUST_ complete proofs,
often on your own, in order to have grasped what was being said. This doesn't
mean there isn't value in skimming a math book and reading the results without
doing the proofs. Indeed, that's often a great first pass through a book! But
think of doing that like reading the Cliff's Notes for a great work of
literature. You might be able to talk about it a little bit, but you certainly
haven't understood the material.

One final note with respect to learning any branch—where you start is
critical. Often, even the simplest reviews of the material of one branch of
mathematics will assume "basic, working knowledge" of many other branches.
This is done in order to accelerate learning for those who possess that
working knowledge—it takes advantage of the frequent crossover properties from
one branch of mathematics to another. Finding resources which do this
minimally will be important to begin... but you will probably not succeed
entirely. Sometimes, you just have to read a math book and walk away from it
without being too much the wiser, but recognizing that there was some
technique from another field you could learn to unlock a deeper understanding.

\---

Some major fields of mathematics are:

1\. Algebra. This is like and unlike what you may call algebra today. It is
the study of how things are built and decomposed. Indeed, it notes that many
"things" can be described entirely in terms of how they are built and
decomposed. It is often a good place to begin for programmers as it espouses a
way of thinking about the world not dissimilar to the way we model domains in
while programming. Some books include _Algebra: Chapter 0_ by Aluffi and
_Algebra_ by MacLane.

2\. Combinatorics. This is the study of "counting", but counting far more
complex than anything meant by that word in normal usage. It is often a first
field of study for teaching people how to read and speak proofs and theorems
and therefore is well recommended. It is also where the subfield of graph
theory (mostly) lies which makes it more readily accessible to programmers
with an algorithms background. I can recommend West's _Introduction to Graph
Theory_ , but only with the caveat that it is incredibly dry and boring---you
will get out of it what you put into practicing the proofs and nothing more.

3\. Topology. This is the study of what it means for one thing to be "near"
another. Similarly, it is the study of what it means to be "smooth". It's a
somewhat more abstract topic than the others, but in modern mathematics it
holds a privileged role as its theorems tend to have surprising and powerful
consequences elsewhere in mathematics. I don't know any good introductory
material here---perhaps Munkres' _Topology_.

4\. Calculus and Analysis. This is the study of "smooth things". It is often
the culminating point of American high school mathematics curricula because it
has strong relationship with basic physics. Due to this interplay, it's a
remarkably well-studied field with applications throughout applied
mathematics, physics, and engineering. It is also the first "analyst's" field
I've mentioned so far. Essentially, there are two broad styles of reasoning in
mathematics, the "algebraicist's" and the "analyst's". Some people find that
they love one much more than the other. The best intro book I know is Spivak's
_Calculus_.

5\. Set Theory. This is, on its surface, the study of "sets" which are, often,
the most basic mathematical structure from which all others arise. You should
study it eventually at this level to improve your mathematical fluency---it's
a bit like learning colloquial English as compared to just formal English.
More deeply, it is a historical account of the philosophical effort to figure
out what the absolute basis of mathematics is---a study of foundations. To
understand Set theory at this level is far more challenging, but instrumental
for understanding some pieces of Logic. This can therefore be a very useful
branch of study for the computer scientist investigating mathematics. I don't
know a good introductory book, unfortunately.

6\. Number Theory. This is, unlike the others above excepting "surface" Set
theory, a branch which arises from studying the properties of a single,
extremely interesting mathematical object: the integers. Probably the most
obvious feature of this field is the idea that numbers can be decomposed into
"atomic" pieces called prime numbers. That idea is studied generally in
algebra, but the properties of prime numbers escape many of the general
techniques. I don't know a good introductory book, unfortunately.

7\. Measure Theory and Probability Theory. Measure theory is the study of the
"substance" of things. It generalizes notions like length, weight, and volume
letting you build and compare them in any circumstance. Furthermore, if you
bound your measure, e.g. declare that "all things in the universe, together,
weigh exactly 1 unit", then you get probability theory---the basis of
statistics and a form of logical reasoning in its own right. I don't know a
good introductory book, unfortunately.

8\. Linear Algebra. A much more "applied" field than some of the others, but
one that's surprisingly deep. It studies the idea of "simple" relationships
between "spaces". These are tackled in general in (general) algebra, but
linear algebra has vast application in the real world. It's also the most
direct place to study matrices which are vastly important algebraic tools. I
don't know a good introductory book, unfortunately.

9\. Logic. A much more philosophical field at one end and an intensely
algebraic field at the other. Logic establishes notions of "reasoning" and
"judgement" and attempts to state which are "valid" for use as a mathematical
language. Type Theory is closely related and is vital for the development of
modern programming languages, so that might be an interesting connection. I
don't know a good introductory book, unfortunately.

\---

Hopefully, some of the ideas above are interesting on their surface. Truly
understanding whether one is interesting or not is necessarily an exercise in
getting your feet a little wet, though: you will have to dive in just a bit.
You should also try to understand your goals of learning mathematics---do you
seek beauty, power, or application? Different branches will be appealing based
on your goals.

Anticipate studying mathematics forever. All of humankind together appears to
be on the path of studying it forever---you personally will never see its end.
What this means is that you must either decide to make it a hobby, a
profession, or to consciously leave some (many) doors unopened. Mathematics is
a universal roach motel for the curious.

But all that said, mathematics is the most beautiful human discovery. It
probably always will be. It permeates our world such that the skills learned
studying mathematics will eke out and provide value in any logical concern you
undertake.

Good luck.

~~~
pneumatics
| I don't know a good introductory book, unfortunately.

I liked Eric Schechter's Classical and Non-Classical Logics for an eye-opening
view into how logical systems are constructed from axioms. Might be a
satisfying read for OP, as well.

[http://press.princeton.edu/titles/8119.html](http://press.princeton.edu/titles/8119.html)

------
tfont
This is a beautiful post! I'm loving what I am reading and the suggestions
seem quite insightful :]

I am not sure if any of the following books were recommendation already:

\- Carl B. Boyer - A History of Mathematics \- William Dunham - Journey
Through Genius \- Philip J. Davi & Reuben Hersh - The Mathematical Experience
\- Martin Aigner & Günter M. Ziegler - Proofs from the Book \- Imre Lakatos -
Proofs and Refutations \- Robert M. Young - Excursions in Calculus: An
Interplay of the Continuous and the Discrete \- Courant & Robbins - What is
Mathematics? \- George Pólya - How to Solve It \- Morris Kline - Kline’s
Mathematics: The Loss of Certainty

More or less a general deep understanding of Mathematics but will definitely
give you a boost in a direction that you will favor.

~~~
nicklaf
William Dunham's "Journey Through Genius" is a fantastic book. It is one of
the best pieces of expository writing on mathematics that I have ever read.
Almost anybody can pick it up, it reads like a novel; it dives directly into
some very germane case studies of classical analysis, and then interweaves
them into a brilliant narrative. It begins very simply, starting with Newton,
but very quickly progresses to more recent (and more fascinating) chapters.

Having this book on your shelf so that you can pick it up when curiosity
strikes, or when you find yourself at a creative dead-end, would be an
excellent way to complement the study of a traditional text on real analysis
(Dunham's book has no exercises, or even definitions and theorems in the style
of a traditional math book).

------
rankam
If you are looking for calculus one resources, Jim Fowler's Calculus One
Coursera course is great, IMHO. I watched the videos at 2x speed (I found he
speaks very slow, which can be great at times) and was able to complete it in
a couple of weeks. The best part was that it didn't seem like he tried to
"dumb it down". I would also recommend reading one of the many books others
have suggested while taking the course - I've found that I learn much better
when I hear topics explained in different ways and from different
perspectives. Best of luck!

[https://www.coursera.org/learn/calculus1](https://www.coursera.org/learn/calculus1)

------
iyogeshjoshi
here I also found this website [http://codingmath.com](http://codingmath.com)
where they only teaches you math and how to apply it to program i found it
very interesting. you should give it a try too.

------
paraboul
If you're interested in 3D programming, you want to learn linear algebra.

An excellent book that can teach you the basics (from trigonometry to advanced
linear algebra) is "3D Math Primer for Graphics and Game Development".

------
senderista
It presupposes a certain degree of mathematical maturity, but Robert Geroch's
_Mathematical Physics_ (don't let the title fool you!) has the most intuitive
explanations (with diagrams) I've ever seen of definitions, concepts, and
proofs. It's roughly at the first-year grad level, but is almost completely
self-contained, and uses category theory to motivate the entire organization
of the book (whatever object is being treated in the current chapter generally
has a forgetful functor to an object in the previous chapter).

------
CurtMonash
My favorite first-year calculus text by far is Michael Spivak's Calculus. When
I was in school in the 1970s, he was by common consensus THE great and
differentiated writer of math books -- but that was based on a small sample
size, and Calculus is the only one that should be in this discussion.

There were a lot of other books back then that I think of as likely to have
been the best in their time, but those were all more in the vein of texts for
classes that I just happened to feel served me well.

------
cwhy
Other people have given very good suggestions. But just mention that there is
not any first principles for mathematics, that is an active area for research
for pure math.

There are a lot of layers of mathematics, the deeper you get, the more
difficult it becomes. But for normal applications (like antenna design,
machine learning, electromagnetism, cryptography etc), you don't need to get
to the deepest level, which are mostly proofs for a formulation of the whole
mathematics framework.

------
saintx
"A Source Book in Mathematics" by David Eugene Smith. ISBN 0486646904.

Short description: The writings of Newton, Leibniz, Pascal, Riemann,
Bernoulli, and others in a comprehensive selection of 125 treatises dating
from the Renaissance to the late 19th century — most unavailable elsewhere.
Grouped in five sections: Number; Algebra; Geometry; Probability; and
Calculus, Functions, and Quaternions. Includes a biographical-historical
introduction for each article.

------
ArkyBeagle
There is some distance from this to antenna design, electromagnetism, etc, but
I think you have to be fluent in proofs to actually follow along on those.
Math is a big subject; ymmv.

A Transition to Advanced Mathematics by Douglas Smith (Author), Maurice Eggen
(Author), Richard St. Andre (Author)

ISBN-13: 978-0495562023 ISBN-10: 0495562025 Edition: 7th

It shows up on Abebooks which could help with the price. It's a _small_ book,
exceedingly well-crafted and worth every nickel.

~~~
jumasheff
@ArkyBeagle Thank you for the book recommended!

@smtucker I'm also a math noob, and I'm a half way through Udacity's "College
Algebra" (free) course:

[https://www.udacity.com/course/viewer#!/c-ma008](https://www.udacity.com/course/viewer#!/c-ma008)

There is also a good introductory class on Statistics:

[https://www.udacity.com/course/viewer#!/c-st101](https://www.udacity.com/course/viewer#!/c-st101)

After these classes, hopefully, reading "Transition to Advanced Mathematics"
will not be a pain.

------
jeremyis
I went from being a below average math student in high school to a really good
one and it started by reading this text book and doing the problems in the
back: [http://www.amazon.com/Stewart-Redlin-Watsons-College-
Algebra...](http://www.amazon.com/Stewart-Redlin-Watsons-College-
Algebra/dp/B002T9QZ7W/ref=sr_1_13?ie=UTF8&qid=1417668505&sr=8-13&keywords=college+algebra%2C+stewart)

------
playing_colours
Many people here advised Algebra Done Right by Sheldon Axler. There is 3rd
edition of this book available now in electronic form, and paper books will be
available in a week. They are just beautiful, colour:
[http://www.springer.com/mathematics/algebra/book/978-3-319-1...](http://www.springer.com/mathematics/algebra/book/978-3-319-11079-0)
.

------
timwaagh
you will need time. lots of time. I dont think its worth it.

you need to start off with \- logic and set theory. an introduction to proofs
(level 0). something on (proofs in) classical geometry. \- then linear
algebra. (level 1) \- group theory (fe Joe Armstrongs book) and an
introductory (real, single-variate) analysis course. also probability theory
(I'd recommend Meester's book) (level 2) \- calculus, rings & galois theory,
topology (fe Munkres) (level 3) \- complex analysis, (and other stuff I didnt
even pass) (level 4)

I'd recommend buying one book at a time and working through the entire thing,
all the problems. It can quickly become too difficult if you try paralellize.
But it can actually be a good experience to do one thing well.

oh yeah. the payoff of this stuff isnt very good. take it from a guy coding
php for 10 euro / hour. so another warning not to do this.

Calculus is usually taught early because physicists need to know it as well
but it depends on other things so if you do this early you will not really
understand.

------
begriffs
If you really want to go back to first principles, try "Foundations of
Analysis" by Edmund Landau. It builds the integers, fractions, Dedekind cuts,
and the real and complex numbers from scratch.

It's totally rigorous and starts from, "the ability to read English and to
think logically -- no high-school mathematics, and certainly no advanced
mathematics."

~~~
nicklaf
I would be very careful before unleashing a beginner on this book. It would be
too easy, IMO, for the reader to end up with the wrong idea that mechanical
proofs like the ones in this book are all that are needed in mathematics,
since it's possible to get as far as the real numbers (or complex numbers)
with so little geometric intuition. Furthermore, the real numbers are the most
concrete, familiar setting to do analysis in, but it is not healthy to spend
so much focus on the concrete details of the real line so early on: a student
of mathematics needs variation to keep alive her or his curiosity. Pugh does
an excellent job of explaining the simple geometric essence of Dedekind cuts.
In principle, one might learn something about proof writing by reading the
Landau book. However, it is much, much better, IMO, to defer detailed study of
something so specific, until after first surveying the setting in which the
results of Landau's book are used. In most real analysis books, the reader is
asked to prove a few of the results covered in Landau.

Mathematics is foremost a conceptual subject rather than a mechanical one, and
it is immaterial that the reader have firsthand experience that all the
theorems are proven. As one learns mathematics, it soon becomes apparent that
there will always be gaps in her or his knowledge, and that is therefore best
to skip steps that s/he believes could be done in principle.

~~~
DavidWanjiru
Are you on twitter, nicklaf? You sound like someone I'd want to be following.

~~~
nicklaf
Negative, but I do plan to set up a sort of homepage for my research sometime
in the future. When I do, I'll link to it in my HN profile.

------
kikowi
I am also interested in getting better at math, especially algorithmic type of
math. I though about playing TopCoder arena, which focuses on algorithmic
problems and often requires a lot of math. What do you guys think about this
approach? Is it realistic to solve those problems with google as primary
resource of knowledge and get better at algorithmic math?

------
mathattack
This is a bit of a divergence, but a fun way to practice what you learn is
Project Euler, which will link it to your programming.
[https://projecteuler.net/](https://projecteuler.net/) It's more of an applied
problem set of increasing difficulty than learning from first principles
though.

~~~
copperx
Do you suggest finding a closed solution for every problem?

------
sudorank
I started to learn maths again in university. The library was a great place to
learn the history of it (I started to get into the history of Encryption)

As for learning how to do stuff with maths. I'm a huge fan of being taught it
- then again i'm the sort of learner who really gains when showed how to do
something and then left to practice.

------
TimSchumann
"Read Euler, read Euler, he is the master of us all." \- Pierre-Simon Laplace

Seriously though, 'Euler: The Master of Us All' by William Dunham was the book
that got it going for me. Good mix of history, narrative and mathematics.
Really great read.

As an aside, it's absolutely fascinating to learn how much we don't know about
maths.

------
phonon
I would check out

Mathematics: From the Birth of Numbers by Jan Gullberg

Beautiful book, goes from the counting numbers to partial differential
equations. It's also a delight to read.

I would start that as a survey of mathematical concepts, and then move on to a
good math engineering/physics textbook, like Mathematical Methods in the
Physical Sciences by Mary L. Boas

------
galeos
I can recommend 'Who is Fourier?' By the Transnational College of Lex. It
assumes very little prior knowledge and introduces the reader to, among
others, the concepts of trigonometry, calculus, imaginary numbers, logarithms
and Fourier analysis.

I wish I'd known about this book when I was studying maths at school.

------
amathstudent
Perhaps you might enjoy an essay I wrote on this very topic, based on my
experiences of learning math on my own for 5 years:
[https://medium.com/@amathstudent/learning-math-on-your-
own-3...](https://medium.com/@amathstudent/learning-math-on-your-
own-39fe90c3536b)

~~~
jscheel
Hah, I just read your essay a couple of days ago!

------
uonyx
Methods of Mathematics Applied to Calculus, Probability, and Statistics by
Hamming is an excellent and rigorous introduction text.

[http://www.amazon.com/Methods-Mathematics-Calculus-
Probabili...](http://www.amazon.com/Methods-Mathematics-Calculus-Probability-
Statistics/dp/0486439453)

------
sekon
Thanks for putting this question. I too hope to do this someday .. I am stuck
with knowing what are the fundamental topics so that i can apply what i learn
to as many domain as i see fit, with minimal learning of basic concepts. I
have unfortunately not made that much headway.

------
ryanlbrown
I'm trying to do this too right now. I've found this course on real analysis
to be very helpful (I suggest watching it sped up though):

[https://youtube.com/playlist?list=PL0E754696F72137EC](https://youtube.com/playlist?list=PL0E754696F72137EC)

------
pmalynin
For those whore are still in University, consider taking a proof-based
calculus course, the methods and rigor you learn there will help you learn
more. The same can be said for a proof based linear algebra course, which for
programmers is even more useful.

------
rajeshpillai
Apart from all the great replies, here, do try out
[http://betterexplained.com/](http://betterexplained.com/) (Many things are
free here, you wont' be at a loss, checking this site).

It has some nice aha! moments in math study.

------
doublewhy
Stanford has a great online course titled "How to Learn Math". It doesn't
answer your question directly, but explains what approach should you take to
learn math effectively. Course is very short, just 6 lessons by 20 minutes
each.

------
blablabla123
Surprised to not read it here yet, but if you are really serious about it,
read the Bourbaki books:
[http://en.wikipedia.org/wiki/Nicolas_Bourbaki](http://en.wikipedia.org/wiki/Nicolas_Bourbaki)

------
dominotw
I don't think programming or electronics require you have advanced
mathematical knowledge. Can you cite an example of things you got stumped on?

------
iyogeshjoshi
you can visit [http://functionspace.org](http://functionspace.org) or
Khanacademy.org both side provide amazing stuff like video lectures,
materials, articles etc for all level starting from very beginner to advance
to Experts. Good luck :)

------
amdcpus
I always buy my books from amazon. You should try them out.
[http://www.amazon.com/gp/search/ref=as_li_qf_sp_sr_tl?ie=UTF...](http://www.amazon.com/gp/search/ref=as_li_qf_sp_sr_tl?ie=UTF8&camp=1789&creative=9325&index=aps&keywords=books&linkCode=ur2&tag=thelaptoptoge-20&linkId=6NQYJQWQ5S2PS7AQ)

------
brudgers
If one takes the view that mathematics is naught but a set axioms and some
conventions for replacement, then the use of Euclidean or Riemannian space
simply becomes a choice based on the problem one wishes to
investigate...neither is wrong. We pick the axioms and the rules, if they're
interesting and reasonably consistent, it's mathematics.

The first principle of _learning_ mathematics is that the notation describing
idea `M{n}` depends on an understanding of some notation describing idea
`M{n-1}. That's why there is some sense in which "first principles" of
mathematics makes sense. In the end, learning mathematics is a long haul - the
academically elite of the world normally spend twelve years just getting to
the point of completing a first calculus course before heading off to
university.

Of course, there isn't really an explicit ordering to the notation. This
despite our ordering of the school-boy educational system. Out in the adult
world, mathematicians, engineers, scientists, etc. just grab whatever notation
is convenient for thinking about the problem they are trying to solve. Thus,
it is common for separate domains to have wildly different underlying
abstractions for a common mathematical concept: ie. two problems which are
reducible to each other by manipulating notation using replacement.

What this means is that there's no meaningful reason to derive the domain
specific language [notation] of cryptography and antenna design simultaneously
from Peano arithmetic...sure there's a formalism, but it's a Turing tarpit
equivalent to building Facebook's infrastructure in Brainfuck. Starting from
first principles is a task for mathematicians of Russel's and Whitehead's
calibers. For a novice, it constitutes a rookie mistake; keeping in mind that
the problem Gödel found with _Principia Mathematica_ is foundational to
computer science.

The philosopher CS Pierce's criticism of Descartes _Meditations_ can be
elevator pitched as: enquiry begins where and when we have the doubt, not
later after we have travelled to some starting point. The base case for
extending our knowledge is our current knowledge; creating better working
conditions and unlearning poor habits of mind are part of the task.

If the enquiry grows out of knowledge in computing, it is impossible to start
anywhere but from computing. Getting to the "No! I want to start over here!"
place is part of the enquiry and a sham exercise.

All of which is to preface two suggestions:

\+ Knuth's _Art of Computer Programming_ presents a lot of mathematics in a
context relevant to people with an interest in computing. Volume I starts off
with mathematics, Volume II is all about numbers, Volumes III and IV are
loaded with geometry and the algebraic equivalents of things we think about
geometrically.

\+ Iverson's _Math for the Layman_ and other works are useful for introducing
the importance of notation and tying it to computing. [Disclaimer: I'm
currently in love with J, and posting the following link was where I started
this comment]. [http://www.cs.trinity.edu/About/The_Courses/cs301/math-
for-t...](http://www.cs.trinity.edu/About/The_Courses/cs301/math-for-the-
layman/)

\+ Because notions of computability are implicit in mathematics, automata
theory is another vector for linking knowledge of computing to an increased
understanding of mathematics.

Good luck.

------
graycat
Take the standard path.

High School

Algebra I

Plane geometry (with emphasis on proofs)

Algebra II

Trigonometry

Solid geometry (if can get a course in it -- terrific for intuition and
techniques in 3D)

College

Analytic geometry (conic sections)

Calculus I and II

Linear algebra

Linear algebra II, Halmos, _Finite Dimensional Vector Spaces_ (baby version of
Hilbert space theory)

Advanced calculus, e.g., baby Rudin, _Principles of Mathematical Analysis_ \--
nice treatment of Fourier series, good for signals in electronic engineering.
The first chapters are about continuity, uniform continuity, and compactness
which are the main tools used to prove the sufficient conditions for the
Riemann integral to exist. At the end Rudin shows that the Riemann integral
exists if and only if the function is continuous everywhere but on a set of
measure zero. But what Rudin does there at the beginning with metric spaces is
more general than he needs for the Riemann integral but is important later in
more general treatments in _analysis_. Rudin does sequences and series because
they are standard ways to define and work with some of the important special
functions, especially the exponential and sine and cosine further on in the
book. The material in the back on exterior algebra is for people interested in
differential geometry, especially for relativity theory.

Ordinary differential equations, e.g., Coddington, a beautifully written book,
Coddington and Levinson is much more advanced) -- now can do basic AC circuit
theory like eating ice cream.

Advanced calculus from one or several more traditional books, e.g., the old
MIT favorite Hildebrand, _Advanced Calculus for Applications_ , Fleming,
_Functions of Several Variables_ , Buck, _Advanced Calculus_ \-- can now look
at Maxwell's equations and understand at least the math. And can work with the
gradient for steepest descent in the maximum likelihood approach to _machine
learning_.

Maybe take a detour into differential geometry so that can see why Rudin,
Fleming, etc. do exterior algebra, and why Halmos does multi-linear algebra,
and then will have a start on general relativity.

Royden, _Real Analysis_. So will learn measure theory, crucial for good work
in probability and stochastic processes, and get a start on functional
analysis (vector spaces where each point is a function -- good way to see how
to use some functions to approximate others). Also will learn about linear
operators and, thus, get a solid foundation for linear systems in signal
processing and more.

Rudin, _Real and Complex Analysis_ , at least the first, real, half. Here will
get a good start on the Fourier transform.

Breiman, _Probability_ \-- beautifully written, even fun to read. Measure
theory based probability. If that is too big a step up in probability, then
take a fast pass through some elementary treatment of _probability and
statistics_ and then get back to Breiman for the real stuff. Will finally see
what the heck a random variable really is and cover the important cases of
convergence and the important classic limit theorems. Will understand
conditioning, the Radon-Nikodym theorem (von Neumann's proof is in Rudin, _R
&CA_), conditioning, the Markov assumption, and martingales and the astounding
martingale convergence theorem and the martingale inequality, the strongest in
mathematics. So will see that with random variables, can look for
independence, Markov dependence, and covariance dependence, and these forms of
dependence, common in practice, can lead to approximation, estimation, etc.

Now will be able to understand EE treatments of second order stationary
stochastic processes, digital filtering, power spectral estimation, etc.

Stochastic processes, e.g., Karatzas and Shreve. _Brownian Motion and
Stochastic Calculus_. Now can get started on mathematical finance.

But there are many side trips available in numerical methods, linear
programming, Lagrange multipliers (a surprisingly general technique), integer
programming (a way to see the importance of P versus NP), mathematical
statistics, partial differential equations, mathematical finance, etc.

For some ice cream, Luenberger, _Optimization by Vector Space Methods_ or how
to learn to love the Hahn-Banach theorem and use it to become rich, famous,
and popular with girls!

------
Datsundere
you should do courses on coursera.

------
humility
one of the best of hacker news!

------
osoba
I will try to list resources in a linear fashion, in a way that one naturally
adds onto the previous (in terms of knowledge)

[PREREQUISITES]

First things first, I assume you went to a highschool, so you don't have a
need for a full pre-calculus course. This would assume you, at least
intuitively, understand what a function is; you know what a polynomial is;
what rational, imaginary, real and complex numbers are; you can solve any
quadratic equation; you know the equation of a line (and of a circle) and you
can find the point that intersects two lines; you know the perimiter, area and
volume formulas for common geometrical shapes/bodies and you know trigonometry
in a context of a triangle. Khan Academy website (or simple googling) is good
to fill any gaps in this.

[BASICS]

You would obviously start with calculus. Jim Fowlers Calculus 1 is an
excellent first start if you don't know anything about the topic. Calculus:
Single Variable
[https://www.coursera.org/course/calcsing](https://www.coursera.org/course/calcsing)
is the more advanced version which I would strongly suggest, as it requires
very little prerequisites and goes into some deeper practical issues.

By far the best resource for Linear Algebra is the MIT course taught by
Gilbert Strang [http://ocw.mit.edu/courses/mathematics/18-06sc-linear-
algebr...](http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-
fall-2011/Syllabus/) If you prefer to learn through programming,
[https://www.coursera.org/course/matrix](https://www.coursera.org/course/matrix)
might be better for you, though this is a somewhat lightweight course.

[SECOND STEP]

After this point you'd might want to review single variable calculus though a
more analytical approach on MIT OCW
[http://ocw.mit.edu/courses/mathematics/18-01sc-single-
variab...](http://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-
calculus-fall-2010/syllabus/) as well as take your venture into multivariable
calculus [http://ocw.mit.edu/courses/mathematics/18-02sc-
multivariable...](http://ocw.mit.edu/courses/mathematics/18-02sc-
multivariable-calculus-fall-2010/Syllabus/)

Excellent book for single variable calculus (though in reality its a book in
mathematical analysis) is Spivaks "Calculus" (depending on where you are,
legally or illegally obtainable here [http://libgen.org/](http://libgen.org/)
(as are the other books mentioned in this post)). A quick and dirty run
through multivariable analysis is Spivaks "Calculus on Manifolds".

Another exellent book (that covers both single and multivar analysis) is
Walter Rudins "Principles of Mathematical Analysis" (commonly referred to as
"baby rudin" by mathematicians), though be warned, this is an advanced book.
The author wont cradle you with superfluous explanations and you may encounter
many examples of "magical math" (you are presented with a difficult problem
and the solution is a clever idea that somebody magically pulled out of their
ass in a strike of pure genius, making you feel like you would have never
thought of it yourself and you should probably give up math forever.
(Obviously don't, this is common in mathematics. Through time proofs get
perfected until they reach a very elegant form, and are only presented that
way, obscuring the decades/centuries of work that went into the making of that
solution))

At this point you have all the necessery knowledge to start studying
Differential Equations [http://ocw.mit.edu/courses/mathematics/18-03sc-
differential-...](http://ocw.mit.edu/courses/mathematics/18-03sc-differential-
equations-fall-2011/Syllabus/)

Alternativelly you can go into Probability and Statistics
[https://www.coursera.org/course/biostats](https://www.coursera.org/course/biostats)
[https://www.coursera.org/course/biostats2](https://www.coursera.org/course/biostats2)

[FURTHER MATH]

If you have gone through the above, you already have all the knowledge you
need to study the areas you mentioned in your post. However, if you are
interested in further mathematics you can go through the following:

The actual first principles of mathematics are prepositional and first order
logic. It would, however, (imo) not be natural to start your study of maths
with it. Good resource is
[https://www.coursera.org/course/intrologic](https://www.coursera.org/course/intrologic)
and possibly
[https://class.stanford.edu/courses/Philosophy/LPL/2014/about](https://class.stanford.edu/courses/Philosophy/LPL/2014/about)

For Abstract algebra and Complex analysis (two separate subjects) you could go
through Saylors courses
[http://www.saylor.org/majors/mathematics/](http://www.saylor.org/majors/mathematics/)
(sorry, I didn't study these in english).

You would also want to find some resource to study Galois theory which would
be a nice bridge between algebra and number theory. For number theory I
recommend the book by G. H. Hardy

At some point in life you'd also want to go through Partial Differential
Equations, and perhaps Numerical Analysis. I guess check them out on Saylor
[http://www.saylor.org/majors/mathematics/](http://www.saylor.org/majors/mathematics/)

Topology by Munkres (its a book)

Rudin's Functional Analysis (this is the "big/adult rudin")

Hatcher's Algebraic Topology

[LIFE AFTER MATH]

It is, I guess, natural for mathematicians to branch out into:

[Computer/Data Science]

There are, literally, hundreds of courses on edX, Coursera and Udacity so take
your pick. These are some of my favorites:

Artificial Intelligence [https://www.edx.org/course/artificial-intelligence-
uc-berkel...](https://www.edx.org/course/artificial-intelligence-uc-berkeleyx-
cs188-1x)

Machine Learning
[https://www.coursera.org/course/ml](https://www.coursera.org/course/ml)

The 2+2 Princeton and Stanford Algorithms classes on Coursera

Discrete Optimization
[https://www.coursera.org/course/optimization](https://www.coursera.org/course/optimization)

Convex Optimization [https://itunes.apple.com/itunes-u/convex-optimization-
ee364a...](https://itunes.apple.com/itunes-u/convex-optimization-
ee364a/id384232270) [https://itunes.apple.com/us/course/convex-optimization-
ii/id...](https://itunes.apple.com/us/course/convex-optimization-
ii/id495052483)

[Physics]

[http://theoreticalminimum.com/courses](http://theoreticalminimum.com/courses)

[http://ocw.mit.edu/courses/physics/](http://ocw.mit.edu/courses/physics/)

------
infinity
One way to approach your wishes to learn "mathematics from first principles"
is to see modern mathematics as the study and application of formal systems:

[http://en.wikipedia.org/wiki/Formal_system](http://en.wikipedia.org/wiki/Formal_system)

A formal system has several components:

An alphabet of symbols from which sequences or strings of symbols are
constructed. Some of these strings of symbols can be well-formed according to
some formal grammar, which is the next component.

Next we have a collection of basic assumptions, called axioms, which are
supposed to reflect the obvious truths about whatever we want to formalize in
the formal system.

And then we have some rules of inference. They allow us to derive conclusions
from premises. An example would be the rule of modus ponens: If we have "If A
then B" and "A", we can conclude "B".

An example of a formal system is ZFC set theory which can be regarded as a
formalization of one concept, the concept of a set:

We take "classical predicate logic" as a background formal system, it already
has logical symbols, like symbols for AND, OR and "IF ... THEN ..." and
quantifiers "FOR ALL ..." and "THERE EXISTS ...".

We enhance this logic with one non-logical symbol, the binary element-of-
symbol ∈. With it we want to express the idea that something is an element of
something, for example x ∈ y is supposed to mean that x is an element of y.

Of course this is a bit simplified, but now we can build expressions (with
symbols from the alphabet, according to the grammar for logical formulas plus
the element symbol) which talk about the element-of-relationship between
individuals.

Next, we sit together at a round table and discuss which properties about sets
and element-of or membership of a set we see as self-evident - there is room
for discussion and there can be many different intuitions.

For example, as in ZFC set theory, we may want to have some existence axioms.
They guarantee us that in this formal system certain objects do exist. An
example is the axiom of the empty set: There exists a set which has no
elements. This statement can be written in our formal language.

Other axioms may have a more constructive meaning. Instead of telling us that
something exists, they say that given the existence of some objects we know
the existence of further objects. An example would be the axiom of set unions:
Given some arbitrary sets A and B, there exists a set C, which contains all
the members of A and all the members of B as its elements. Another axiom
asserts the existence of an unordered pair of any two given sets, from this we
can define the concept of an ordered pair, which is very important.

ZFC is one example of a set theory, there are many different set theories. You
could exchange classical logic with intuitionistic logic and arrive at some
formal system for intuitionistic or constructive set theory. You can drop
certain axioms, because maybe they do not appear as self-evident to you (for
example the axiom of choice, which contributes the "C" in ZFC, is not accepted
by some people). You may add further axioms to arrive at a possibly stronger
theory.

One interesting aspect about set theory is that the concept of set is very
powerful and expressive, because many concepts from modern mathematics can be
build up from sets: natural numbers 0,1,2,3,... can be constructed from the
empty set, functions can be represented through ordered pairs of sets.
Sometimes set theory is regarded as "the foundation of all mathematics", but
feel free to disagree! Just because natural numbers can be modelled as sets it
is not certain that natural numbers are indeed sets.

The basic pattern above is the formalization of an intuitive or natural
concept, something from everyday life. We try to capture the essentials of
this concept within a formal system. And then we can use the deductive power
of the formal system to arrive at new and hopefully interesting conclusions
about whatever we wanted to formalize. These conclusions are theorems. Not all
theorems are interesting, some are even confusing, paradox and disppointing.
Formalization is used to arrive at new insights about the original concept.
Interesting in this context is Carnap and his idea of explication of inexact
prescientific concepts:

[http://en.wikipedia.org/wiki/Explication](http://en.wikipedia.org/wiki/Explication)

What I want to express with this is that it is really possible to start your
journey into mathematics at a beginning.

------
bobsadinook
book:

[http://www.lulu.com/shop/ivan-savov/no-bullshit-guide-to-
mat...](http://www.lulu.com/shop/ivan-savov/no-bullshit-guide-to-math-and-
physics/paperback/product-21899015.html)

world.mathigon.org

mathworld.wolfram.com

good luck!

~~~
ivan_ah
@bobsadinook Thx for the plug!

------
Plough_Jogger
I've had the exact same question.

