Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Since finishing school, I've used very little of the math I learned in school.

I've used a lot of math. Most of it built on high school algebra and geometry. Does that mean that's all I needed to learn?

No.

The key thing I do use is more ephemeral: Mathematical maturity. In my current job, I use math I never learned in graduate school. I'm able to learn it quickly because I learned a lot of math back then. My math classes were a way to develop mathematical maturity.

Which specific math I learned in graduate school was almost incidental. What I picked up was the ability to learn new math.



There is also a difference between learning math and understanding math. I was taught the basics of matrix multiplication, finding determinants, solving linear systems of equations and all the stuff in high school. I was half way to my Masters before I really understood what all those things actually where, how they related to different things and all the ways they could be used to actually solve real world problems.


The term for this is transfer learning.

https://learningcurrents.weebly.com/visible-learning-surface...

It takes a minimum of about 3 semesters to be able to get linear algebra to the stage of transfer learning. There are slower ways to do it (which most people follow), but there aren't shortcuts -- there is no way high school Algebra 2 can get you there in the time allotted.

That kind of high school surface learning is not a step you can skip, though:

"Surface learning is critical because it provides a foundation on which to build as students are asked to think more deeply."

There are a lot of shortcuts which can cut back on the number of hours, mostly by spreading out the number of years. Early surface exposure helps a lot, as does revisiting topics in different contexts.

https://en.wikipedia.org/wiki/Spacing_effect https://en.wikipedia.org/wiki/Spiral_approach


In programming, you're doing math whenever you convince yourself that a rewritten piece of code means the same thing as the original (by thinking about it, rather than just running it).


I mean, at a certain point, you're just abstracting logical thinking in general and calling it "math". You can say the same about baking, working out your schedule ahead of time so you can pick up your kids and have time to buy groceries, or trying to sort your playlist of non-album singles in a way so that you optimally position each song in a way that minimizes how jarring the switch from one track to the next is

I feel like the whole point of "math" is to abstract these natural patterns so we can like... write them down and investigate them further. We have a limited mental capacity so we abstract it into a syntax/system of meaning so that we can let the paper or the computer do some of the memory work for us.

If you're doing it in your head, sure that's a skill, but is it really math?


I've been programming since I was 14, and getting paid to do it since I was 15 (I know, not impressively young compared to some folks, but still). Approaching 40 now.

It's never felt like math to me. If it did, I probably wouldn't be able to do it. I'm not especially good at math and feel damn near dyslexic when I try to read math-notation-heavy writing. Programming, meanwhile has always come easily and naturally.

... except the languages that try to look like math. Looking at you, Haskell. I get the concepts just fine, but I can't stand the style.


I think that's totally normal. Many (admittedly, sometimes dubious) studies have made the claim that a background in [linguistics | juggling | playing music | etc] is a better predictor of the likeliness that someone will turn out to be a good programmer than a background in math is

As someone with a background in math, I think that makes total sense. I don't feel like there's any magic reason why practicing reasoning under (one of the many paradigms of) mathematics would automatically carry over to the type of reasoning you practice while programming any more than the previously mentioned exercises.

The only times math has helped me is when the programming I'm doing straight up references mathematical concepts I've practiced with (matrices, group theory, etc). Which is a pretty uncommon occurrence in my current position.

If you want your background in something else to help you with programming I think you'll have to put conscious effort into identifying and using the relevant abstractions and metaphors


A professor in college had two terms: microprogramming and macroprogramming.

Microprogramming was the kind of thing where you're trying to, for example, cut down an assembly loop to run in 6 cycles rather than 8, design a numerical algorithm, an operating system scheduler, or similar. This is very mathematical in style of thinking.

Macroprogramming is what happens when you write a database-backed web application, for example. It's much more linguistic. It's about understanding other people's code, writing your code to be understood, and gluing a lot of stuff together.

Both have their place. Macroprogramming is taking over now, but I enjoy microprogramming more.


Umm, no; I'm specifically referring to reasoning that a certain clump of symbols has the same meaning/effect as another one by linking semantics with symbol manipulation rules.


-(-x) = x. It's not far off. Different in degree of quantity and type of symbols, not different in kind.


Sure, if you solve it with symbol manipulation rules. That's definitely not the general case when I'm comparing two pieces of code to see if they do the same thing.


It is, you just follow the rules in an ad-hoc way, and without having all of them formally in your mind.


I think you've now defined every kind of reasoning to be math.

I don't think that's a good way to define it. But if we do define it that way, then saying "x is math" becomes a very weak and much less interesting statement.


> If you're doing it in your head, sure that's a skill, but is it really math?

Is it not? Adding numbers in my head is certainly math. Algebra in my head is certainly math. Why would it stop being math just because I'm doing it more abstractly?


If you role play in your head the setting of a table, you may be able to count the plates used. This does not imply that you must do the symbolic reasoning of this in an equation.


Yeah I think you are hitting the on what I think is math reduction thinking. That formalized process of thinking is the esencse of what math is. It's quantitative instead of qualitative. Before math formalized those things it's all an eyeballing and impossible to convey without demonstrations. The simple form of that is for baking but if you gave someone an excel sheet and step by step instructions for building radio antennas they can do it because its been formalized. And this certainly transfers to programming because the writing of a program formalizes the recipe


> It's quantitative instead of qualitative.

Advanced math typically starts with logic and structures, not numbers. Even when they study numbers, they tend to be focusing on their qualitative properties: compactness, convexity, primeness, etc.


>I mean, at a certain point, you're just abstracting logical thinking in general and calling it "math".

Which isn't that bad a thing to do.

Many programmers could use more formal logical thinking (or, just, logical thinking to begin with). DailyWTF situations, which most of us have seen in our jobs, are often the case of non applying basic logical principles properly.


Do you use “math” and “deductive reasoning” to refer to distinct activities?


Deduction is used in a lot more than just the classes labeled "mathematics". Which makes one question just to what degree the mathematics classes are even useful. Perhaps deductive reasoning could've been taught to do more useful things than factoring polynomials.


Philosophy (at least in the Analytic tradition) involves a lot of deductive reasoning about non-mathematical things (the main difference from maths being that in maths everyone mostly agrees on the foundations, where in philosophy a lot of the reasoning is conditional: IF you believe X, Y, Z, then Q is also true).


Could you give an example of philosophers from the analytic tradition that actually build their arguments in an axiomatic way like many practices in mathematics try to? I feel like I've read more attacks on this very approach than actual examples of this approach (from both analytics folks and continental folks)


Classical logic is related to boolean logic, and has its uses.

But a lot of real world "logic" (decision theory, etc) is statistical in nature, often with a big inductive component and often based on "axioms" that only approximate the real world.

In other words, the field of Analytic Philosophy, when not using the proper amount of math and statistics (especially Bayesian statistics) tend to either lead to doubting everything (if they know what things they do not know) or drawing bad conclusions (if treating their axiomatic assumptions as absolute truths)

They have similar problems with science, and maybe Physics in particular, because of the abstraction of modern physics. By interpreting statements made by some physicist too literally, they may (falsely) end up with conclusions that go way beyond the domain of validity of the original statement.

Imho, Philosophy is fine as a side-project for people in academia, but I think philosphers who do not study math, science, psychology, etc at a level comparable to their philosophy work are at risk of ending up in lala-land.

I would estimate that if someone studies only philosophy in college, they will reach a point after about 1 year where their knowledge of philosophy come to a point that requires more understanding of math, science etc than they had when they started. Kind of like a physicist that doesn't take college level math.


What activity are you designating with the name “philosophy”?


What are “foundations”?

Inference rules, axioms, language?


I was referring to axioms when I used the term "foundations" above. Inference rules are largely agreed upon across both maths and philosophy (and they're the same ones in both disciplines).


A tangential but related thought.

I’ve heard people say things like, “The world is math”, but it never seemed particularly coherent to me. Sometimes I’d assume they meant, “Inference systems with mathematical languages make useful predictions about my empirical experience.”

But now I’m favoring the interpretation that experience is purely formal/syntactic with no semantic component. There is no additional meaning beyond (or behind) appearance.


There is a notion of meaning in that it encodes possibility. A situation with lots of future possibilities has meaning. A dead-end situation has little or no meaning: stagnation, death, ...

If the formal/syntactic appearance is how leads to new possibilities involving more formal/syntactic appearances, then that is its meaning.


Are you suggesting that some people hold the normative position, “One ought prefer situations with more possibilities to those with fewer, ceteris paribus.”

But isn’t that just some hidden metaphysical structure? That is, it’s unavailable as formal appearance?


The problem with “maths” is its sublimation. Maths is just what we use to deal with quantities and shapes, abstracted from their matter.

Whether it is using symbols, pebbles or categories, it is neither better nor worse.

But they make people think that “maths” is just a terrible abstract construction.


I would hesitate to call this math. When baking and you perform substitution of blackberries with raspberries, do you consider that a form of chemistry? It can certainly be justified with it; but I hesitate to say it is the same thing.

Same for when a builder chooses to use a different type of fastener when constructing something. It could be borne of experience, but I would not necessarily call it material engineering at that point. Even if the exact same practice is how materials exploration happens, at a superficial level.


The point of the article isn't that all symbolic thinking is pointless—just that the specific types of symbolic thinking we spend years teaching aren't actually used very often. Why not spend that time playing with code instead if you want to learn this skill?


I remember in school hearing "math is just symbol manipulation" and to an extent, this might be true. It's structured formal thinking.

What's interesting is when the real, practical world runs into the theoretical, abstract math world.

https://petapixel.com/2019/07/05/goodbye-aberration-physicis...




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

Search: