Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How or where to begin learning mathematics from first principles?
345 points by smtucker on Dec 4, 2014 | hide | past | favorite | 123 comments
A little bit of background:

As I'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.

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'm beginning to feel less like a hacker and more like a hack. The knowledge I gain is shallow and I don't think my tactics will get me much further.

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 solve math problems. I have no interest in solving specific math problems on a test, I'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.

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.




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.


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.


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.


There are also some very good books by Israel Gelfand, written for a high-school level. Titles are Algebra, Trigonometry, The Method of Coordinates, etc. All by Gelfand and one other author. Sort of unusual because they are basic books written by one of the greatest mathematicians of the 20th century.


I'd start with Discrete Mathematics before Spivak. From what I remember, Spivak jumps in to constructing the reals out of set theory pretty quickly.

A discrete math text will drill you over a lot more basic proofs involving set theory that would help in understanding his construction.


Construction of the reals is in an appendix at the back. He starts with ordered field axioms.

Frankly there's something about the presentation in "discrete math" books that I find much more confusing and difficult than Spivak, which is just talking logically about numbers and their properties.


Do any of those resources actually cover math from 'first principles'?


Sure, right from the axioms.


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/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.


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?


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.


It's not just about recurrences. Although, It looks like this at the first glance. This book will give you mathematical mindset which you will be able to apply in practice (while working with algorithms).

Each chapter in the book is written in essay style, authors gave you very curious math pearls, and teach you how to think by using these examples.


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

"Precalculus Mathematics In A Nutshell", George F. Simmons, http://www.amazon.com/Precalculus-Mathematics-Nutshell-Geome...

"The Hitchhiker's Guide to Calculus", Michael Spivak, http://www.amazon.com/Hitchhikers-Guide-Calculus-Michael-Spi...

http://www.khanacademy.com

http://www.reddit.com/r/learnmath/

http://www.math.stackexchange.com


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.


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?


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.


Well, if you really take to heart what Spivak and Pugh have to say (and are thinking hard about the problems), there is a very good chance that you will be inspired enough to do further research that will lead you to tangentially related mathematics. So, in all likelihood, you will start to branch out even before you manage to finish your first serious math book. (Taking this to the extreme, Paul Halmos once pointed out that a good way to learn a great deal of mathematics is to read the first chapter of many different books.)

It's certainly not the case that Spivak and Pugh are the only books out there which help you develop the "mathematical maturity" that will allow you to apply mathematics creatively in other areas. For a mathematics major in college, real analysis probably is the optimum choice of subject. (Not every mathematician directly needs real analysis, but almost all would undoubtedly say that the subject shaped his or her thinking, even if only to provide a setting to learn about writing rigorous proofs.)

That said, for someone who doesn't intend study a great deal of 'traditional', mathematics, but perhaps wants to learn about computer science and applications of mathematics to engineering problems, there certainly are more direct ways to spend the time it would take to read all of Spivak or Pugh. While learning real analysis is a great foundation for subjects that involve calculus or topology (for example, convex geometry, which has applications in optimization), there are other options too. Two subjects which are also good at introducing mathematical thinking, while at the same time being essential in many computer applications, are linear algebra and number theory. One specific number theory text doesn't come to mind. Linear algebra texts vary in emphasis. I can vouch for "Linear Algebra Done Right" by Axler, but there are many others which more heavily emphasize the applications (and there are many, many applications of linear algebra).

I am sure that there are websites (or courses, or maybe even published books) designed to introduce proof-writing in these subjects, but also also including material on using computer algebra packages (such as SAGE) to compute certain results as well.

Finally, the subject known as "discrete mathematics", as well as computer science material on the analysis of algorithms also have a great deal of connections with pure mathematics (and especially real and complex analysis, as well as basic calculus). "Concrete Mathematics" by Graham, Knuth, and Patashnik comes immediately to mind. In fact, one might say that "Concrete Mathematics" is to students of mathematics who favor discrete problems (i.e., computer science) as Spivak is to students of mathematics who favor continuous problems (i.e., traditional mathematics).


I would really like to thank you for posting this. Seeing how excited you get when you talk about mathematics is really inspiring and nice to see. If I may just chime and ask for my own selfish reasons, for someone who is interested in statistics, is there a starting point you would recommend? Thanks again.


You're welcome!

As for statistics, I have to admit that this subject is something of a blind-spot for me. This is in part because the subject of statistics, per se, is actually a separate discipline from pure mathematics. For example, at many academic institutions, the statistics department will be on a separate floor from the math department, if it is in the same building. Statistics courses at these universities don't necessarily require a background beyond calculus; furthermore, it is often the applications to the social sciences, psychology, and business which motivate the subject matter (or, at the very least, justify funding for the department).

For these reasons, it can be often difficult to find theoretical treatments of statistics from a purely mathematical perspective. Of course, this is not inherent in the subject, and Gauss, one of the greatest pure mathematicians of all time, did groundbreaking theoretical work in the subject (e.g., the method of least squares, the "Gaussian" distribution). That said, Gauss was also an applied mathematician, and I would hazard a guess that he was driven to invent these things in the course of empirical studies (such as his work in astronomy, in which he determined the orbit of Ceres).

What approach you might want to take to studying statistics depends on your background. Since most of my background is in pure math, I actually don't have a whole lot of experience myself. Somebody who desired to study statistics from the perspective of a pure mathematician would probably need to first become solidly grounded in probability. This requires a background in real analysis, and then measure theory. If you don't already know your real analysis, then you still have a very large hump to pass over before being able to even understand what measure theory is all about.

Of course, you don't need a measure-theoretic background to understand and use statistics. In fact, I don't even know if you'd need (or want) that to study statistics from the point of view of a pure mathematician. It just happens that almost all pure mathematicians treat the subject of probability using the foundation of measure theory, and a mathematician would probably want to understand probability first before statistics.

That said, although I have not tried to read it, the book titled "All of Statistics: A Concise Course in Statistical Inference", by Wasserman, looks to me like a fast-track to clearly understanding statistics from a mathematical perspective, if there ever was one. I'd still recommend having some background in combinatorics, proofs, and some basic real analysis before attempting it. You might want to look at the prerequisites.

If you don't have a pure mathematics background, or aren't inclined to pursue one, you should just do what 99% of all basic users of statistics do: turn to an expert in the field you wish to apply the subject who has written a book on USING statistics. The book will probably be a hybrid of a crash course in statistics and a tutorial of how to use it. You'll want to learn how to use the program "R". In fact, since statistics is foremost an applied subject, this is probably the best approach anyway. For example, most of what I know about statistics (which isn't a whole lot) comes from learning about the parts I needed to do basic error analysis for undergraduate physics labs. Experimental physicists have their own books that cover the parts of statistics they use, and I imagine that it would be the same for most other subjects. You could probably learn a whole lot about statistics if you were to pursue, for example, machine learning.

One part of pure math that you should learn no matter what is the "method of least least squares". This is an easy application of linear algebra, is often in linear algebra textbooks, and is probably the most (over)used tool of statistics.

Finally, if you do want to learn more about probability first, I would recommend the books of Robert Ash. He has one on non-measure theoretic probability, called "Basic Probability Theory". It's available on his homepage, or as an inexpensive Dover paperback. Perhaps you could try all three approaches simultaneously (read the Ash book to learn about probability, the Wasserman book to try to learn some mathematical statistics (if you are so inclined, although I should warn you that it presupposes a background in undergraduate mathematics, and is somewhat expensive), as well as some third book, which goes straight to the statistics in the area you wish to apply it).

Let me put the disclaimer on all this that I have not attempted to carry out any of the recommendations here, so, unlike my previous posts, this is mostly speculative. It could be that your best bet to learning the subject is to find somebody who knows the subject and ask him / her instead!


Thanks! You answered the question the best I could have asked for. You're very inspiring. I have a feeling the best is yet to come for you. From the sounds of it, you work in an academic field, and if that's true then I can say that the school you work at is lucky to have someone so passionate about their field of choice. You will make a great mentor. If you find yourself around Vancouver ever then you need to look me up. First round is on me.


Thank you for your kind words! I'll be certain to take up your offer should I ever find myself in Vancouver (I live in the SF Bay Area).

I enjoy writing about the things I work on and think about, so consider it my pleasure.


I'm not exactly sure of the board culture here regarding unsubstantial comments but I'd like to thank you for taking the time to write all this out anyways. Same goes for everyone else who contributed.


You're certainly welcome!

I should probably mention one thing. In your post, you mentioned electronics, which does not so much require an understanding of mathematics, but rather a competence in solving differential equations in physics. If you are only interested in topics that are under the umbrella of electrical engineering, then you do not need to study mathematics at all. Rather, you should be studying physics, which, except at the highest theoretical levels, is more or less the practice of solving differential equations (without the kind of abstract proofs that would satisfy a mathematician). Pure mathematics is only about proofs, but with the assurance that this understanding will allow you to apply whatever problem solving techniques you may have to new domains (including situations where it is far from obvious that they apply--this is the value of mathematics).

In short, I would say that computer science is a good segue from pure mathematics, but if your goals is electronics, the kind of thinking you will need comes from learning physics--no more, no less. On the other hand, to truly understand cryptography, a background in pure mathematics is required (specifically, you should understand number theory and abstract algebra).

One thing to keep in mind: do not be mislead by similar notation between mathematics and physics: they are very, very different subjects. Certainly, physics uses equations; in addition, many theoretical results in mathematics explain (at a very high level) why certain problem solving techniques work in physics. However (at least until you reach research level physics), the overlap ends there, with the exception of linear algebra.

In fact, if there was one subject I could recommend to you (besides basic calculus) which is pretty much universally used, from optimization, to physics (all branches), to machine learning and statistics, it would be linear algebra, no contest. (I should admit here that I've contradicted my early remark in the first paragraph that one needn't study mathematics at all to understand physics, since linear algebra and calculus are indeed mathematics. However, while learning these two subjects rigorously in the spirit of mathematics will certainly aid you conceptually when you attempt to apply them to physics, it is also true that in physics you do not need to know how to prove the results in order to use them.)


Thank you very much for taking time to post many elaborate, useful comments! I straight away went and purchased "Real Mathematical Analysis" thanks to your recommendation.

> One thing to keep in mind: do not be mislead by similar notation between mathematics and physics: they are very, very different subjects.

This has always bothered me especially while tackling analysis. Isn't analysis' origin rooted in Physics problems? At least that's the sense I get while reading various introduction to analysis chapters/videos. But when I read initial few sections of Rudin I almost got into an enlightened state when he introduces metric spaces which are so abstract but also make sense intuitively. I'm bit confused.


The difference is the emphasis: mathematicians focus on proofs, and therefore have to write proofs of theorems that ensure their validity in all cases. Many of these cases are what physicists would call "pathological", and so they basically ignore them when introducing calculus as a tool for students of physics. If you read the table of contents of virtually any book that professes to introduce the "mathematical methods of physics", you will see how different the emphasis is. Since the physicist doesn't care about proofs that involve concepts beyond basic plane geometry and high school algebra, s/he spends a bunch of time introducing a large number of techniques that use no more than algebraic manipulation and limits. You'll find a laundry list of topics, including: tricks of differentiation and integration, the basics of vectors and multivariate calculus (more or less in order to introduce Maxwell's equations), specific examples of Taylor expansions and infinite series (in order to provide asymptotic approximations of functions--usually solutions to differential equations which represent the physics problem you are seeking to solve--which otherwise are unwieldy or impossible to carry out algebraically), some concepts and formulas from "complex variables" (which is a very deep and beautiful subject when studied more systematically, but is also so useful to physicists because of its connection to infinite series, and hence to differential equations), and "special" functions (which may be thought of as important classes of series solutions to differential equation), and most importantly, a little bit of linear algebra theory, which more or less places the majority of these computational tools in a unified framework. (Later on, physicists make use of the an analog of linear algebra, attempting to carry out similar computations in "infinite dimensional" spaces (Hilbert spaces instead of vector spaces), in a subject that mathematicians call functional analysis. Understanding the computational parts of functional analysis is essential for physicists who desire to take their knowledge of problem solving from the domains of mechanics and E&M, and apply them to problems in quantum mechanics, which is founded on functional analysis, and is in large part responsible for the extent to which the subject itself was developed).

The reason the physicist is able to succeed in so completely developing these tools (without even proving any of them) is because s/he is constantly testing their efficacy by trying them out of physics problems. The life of a physics student is more or less an endless game of trying difficult problems, and then invariably ending up resorting to finding approximations in almost all cases.

You might say, then, that where the mathematician spends his or her time looking for watertight proofs of pure concepts about space, logic, and number, from first principles, the physicist spends an equal amount of time thinking about how to approximate differential equations. It's not too surprising that, while in theory there is a great deal of overlap, in practice, the styles of thinking are very different. Part of this is because mathematics is such a vast subject, with more branches than one can care to count, whereas the number of branches used by physicists can more or less be counted on one hand.

In order to go back to a time when mathematics and physics had not yet diverged, you probably have to return to the days of Euler, or even Newton. If you read William Dunham's excellent book, "The Calculus Gallery", in the very first chapter, you will find a discussion of Newton's very basic work on binomial series--something that physicists use almost every day. However, as that book progresses (it goes in chronological order), once you get to Cauchy, who worked in the early 19th century, you begin to see mathematicians turn their focus to questions that no longer address computational questions that could possibly find direct use by physicists, but instead are more or less exist only in the minds of mathematicians.

There certainly is a branch of real analysis, called "classical analysis", which tends to focus more on concrete examples of infinite series, which of course have roots in basic calculus and physics. You can in fact prove a great deal of interesting things about specific infinite series, but you will not invent algebraic geometry or abstract algebra, or be able to fully appreciate the scope of modern 20th century mathematics, if you confine yourself to studying the properties of just one concrete object. If you do, though, you will eventually find yourself studying complex analysis. Somebody who takes this route--that is, to reject the abstract flavor of 20th mathematics--can learn a great deal about mathematics that also happens to be very useful to physicists. On the other hand, you would be missing out on a great deal of fascinating connections between the abstract mathematics of the 20th century, and applications to problems in computer science.

On the other hand, if you really want to study pure mathematics, using proofs, you'll have to be somewhat patient before you can see applications to physics. These applications will come sporatically. Right away, linear algebra is an example of a very basic pure mathematics subject which is absolutely essential to physics. At about the same level is calculus and infinite series. Then, in mechanics, you will probably encounter what physicists call "analytical mechanics", which is an application of a pure mathematics subject called the "calculus of variations". Your understanding of this subject doesn't have to be very deep to start using it in physics, though. At a slightly higher level is complex analysis, which vastly improves your understanding of infinite series. The next application I can think of is quite a bit more advanced; it concerns general relativity, and could be thought of as an advanced setting for multivariable calculus, but which is inspired by the beauty of Euclidian geometry. I am talking about what used to be called "advanced calculus", but now has many different names. The key object of study is what is called a "manifold". A mathematician would call the subject "differential geometry", whereas a physicist would emphasize the use of objects called tensors. At this point, you will begin to see non-trivial mathematics being used in physics, but with the annoyance that physicists continue to rely on computations rather than complete proofs.

Interestingly enough, Michael Spivak, the author of the classic pure mathematics book "Calculus" (mentioned in this thread, by myself and others), is in fact somebody with an interest in mechanics, and happens to be one of the key expositors of differential geometry (see his 5-volume treatise on the subject). To this effect, he has also written an introductory book on mechanics (and is in the process of writing a sequel on the subject of E&M), but with an emphasis and style unlike any mechanics book written for physicists. The book is called "Physics for Mathematicians: Mechanics". It looks deceptively simple in terms of the amount of formula used; however, it will really only be appreciated by mathematicians who have studied some amount of differential geometry (I believe he says in the preface that it would be idea for the read to have read some subset of his 5-volume treatise on the subject). Back in the `60s, Spivak also wrote what, for years, seems to have been definitive text on multivariable analysis and differential geometry for pure mathematicians, in a book called "Calculus on Manifolds". This book is quite difficult to read, though, and today, there are more friendly introductions that presuppose less mathematical maturity, and are less terse (although the book is still a classic).


Thank you for all the comments. I really hope you consider either writing series of blog posts or a small book on the topic of teaching maths. You might think there is already lot of stuff on this and there is nothing new you could add but trust me its not enough and people can use more ideas on 'how to go about learning maths'.


Thank you for your kind words. I do plan to set up a homepage for my research and thoughts; once I do, I'll link to it in my HN profile.


Here are some great books which are meant to be read (and have not been mentioned elsewhere in this thread, i.e. Axler and Pugh).

Algebra: Chapter 0 by Paolo Aluffi

Measurement by Paul Lockhart

The Nature of Computation by Moore & Mertens

Ideals, Varieties, and Algorithms by Cox, Little, & O'Shea


Those are great books, every single one of them.

Anybody who remotely takes category theory seriously should have Aluffi's book, even if s/he chooses to learn from another book. There isn't really anything that compares in terms of its comprehensive coverage of abstraction at the basic level, and you'll eventually need something like it.

I simply love Moore & Merten's "The Nature of Computation"; it's probably the only book for the absolute (but mathematically-minded) beginner about the theory of computation that manages to be incredibly captivating and lucid (while also covering a significant chunk of material).


Pugh taught my ODEs course in college and basically turned it into a dynamical systems party. Great class, but I still don't know anything about ODEs. Really cool guy.


I'd like to mention one more thing, which is very important to keep in mind when studying pure mathematics: if you feel like you don't quite understand something, do NOT, under any circumstance, "pressure" or force yourself into believing it. While the saying "practice makes perfect" is perfectly applicable to computation, you have to be very careful when studying pure mathematics to fight the instinct to try and convince yourself that you understand something. It is perfectly okay not to understand something. The chances are, your best shot at understanding something that makes you uneasy is to simply admit your present situation doesn't yield any direct lines of attack toward a better understanding, and to tuck the problem in the back of your mind, until a later time, when further study (possibly in an unrelated area) unexpectedly leads you to the missing piece. You also have to be on guard against allowing trying to form an intuitive understanding of something, before you've fully understood how the idea follows from the definitions and proofs alone. Forming an intuitive understanding of ideas in mathematics is always about understanding the connections between abstract ideas, but the abstract ideas themselves should have no intuitive basis when considered by themselves. For very simple things, it is probably okay to rely on intuition in a pinch (e.g., you can safely think of the derivative of a function at a point as the slope of the line tangent to the graph of the function at the point).

To use a crude analogy, you could think of mathematics as one giant puzzle, but with the pieces coming in slowly, one at a time. Any two pieces have a fairly small chance of fitting together, but since you only have the ability to focus on one or two pieces, you need the memory of old puzzle pieces which previously did not fit anywhere in the back of your mind, so that when you do stumble upon the fitting piece, you can go back to it.

Another thing to keep in mind is that the best truths in mathematics are the most general. Every time you consider a specific example, you should always have some amount of innate desire to see a more all-encompassing idea which handles the details of the specific example as a special case. It will usually not be possible for you to come up with the right generalizations yourself, though; mathematics has evolved gradually over the last couple millennia, and it has taken the trial and error of many brilliant people before the "right" abstractions were found. Your best hope is that your teacher (or author) is leading you on a path that will eventually allow you to see how the things you've come to accept as true can be thought of as existing within a broader framework. The fact that applied mathematics books generally do not do this at all is the reason why one cannot simply try to learn about a topic in applied mathematics, and then try to learn the pure setting as an afterthought. If you go straight to the applications and computations, the chances are that you will be leaving out the conceptual legwork that will be needed to understand the subject in a way that can allow you to potentially create new theory.

To take the puzzle analogy further (to the point of breaking it), you can try to view the generalizations as pieces that connect to MANY puzzle pieces simultaneously (which is obviously not how an actual puzzle works, since each piece only connects to adjacent pieces). As you progress in mathematics, you start to see that the subject is composed of a sort of hidden hierarchy, in which you later learn that your past findings are subsumed by more general theories. Without this, the subject would be unwieldy, since no normal human is capable of committing to memory a perfectly interlocking body of thought that is only made of mostly isolated ideas. Inevitably, you will need some governing ideas, which form the root of a sort of conceptual hierarchy. However, this conceptual hierarchy is more or less impossible to convey pedagogically (c.f. all the complaints about "New Math" back in the `60s), without first understanding all the pieces involved.

(For reasons discussed in the above paragraph, you should be prepared to accumulate a very large number of books and documents, should you begin to more broadly become interested in mathematics).

One way to increase the probability that you'll find interlocking pieces in the same span of attention is to be guided by an excellent teacher (and in some cases, an excellent author). Otherwise, your best shot at exploring the space of possible directions to take is to follow this advice of Paul Halmos: "A good stack of examples, as large as possible, is indispensable for a thorough understanding of any concept, and when I want to learn something new, I make it my first job to build one."

All that said, it is true that any successful student of mathematics will eventually reach a point in his or her studies in which the writing of proofs has become natural enough that, when given a theorem that has a straightforward proof, it the student will probably be able to find it 80% of the time without too much stress or outside help. Getting to that point is important; therefore, a significant chunk of the value of studying a book like Spivak's or Pugh's is to increase your ability to write proofs. This will be a gradual process, so don't be too discouraged when you get frustrated. If you feel like you need to improve your proof writing skills, though, it would certainly help to take a break from the analysis text, and read an elementary book on proofs (just search Amazon or a university library) until you feel like you've done a good job of building up this skill. The ability to write proofs with ease is as important in pure mathematics as algebraic manipulations is important in applied mathematics.

One last warning. If you truly become skilled at pure mathematics, be aware that it can be addictive. Research mathematicians spend their entire lives on this stuff, and are most often quite happy to give up a great deal of things which non-mathematicians value (e.g., a career in industry).

Of course, this really depends on how addictive a personality you have, or if you are unfortunate enough to be a creative genius.


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.


Hubbard & Hubbard is a fantastic book; for the right audience, it may be all that is needed. I'd say that every mathematically minded engineer or physicist certainly should have it. It does a fantastic job of exposing the fundamental ideas of linear algebra and multivariable calculus--and in a way that doesn't require really any prerequisites beyond basic calculus. Reading this book is like being in a lecture with an experienced practitioner of both pure and applied mathematics simultaneously (well, this is actually true of Hubbard, but most texts are not written in a way that the author is so detailed and clear so as to seem present); the notes in the margins and the extensive, direct, and clear explanations are absolutely lovely.

That said, somebody interested in building a foundation for pure mathematics, and not so much motivated by the ability to solve problems outside of mathematics, would probably be better served by reading a standard text on real analysis.

On the other hand, I myself have turned to the notes in the margins of Hubbard & Hubbard, even when studying real analysis from the purest point-of-view, because the little tidbits are just so insightful.

Somebody who really took Hubbard & Hubbard seriously, though, could come away with a monster understanding of applied mathematics, while still having learned the craft in a way that is correct enough to lead to further study in pure mathematics as well. Nobody can really go wrong having this book on his or her shelf (although it is a bit expensive).


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.


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_?”


Very similar question: http://www.reddit.com/r/compsci/comments/2notz5/how_do_you_p...

(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/MachineLearning/comments/1jeawf/mach...

http://www.zipfianacademy.com/blog/post/46864003608/a-practi...

______________

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.


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.


Try 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) and MIT OpenCourseWare (http://ocw.mit.edu/index.htm) to have the best material for Physics


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.


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/

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.


"This course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.:

http://ocw.mit.edu/courses/electrical-engineering-and-comput...


I found "Mathematics for the Millions" (http://www.amazon.com/Mathematics-Million-Master-Magic-Numbe...) 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.


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.


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.


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

Good luck with your studies!


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


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!


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.


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

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


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


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


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.


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.


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!


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...


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.


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!


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.


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".


How To Prove It is definitely the best (it's the only I read till now though, apart from online tutorials and course notes) book on how to learn on your own. Especially since it details the thought process on how to prove something, has around 20 questions per subsection with answers (especially this is great)!

Another book that I think is great is 'Getallen: van natuurlijk naar imaginair', but its in Dutch.


What language specifically are you looking at monads in? If it's anything other than haskell, I can give advice, having recently had the concept click, and gone through similar frustrations.


That would be awesome, I'm using Scala and I would like to incorporate more scalaz into my programming but I have yet to find information convincing me how to go from math concept to implemented functional design pattern.


Have you read the canonical Functional Programming in Scala? It goes over all of that and more in immense detail.

http://www.amazon.com/Functional-Programming-Scala-Paul-Chiu...


Here is a shameless plug for my own blog, [Math ∩ Programming](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-...).

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


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/R1GE1P2...


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...)

More good advice at http://scattered-thoughts.net/blog/2014/11/15/humans-should-...


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


>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.


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

http://www.amazon.com/Mathematics-Content-Methods-Meaning-Do...

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.


'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...


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.


| 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


For Linear Algebra, I'd humbly suggest Gilbert Strang's Introduction to Linear Algebra. This is the companion book to the lectures here: http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebr...


'Measures, Integrals and Martingales' by R. Schiller is a very good introduction to measure theory and some of its applications to probability theory.


This is a fantastic post!


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.


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).


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


here I also found this website 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.


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".


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).


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.


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.


"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.


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.


@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

There is also a good introductory class on Statistics:

https://www.udacity.com/course/viewer#!/c-st101

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


>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.

I'm only 20 years old and hopefully I have a long life ahead of me so I'm not too worried about how long it takes, I just want to get on the right track.

Thank you on the book recommendation, that looks like it is exactly the type of resource I was looking for!


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...


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... .


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.


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."


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.


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


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.


Since I have painstakingly gone through the series of proofs in Landau's book, I feel I need to weigh in here. On the surface, this book does appear to start from sets and convincingly proceed up to real numbers etc. It's interesting that you include the quote from the beginning about "high-school mathematics", which I think is laughable.

I personally believe that Landau was caught up in the spirit of the times and optimistically believed that math could be built up from "first principles". The famous kickstart to this is Hilbert's 1900 presentation. And it certainly continued up through Nicolas Bourbaki.

In fact, Landau's mathematics is presented in a somewhat archaic style and his proofs are extremely hard to follow in spots, as if he is making unstated assumptions. Overall, it is an interesting, but ultimately thankless, task to go through that book. It is a mostly a historical curiosity. The same can be said of Hardy's "Course of Pure Mathematics", which was recommended elsewhere in this thread. I find it hard to believe that anyone who recommends these books have actually read them.

To the OP, while I can relate to the goal from personal experience, after decades of going down a similar path, I can tell you that the history of math is very messy. Our textbooks and notation reflect this messiness. My recommendation is to dive into whatever part strikes your fancy, although it may help to start from where you are. For instance, if you program, you might want to get a book on physics in game programming or learn Haskell.


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?


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/ It's more of an applied problem set of increasing difficulty than learning from first principles though.


Do you suggest finding a closed solution for every problem?


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.


"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.


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


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.


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...


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


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...


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.


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


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.


Apart from all the great replies, here, do try out 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.


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.


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


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


you can visit 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 :)


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...


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...

+ 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.


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!


you should do courses on coursera.


one of the best of hacker news!


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 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... If you prefer to learn through programming, 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... as well as take your venture into multivariable calculus http://ocw.mit.edu/courses/mathematics/18-02sc-multivariable...

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/ (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-...

Alternativelly you can go into Probability and Statistics https://www.coursera.org/course/biostats 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 and possibly 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/ (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/

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...

Machine Learning https://www.coursera.org/course/ml

The 2+2 Princeton and Stanford Algorithms classes on Coursera

Discrete Optimization https://www.coursera.org/course/optimization

Convex Optimization https://itunes.apple.com/itunes-u/convex-optimization-ee364a... https://itunes.apple.com/us/course/convex-optimization-ii/id...

[Physics]

http://theoreticalminimum.com/courses

http://ocw.mit.edu/courses/physics/


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

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

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


book:

http://www.lulu.com/shop/ivan-savov/no-bullshit-guide-to-mat...

world.mathigon.org

mathworld.wolfram.com

good luck!


@bobsadinook Thx for the plug!


I've had the exact same question.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: