Hacker Newsnew | past | comments | ask | show | jobs | submit | SolveEverything's commentslogin

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


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


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


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


Sure. A couple of comments only:

The example you give of fields is a good one, but one counter-example of an area where playing around doesn't help much if at all, doesn't really affect the question whether you can learn maths by programming, to which the answer 'No' seems wrong to me. If one person is blind, it doesn't mean nobody can see. Sure, you can't learn all of it. But the other extreme, where you seem to be saying, you can't learn anything—which saying things like that you can't learn a particular piece of maths from programming "until you’ve already learned it" seem close to—seems equally wrong to me. In the area you're talking about, sure, it's hard to see how computers would help ones intuition. But that's very far from meaning that all areas are like that.

Also, you're talking about problems, homework - answering other peoples' questions. I didn't have that in mind, but learning, exploring for oneself. And in areas where no-one knows the why, one is exploring the what, how things work. I think you're just thinking of abstract areas where that's not really possible, but in a lot of areas it absolutely is.

But yes, I think we're not disagreeing so much as talking and focussing on different aspects/areas of mathematics. And probably you know muuch more maths than I do, and possibly mucking around with computers is of less use in the higher realms than in the lowly plains I inhabit. But still, I can't help thinking that the problem with thinking that knowledge is exhausted by know-that (know-how disregarded as not real/important because can't be written down explicitly, as diagnosed in Rationalism in Politics) is a part of thinking that the things that you say, correct as they are, fit together into any kind of argument that programming is of no use in learning mathematics. But it seems we have entirely different levels/areas in mind.

Thanks for the comments, very interesting.


Please post it here if u find it. Thanks


what's 2nd and 3rd best?


obviously it's about overall design, and is asking based on your educated opinion


this is extremely wasteful

automated gardening would be far more productive, and make significantly more progress


this is extremely wasteful

automated gardening would be far more productive, and make significantly more progress


go and write an automated-voting-bot in the with optimal schedule for the plant

fight fire against fire :)


heyy how about something helpful?


how about something helpful instead?


wtf... is this an uneducated reddit user that stumbled upon HN?


wtf... uneducated? that's whoever wrote that page, not the users. the question specifically asks about the users


i have no idea what you're saying, any links? based on the specific question asked?

did you (fully) read the context that is linked at top?


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

Search: