5 ms·
Learning math for programming or by programming? Not sure about the usefulness of programming to learning Math. For Statistics, I can see the added value (https
by cuchoi 9y ago
Learning math for programming or by programming? Not sure about the usefulness of programming to learning Math. For Statistics, I can see the added value (https://speakerdeck.com/jakevdp/statistics-for-hackers https://speakerdeck.com/jakevdp/statistics-for-hackers).
Do you have any examples?
- SolveEverything 9y agothere's the smart ppl on hn that had talked about how math was way easier when learned by programming link is somewhere in my massive notes
- slinger 9y agoPlease post it here if u find it. Thanks
- dsacco 9y agoI don’t think that really makes sense. Most mathematics cannot actually be learned by programming. They’re just different things. You can illustrate some mathematics (especially set theory and discrete math) with code, and you can implement some mathematical algorithms in code. But to learn mathematics you have to implement the algorithm, not just see it used with examples. In order to implement the algorithm you have to first understand it. To understand it, you have to first build up to it in theory. If you attempt to learn math by programming it, your understanding of that math is going to be very “shallow”. Tools like SageMath and Mathematica are good for computation, but the goal of learning is generality, and that’s diminished if you learn through computation. Ideally you’d learn the mathematics first, then apply it - then you can choose to apply it by programming specific results, but that won’t be relevant to whether or not you’ve learned it. I’d be curious to see the links you’re talking about, because I’ve never heard math people say they learned math by programming. I’ve heard of people implementing mathematical operations and algorithms in code, but that’s not the same thing.
- yesenadam 9y agoBroadly I agree; also I'm no maths professor. But the talking as if understanding can't be helped by programming, seems wrong to me, if only because I've been doing it all my life. Maybe we have different definitions of deep and shallow, but you can memorize a formula with no understanding. Playing around with it with a program, and seeing what happens, you get a hands-on experience that no amount of ..abstract generality can replace. I keep reading about how the great mathematicians have gotten their results not by doing mysterious genius things only they can, but by getting their hands dirty, playing around with base and border cases, seeing what happens with pencil and paper, in a way identical to mucking around with programs. To give a couple of concrete examples: I wrote a program that had planets orbiting a central mass, and playing around with it I gained for the first time a gut understanding of orbiting, and how natural it is in 3D space - it's something that just doesn't happen in the normal human environment. Fiddling around with fractal formulae, seeing what happens. Drawing the distributions of prime numbers, prime pairs etc. On and on, I could give hundreds of examples, you get the idea. Sure, it would be silly trying to recreate 2000 years of mathematical progress on your own without reading textbooks, but exploring, getting a feel for things, learning for yourself, is an important part too, to say the least. And one equally deserving the name 'learning', if not more. Read Oakeshott's essay Rationalism in Politics for the best explanation I've seen for this modern affliction where only things that can be explicitly written down are counted as knowledge. (It's super-enlightening - I was embarrassed how much I learned from it, always a good sign. I even learned a lot about piano teaching—my day job at the time—from reading it.)
- dsacco 9y ago> Playing around with it with a program, and seeing what happens, you get a hands-on experience that no amount of ..abstract generality can replace. That’s not really correct. I think we’re talking about two different things. I’m not stating that you can learn mathematics without actively doing it. I’m stating that programming is a poor medium with which to actively do mathematics until you’ve already learned it. Active learning is absolutely important, which is why solving problems is important. But those problems rarely take a form that are straigtforward to implement in code. The reason is because the broader theory of mathematics does not translate into code without significant difficulty. You can do computation of particular formulas by implementing them in code, but it would be strange to e.g. reason about what a field is by writing code to generate an array of numbers that technically adheres to the field axioms for addition and multiplication. You can do it, and it would help you a lot for operations over fields, but that isn’t going to help you prove that the set of all rational numbers is a field. You’re already past that if you’re implementing the code, because the computer is implicitly accepting that all xy and x + y are in Q if x and y are in Q. I’m a fan of using something like SageMath or Mathematica in a learning environment for computational math homework. But I honestly can’t imagine learning from a textbook and following along by writing code. The code is very useful for deriving insights about what something is, but it’s not as useful for insights about why something is.