Earlier quoted context omitted.
Sure there is, read these and you will understand most math papers people here struggle with: https://mathblog.com/mathematics-books/ Of course you still wont be able to understand most math papers written by pure mathematicians, but it should be fine for whatever you need in CS. I know all the topics on that page, it is just a very fleshed out math major.
That's "read all the fine manuals", not "read the fine manual". In the end you might eventually read all of them, but it's not the efficient thing now .
Ask HN: How did you learn math notation?
211–220 of 258 posts
Re: Ask HN: How did you learn math notation?
#212I'm a math professor, and my students find it revelatory to understand math as I talk and draw. Math notation is not math, any more than music notation is music. Notably, the Beatles couldn't read sheet music, and it didn't hold them back. The best comparison would be is reading someone else's computer code. At its best computer code is poetry, and the most gifted programmers learn quickly by reading code. Still, let…
Super answer! I wish you were one of my professors, and I had excellent professors. If I may humbly add, try making your own notation and playing around with it. Very rapidly one realizes just how hard a problem good notation is.
Re: Ask HN: How did you learn math notation?
#213Earlier quoted context omitted.
> It's not deliberately designed to keep people out Surely you must realize that you're protesting this because it has this reputation, though? And surely you must realize that it has this reputation for a reason? When I was a teenager and took my first calculus course, I struggled with summation for three days. When I finally went to my dad he looked at me funny and said "your teacher is an idiot, isn't he? It's a f…
> Surely you must realize that you're protesting this because it has this reputation, though? I've never heard anyone make this accusation until I read it here on HN today. The reputation doesn't seem to be widespread. > Programmers work really really hard on learnability and understandability. This is a big deal to us. That's why we can't understand why it's not a big deal to you. How to better teach math is like on…
blinks really?
It's kind of a famous thing. Teachers are taught how to cope with math phobia; other subjects (with the exception of dissection) generally do not create this effect.
.
> How to better teach math is like one of the most studied topics in education since it is so extremely
Unsuccessful
Many other disciplines are equally important and don't have the desperation for repair that math does
It's so bad that it's gotten into popular music a dozen times; you can easily point to Tom Lehrer, Weird Al, even 2 Chainz for broaching the topic
.
> People learn programming faster since programming is simply easier
Keep telling yourself that
Remember who's cracking things like four coloring.
.
> There hasn't, way more effort has been put into making math easy and the math we have is the results of all that work.
You seem not to be results focused.
.
> Nobody pushes back on writing simple reference manuals.
The person I was responding to was. Three different people have with me in this thread alone.
Notice that you've changed the topic to "reference manuals," which 𝗶𝘀 𝗻𝗼𝘁 𝘄𝗵𝗮𝘁 𝘄𝗮𝘀 𝗯𝗲𝗶𝗻𝗴 𝗿𝗲𝗾𝘂𝗲𝘀𝘁𝗲𝗱
Ostensibly this is the part at which you launch into an explanation about how a simple cheat sheet that says things like " || usually means absolute value or magnitude" somehow isn't possible, even though it totally is
Next you'll explain how simple summary symbols like that are somehow harder than Haskell, which was able to produce a cheat sheet just fine
In reality, mathematicians just don't have the faintest clue how difficult other fields are, and are too busy patting themselves on the backs for their challenging intellects to realize that their work is under-used due to their inability to produce legends and keys
.
> Yet still people fail to understand it.
You're not producing what's being requested, then you're surprised that what you're actually producing isn't working.
.
> trying to find shortcuts, trying to do anything at all.
All that's being requested is a two page operator cheat sheet. If you'd stop wisely pontificating and just try it, you'd find it's really quite straightforward.
I produced one for my students. It's just that my own education in mathematics only goes so far.
𝗜𝘁 𝗴𝗲𝗻𝘂𝗶𝗻𝗲𝗹𝘆 𝗶𝘀 𝗻𝗼𝘁 𝗱𝗶𝗳𝗳𝗶𝗰𝘂𝗹𝘁
You are doing the refusing you insist nobody's doing, right now
.
> You are simply ignorant thinking that there are some quick fix super easy to implement things
Not really, no.
I've succeeded at this.
You are protesting against things that were not requested. Nobody asked for any "quick fixes." Nobody asked for any "magical make understand."
These are things you said, not things I said.
I said something very simple and very practical. Something that very much can be done.
I want a two page PDF which puts operators next to their names, so the load on my memory is lower.
Every time I ask that, some math fan goes on forever about how things I never asked for aren't possible, and ties that up with personal attacks.
𝗧𝗵𝗶𝘀 𝗶𝘀 𝘄𝗵𝘆 𝗺𝗮𝘁𝗵 𝗵𝗮𝘀 𝗶𝘁𝘀 𝗿𝗲𝗽𝘂𝘁𝗮𝘁𝗶𝗼𝗻. 𝗬𝗼𝘂 𝗴𝘂𝘆𝘀 𝗰𝗮𝗻'𝘁 𝗮𝗻𝘀𝘄𝗲𝗿 𝘀𝗶𝗺𝗽𝗹𝗲 𝗾𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀, 𝗮𝗻𝗱 𝘁𝗵𝗶𝗻𝗸 𝘁𝗵𝗲 𝗽𝗿𝗼𝗯𝗹𝗲𝗺 𝗶𝘀 𝘀𝗼𝗺𝗲𝘁𝗵𝗶𝗻𝗴 𝗼𝘁𝗵𝗲𝗿 𝘁𝗵𝗮𝗻 𝘆𝗼𝘂𝗿 𝗶𝗻𝗮𝗯𝗶𝗹𝗶𝘁𝘆 𝘁𝗼 𝘀𝗽𝗲𝗮𝗸 𝗽𝗹𝗮𝗶𝗻𝗹𝘆 𝗼𝗿 𝗽𝗿𝗼𝗱𝘂𝗰𝗲 𝗮𝗱𝗲𝗾𝘂𝗮𝘁𝗲 𝘀𝘁𝗿𝗮𝗶𝗴𝗵𝘁𝗳𝗼𝗿𝘄𝗮𝗿𝗱 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝗮𝘁𝗶𝗼𝗻.
Please keep the insults to yourself. Thanks.
.
> It is possible that math education could get improved
Please stop trying to solve every problem. Nobody asked you to take on that Herculean task. What was actually requested was a simple two page PDF. That's a thing that a single person can do in an hour (well, maybe as a webpage, making an actual PDF is a hassle.)
The constant attempt to change the topic to some greater thing blinds you to how easy fixing this actually is.
The statisticians can do it: http://web.mit.edu/~csvoss/Public/usabo/stats_handout.pdf
This isn't far off: https://en.wikipedia.org/wiki/Glossary_of_mathematical_symbo...
Seriously, nobody is saying "solve math education for all people."
For `|x|` it would just say "absolute value, magnitude, length, or cardinality."
It's a quick reference chart for people who already know the material but haven't actively used it for ten years, and to help know what to google for the rare cases where you don't. It doesn't teach anything.
This shouldn't be a big deal, and people keep asking for it because it would *really* help
Re: Ask HN: How did you learn math notation?
#214Earlier quoted context omitted.
> We reuse variable names in different scopes This example works against you. Scope shadowing is nearly universally considered bad practice, to the point that essentially every linter is pre-configured to warn about it, as are many languages themselves (eg prolog, erlang, c#, etc) To a programmer, you're saying "see, we do it just like the things you're taught to never ever do" . > You may still not like math, or the…
> This example works against you. Scope shadowing is nearly universally considered bad practice So you never used the same variable name in two different scopes ever? Like, if a function takes argument "name", no other function you ever write again in any program can have a variable named "name" unless it is the same exact usage? Or, as is commonly complained about in math, every programmer in the world then use the…
That's not what shadowing is.
.
> Having different scopes doesn't imply shadowing
I didn't say that it did.
.
> No mathematician knows even close to every domain
this is irrelevant to a lightweight two page cheat sheet for simple mathematial symbols
part of the problem is that if we ask you for a simple thing that isn't perfect or exhaustive, you lecture us on how no document could contain every concept
that's very clearly not what's being requested of you. the same is true of haskell. that sheet doesn't contain all of haskell. i doubt anybody knows all of haskell, which of course is far smaller than mathematics.
i'd like to stay in the practical world. it was clearly stated that an exhaustive solution was a non-goal.
let's try to do one thing that doesn't have a limit at infinity. (i'm sorry, i'm a programmer, math jokes are hard)
surely you've made food, right? did you learn the recipe from a cookbook? did it contain every ingredient and recipe that any cook ever knew? did it go over the chemistry of the protein denaturing, the physics of the water boiling, the ethics of importing the burner fuel, allergy responses, cultural backgrounds, molecular weights, how to make things in a duck press?
no?
was that because the cookbook was just good enough? it was just like "use this much chicken and this much onion, two tortillas, some cilantro and lime?"
nobody wants exhaustive anything. if you managed somehow to produce that (ie by just giving the manual page to the wolfram language) it would be rejected as the exact opposite of what was being requested.
the thing you're protesting is the i'm saying is the wrong job.
cool beans. the thing i'm actually asking for is straightforward.
someone already gave me one, but the difficulty level was aimed at children, instead of professional programmers, the space requested, while also calling me ignorant. it's a shame; that one was almost it.
but it should be things like `ŷ` and `||x||` and whatever. it should include sum, integral, and product for the juniors. For `|x|` it should say "Absolute value, magnitude, length, or cardinality."
it doesn't need `||x||` because we need someone to teach us what absolute value and cardinality and so on mean. it needs `||x||` because we forgot what double-bar says, and if we have that list of four things, we can figure out which one it is just like you can.
we know what magnitude is. we just don't know what `||foo||` says.
we just need our cracker jack decoder rings. we get the ideas. we don't get your letters.
It's not explaining anything. It's just a cheat sheet. You aren't solving education. C'mon.
This isn't too far off: https://en.wikipedia.org/wiki/Glossary_of_mathematical_symbo...
.
> It is such a waste to have so many programming languages
if you say so. i rather like the several that i created.
things aren't a waste just because you don't know what they're for.
you might as well assert that it's a waste that there are so many tools in the shop.
The statisticians can do it: http://web.mit.edu/~csvoss/Public/usabo/stats_handout.pdf
.
> every programmer in the world then use the variable "name" only for that usecase and otherwise comes up with a new name for it?
this isn't terribly uncommon, primarily because our culture is to use long descriptive names, which have a far lower natural collision rate
i do get that symbols can overlap. that's okay! nobody's complaining about that. it's fine for `||x||` to mean four things. we're just as bad as you are about that. there's half a dozen meanings for stack, another five for heap, seven for map, five for vector, i don't even want to get into what a mess "array" is, et cetera.
but if i was writing a cheat sheet for you, I could write ` generally means a generic type, a tuple, greater than less than, an HTML/XML/SGML tag, an email inclusion, or an IRC handle`
Is that exhaustive? Naw. I can name another dozen off the top of my head.
But that's generally going to be good enough.
All I want is generally good enough. just please write down what they are?
Re: Ask HN: How did you learn math notation?
#215Earlier quoted context omitted.
> We reuse variable names in different scopes This example works against you. Scope shadowing is nearly universally considered bad practice, to the point that essentially every linter is pre-configured to warn about it, as are many languages themselves (eg prolog, erlang, c#, etc) To a programmer, you're saying "see, we do it just like the things you're taught to never ever do" . > You may still not like math, or the…
> Programmers want mathematicians to make one of these: https://matela.com.br/pub/cheat-sheets/haskell-cs-1.1.pdf There are lots of maths cheat sheets like that. Maths is big, like all-programming-languages big. Just like in programming, notations are re-used in different areas with different meanings, and different authors sometimes use different notation for the same meaning. A universal cheat sheet is impossible (…
I have never found one that gets me through the average undergraduate CS paper.
If you know one, I would greatly appreciate a tip. Unfortunately, I saw what you offered, and that's not it.
.
> A universal cheat sheet is impossible
I explicitly stated that this was a non-goal.
.
> one of which is "the basics", e.g. https://www.pinterest.nz/pin/734016439237543897/.
That one is far too basic. It doesn't even have things like average, or absolute value. It includes things nobody needs explained, like subtract, and things that aren't math, like logical operators.
This is why I said "yes, people have tried, but nobody has succeeded."
The explicit context was the average software paper. We're talking about programmers.
.
> > mathematicians' refusal to provide easy reference material
> This is an absurd claim.
Lots of people in here seem to agree with me. YMMV.
Feel free to provide me easy reference material.
.
> On the contrary, many mathematicians provide their students with
> We sometimes spend entire semester-long courses
The explicit context is "to people who aren't mathematicians or mathematics students."
Remember, we're talking about programmers who are appealing to the mathematics community for help.
If your response to "you guys won't give programmers a short easy two page PDF at the level we need" is to remind me that you give your own students semester long courses, then you've absolutely failed to understand what's being said.
.
> there are many books with exactly the kind of cheat-sheet you want inside the cover
Every time I ask for one, I get something with symbols meant for children learning arithmetic, like the one you gave. It explains plus and percent.
Again, 𝗧𝗵𝗲 𝗰𝗼𝗻𝘁𝗲𝘅𝘁 𝗶𝘀 𝗽𝗿𝗼𝗳𝗲𝘀𝘀𝗶𝗼𝗻𝗮𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗲𝗿𝘀 𝘁𝗿𝘆𝗶𝗻𝗴 𝘁𝗼 𝗴𝗲𝘁 𝗵𝗲𝗹𝗽 𝗿𝗲𝗮𝗱𝗶𝗻𝗴 𝗖𝗦 𝗽𝗮𝗽𝗲𝗿𝘀 𝘄𝗿𝗶𝘁𝘁𝗲𝗻 𝗯𝘆 𝗺𝗮𝘁𝗵𝗲𝗺𝗮𝘁𝗶𝗰𝗶𝗮𝗻𝘀.
If you think we need plus explained to us, and that the next step is an insular semester long lecture course that isn't offered to us, then how can you possibly be surprised that we think you failed us?
.
> as well as the ones on the internet mentioned above
You only mentioned one. The other one is something I gave, from our community, trying to explain to you the kind of thing I want.
It covers topics like monads, pattern matching, infix, operator precedence, typeclasses, infinite lists, codata, higher order functors, special folds, tuples, numerics, modules, tracing, list comprehensions, and dealing with the compiler itself.
You patted me on the head and taught me that * means times.
I continue to feel that the mathematics community refuses to understand the needs of the programming community, or provide appropriate reference material.
It's either "this is arithmetic" or "let's do linear equations in russian"
There's no practical middle ground and you seem resistant to even understanding that such a thing exists
Programmers aren't ignorant like the other mathematicians in here have repeatedly said. You can't do our things any more than we can do yours. We've seen your code.
It's just that when you ask us for appropriately costed reference, we comply, and you do not even grok.
You really put up a thing that explained `less-than`, as if that was what you were being asked for.
It turns out that most programmers know what the equals sign means.
There is nothing of practical value in the actual domain space being talked about, here.
Nothing here is beyond a highschool pre-calculus class. That is not the level that professional programmers need.
I don't mean to seem rude, but it feels a little bit like being talked down to, having it suggested that this is the level of help my occupation is asking for.
The statisticians can do it: http://web.mit.edu/~csvoss/Public/usabo/stats_handout.pdf
This isn't far off: https://en.wikipedia.org/wiki/Glossary_of_mathematical_symbo...
Re: Ask HN: How did you learn math notation?
#216Re: Ask HN: How did you learn math notation?
#217Earlier quoted context omitted.
That's "read all the fine manuals", not "read the fine manual". In the end you might eventually read all of them, but it's not the efficient thing now .
But why are you reading research papers with math without having studied math? If you want to understand them fully then you need to do the relevant courses, people spend years learning these things. You don't have to read them all, just the branch relevant to the paper.
I.e. why are you knocking on this gate, if you're not worthy of passage?
Re: Ask HN: How did you learn math notation?
#218Earlier quoted context omitted.
That's "read all the fine manuals", not "read the fine manual". In the end you might eventually read all of them, but it's not the efficient thing now .
But why are you reading research papers with math without having studied math? If you want to understand them fully then you need to do the relevant courses, people spend years learning these things. You don't have to read them all, just the branch relevant to the paper.
Re: Ask HN: How did you learn math notation?
#219Earlier quoted context omitted.
> But clarity doesn't require some sort of minutely perfectly consistently notation which would be required by a computer I made this point in another comment, but I think it bears repeating and elaboration: Consistency isn't required (at least outside any single paper), but explicitness would be a tremendous boon. Software incorporates outside context all the time, but it pretty much always does it explicitly (thoug…
I totally agree. I think that many mathematical papers aren't explained as well as they can be. My advisor was pretty adamant that papers should not be written in some proof-chasing style like you describe and that the author should clearly include the arguments they need (citing those authors they might have learned it from) unless those arguments are truly standard. No "using a method similar to [author] in Lemma 5…
In theory, some kind of checker could validate the semantics of a paper to just tell you whether the arguments made are complete. Not whether there is a correct formal proof, just pointing out any obscured leaps of faith[0]. A rough analogue to test suite coverage for code (which is also not any sort of guarantee of correctness, just basic reassurance that all (or most of) the code is tested and isn't broken in any obvious way, especially while making changes).
I'm trying to think of an equivalent for prose, and am coming up with examples like detecting conflicting descriptions of locations or named characters, or whether the author lost track of which character said which lines in the dialog.
> It's also not technically "unclear" in any notational sense
Perhaps not necessarily, but unfamiliar/borrowed/idiosyncratic notation is a perfect (and common) place for insufficient exposition to be hiding.
Re: Ask HN: How did you learn math notation?
#220Earlier quoted context omitted.
Thanks for the pingback ... I appreciate that. And thanks for acknowledging that I'm trying to help. It might also help to think of "scope" in the computing sense. Often you have a paragraph in a math paper using symbols one way, then somewhere else the same symbols crop up with a different meaning. But the scope has changed, and when you practise, you can recognise the change of scope. We reuse variable names in dif…
> We reuse variable names in different scopes This example works against you. Scope shadowing is nearly universally considered bad practice, to the point that essentially every linter is pre-configured to warn about it, as are many languages themselves (eg prolog, erlang, c#, etc) To a programmer, you're saying "see, we do it just like the things you're taught to never ever do" . > You may still not like math, or the…
But it doesn't make sense to put lists of notation everywhere mathematical notation is used like in a journal or because the audience is already expected to know it. If the author does something weird or non-standard it's typically explained, sometimes it's even explained if it's pretty standard.
Different branches of math, physics, statistics,etc. will redefine the same symbols to mean different things but that's not much different from programming languages. & in C++ has a different meaning than & in R. Like the first step of understanding someone else's code is to know what language your looking at it's important to understand the context of what you're looking at. Look at previous cites, relevant textbooks, ask around, reread the paper again. I've read some papers a dozen times easy before it clicked.