Live data from Hacker News

Why there is no Hitchhiker’s Guide to Mathematics for Programmers

jeremykun.com

71–76 of 76 posts

Re: Why there is no Hitchhiker’s Guide to Mathematics for Programmers

#71
post #70
post #51

Earlier quoted context omitted.

I certainly agree that communication can be improved (and this is one of the main reasons I spend so much of my time improving my technical communication skills via blogging). But I stand by my defense of the need for flexibility. It's extremely hard to explain why without delving into technical details, but there are some times when abuses of notation are honestly much more helpful than they are hurtful. Usually the…

Changing the notation is fine. Changing it without explaining what the new notation means is where the problem lies. Maybe it would help if we put papers online with the ability for anyone to annotate and add explanations, or links to other papers for context.

That's a very good idea. As of now I don't even know if there's a structured way to display known errata in a paper.

Re: Why there is no Hitchhiker’s Guide to Mathematics for Programmers

#72
post #57

+1 for the book recommendation alone [1]. I finally see a book on set theory that explicitly states that the term "set" by itself is undefined. Reading the first chapter preview at Amazon, I already see the need for a human to explain something to me: Two sentences from the book [1]: "A possible relation between sets, more elementary than belonging, is equality." and "Two sets are equal if and only if they have the s…

Two sentences from the book [1]: "A possible relation between sets, more elementary than belonging, is equality." and "Two sets are equal if and only if they have the same elements". These already seem to be contradicting each other -- how can equality be more basic than belonging if the former is defined in terms of the latter.

Axiom of extensionality states that the sets A and B are equal if and only if they have the same elements.

The point here is this: if A and B are the same set, then whenever some x belongs to A, it also belongs to B, because B is just a different name for A. Similarly, if something belongs to B, it also belongs to A. So, the implication "A is B implies A and B have the same elements" is just a logical tautology, axiom of extensionality does not say anything new in this case.

Now suppose you have two sets, C and D, such that whenever something belongs to C, it also belongs to D, and when something belongs to D, it also belongs to C -- in other words, they have the same elements. Can we conclude that C is the same set as D? Without extensionality axiom, no. That's why we usually assume axiom of extensionality, which tells exactly that whenever sets the same elements, they are the same, so that we don't end up with a weird situation where we have two sets that are indistinguishable with set theory, yet are different.

Re: Why there is no Hitchhiker’s Guide to Mathematics for Programmers

#73
post #63
post #28

There's a lot of interesting and valuable stuff in this post (enthusiastically upvoted!), but I think there are a lot of errors, too. First of all, let's acknowledge that many (the great majority of?) programmers have little or no use for math, and know it, and are correct. That's totally fine. I think danso's comment captures this well, with references to UI design, domain knowledge, engineering practices, etc, and…

Majority of mathematics isn't at all concerned with calculation techniques, this is a fundamental misunderstanding many people get from school, mathematics is the study of concepts and relationships between them. If you do not understand the proofs, you do not understand the concepts and you will not be able to apply them. People who learn mathematics as calculation are the ones that most often claim that have no use…

Plenty of math has nothing to do with quantities or measurements. Relational algebra and type theory come into mind as particularly useful for workaday programming.

Re: Why there is no Hitchhiker’s Guide to Mathematics for Programmers

#74

I know this is a bit off topic, but does anyone know of a source (book, video, website, etc) which you could use to review the math from 0 to Calculus in one day? A sort of big picture overview of how math evolves from simple to complex. I've always wanted to do it, just to keep the math in my head fresh.

I'll do an outline here - then follow each outline item to Khan Academy for steps and details * numbers - natural numbers, integers +ve/-ve numbers addition subtraction * numbers - rationals, reals, multiplication/division * numbers - fraction and decimal representations - addition/subtraction/mult/division of fractions and decimals * sets and functions - mappings, single valued and multivalued, domain and range * po…

Wow, thanks. You took the time to write all that. That is awesome.

Re: Why there is no Hitchhiker’s Guide to Mathematics for Programmers

#75
I feel like so much of this discussion is way too general. It's impossible to debate how/how much math is needed for "programming" without speaking about a particular (programming) domain and the subset of math, if any, needed for it.

In other words, "no math is needed" and "you need proofs" are probably both true. There's some realm of programming in which no math is needed, ever. And then there's other programming that requires lots of math. But the math required, might be linear algebra in some cases and some other specific branch of math in another area. This fact is a just a reflection of the fact that "programming" is an extremely wide area. There are some realms of programming, where the "programming" aspect of it is virtually subsidiary to the math. The programming is just automating or systemizing some math which is the real work is taking place.

So, my take away from seeing this discussion and similar comments so many times is that everyone can agree that math is an enriching subject. However, from the standpoint of its relationship with your programming, going really deep into one particular area of math without a clear idea of if/how it's going to help you accomplish something previously unattainable is probably not the best use of your time.

Re: Why there is no Hitchhiker’s Guide to Mathematics for Programmers

#76
post #55

Re: the original post IMHO, I find it has many logical flaws and while it is trying to draw attention to the fact that programmers need to learn math it may end up scaring people away. Background: I have a BS in EE from IIT Bombay, An MS in Applied Math from USC and an almost PhD(everything but thesis) in Pure Math. I also loved teaching math as a TA and was able to teach engineers multivariable calculus and differen…

I certainly don't think programmers need to learn math. The vast majority of programming requires no math, and there are tons of out of the box theorems and algorithms that can be used successfully by programmers to do wonderful things. I am just pointing out why math can scare programmers away. The first step in overcoming that fear is to identify it. And the fact is that programmers do need to tweak the algorithms…

It's true you may have set a low bar re: proofs, I just don't think any formal proofs are needed at the first step.

Learning about numerical convergence and computer arithmetic so you can understand why your MATLAB Linear Algebra program is not giving a useful result is far more valuable and doesn't need any proofs. It needs a knowledge of how to use theorems and results and what the conditions are for a result to be applicable. But there is no need to do the proof. Especially since many many proof sare quite idiosyncratic and give no help in suggesting how one thinks like that.

Using the analogy of the car I am talking about teaching someone who rides a bike to drive a car. My explicit non-goal is being a mechanic of any kind. So your example of modifying your car is a strawman. That's exactly what I assert a student-driver doesn't need and *shouldn't have to do. It is going to be pretty much useless in actually learning how to steer and how to follow traffic rules. One is about proper usage, the other is about understanding internals. Sorry I still disagree and reassert that proofs are no use at all and a huge distraction for programmers trying to learn math. There is so much valuable and useful work a programmer can do even using existing mehods without ever modifying them. Especially with special purpose languages like R and MATLAB - the underlying algorithm are very mature and a first time user is not expected to modify them.

Quite separately I think it's extremely valuable to learn/relearn the foundations of math but this is for anyone and not specific to what a programmer needs to do useful things with math. Yes and it should be taught in high school math. It's not taught bec the teachers didn't learn it that way and so it goes ...

Post reply on HN