Hacker News new | ask | show | jobs
by SteveCoast 3263 days ago
When I was 18, back in 1999, I had an internship at WRI (Wolfram Research) in Illinois. I'd applied armed only with a library copy of the Mathematica book, so they sent me a CD with Mathematica on it. I made some demo things and got a slot, and flew to Champaign.

I worked on polyhedra for a summer, writing code that could unroll a polyhedral model to its 2D net. Find the volume, the number of faces and all kinds of stuff. I met a bunch of interesting people and it was a blast.

I also fell asleep at my keyboard more than once. It was a beautiful summer, biking to work and working with what I still think is one of, if not the, best language ever.

Here's why all this is relevant - I came back to real life to study CompSci on these old Sparc machines. And it was like, here's the power button. What's an object in Java? What's a compiler? All reasonable stuff.

But: Wolfram Research and Mathematica had, in a sense, ruined my undergraduate life before it started. Why were we using all these bizarre tools? Can't we do this a million times faster? Why are we learning all these bizarre integrals?

It was similar to being denied graphing calculators in A-Level Mathematics (in the UK, think high school). I get it - we need to learn 'the basics' and survive without tools to some degree. But, it would have been nice to use them in some contexts and not just deny their existence.

There's an anecdote I think about Milton Friedman being shown people building a dam with shovels and not digging machines, to keep people employed in some God-forsaken country. He asked, why don't you use spoons instead? Then, more people would be employed.

Mathematica and Alpha are wonderful tools, and I highly recommend applying for an internship if you're of the right age or whatever the requirements are today.

7 comments

> we need to learn 'the basics' and survive without tools to some degree

This is the wrong approach. There's no way you wouldn't understand math much better with these tools.

I'm hoping that in the future, math will be less about equations and symbols and more about graphing and being able to move around in the spaces described by the equations.

I would draw an analogy with a compiler. After using it for some time, your brain will take on the shape of the compiler and you'll write correct (lol is it ever tho) code without even having to compile it.

Both are true.

Clearly we are more productive with the tools. However it is very, very easy for people to see the tools as magic. At some point we need to actually understand what it is that we are doing. For which those equations and symbols are essential.

Yes, the computer can draw a pretty picture. Pretty pictures are helpful in conveying information. But they are a horrible way to understand inherently complex topics.

For example pictures are essential for conveying basic concepts in in multi-variable calculus. But you won't make much sense of the topic until you actually understand the three basic mathematical representations of a surface embedded in a higher dimensional space (function, level surface, and parametrized coordinates), how each connects to the tangent to the surface at a point (whether that tangent is a line, plane, or something higher dimensional). And you need to understand this in an n-dimensional way because that comes up, a lot.

So no, we won't lose equations and symbols. Ever. They are essential, and there is no possibility of real understanding without them.

> we won't lose equations and symbols. Ever. They are essential, and there is no possibility of real understanding without them.

i don't know.

sometimes i think these symbols and equations are just machinery created by deeply talented, deeply insightful people to help the rest of us arrive at correct statements and give us a little glimpse of a vast panorama of truth which their minds see intuitively, unaided by all the symbolic clutter.

Yes, and no.

Good mathematicians and scientists that I have personally known have a wide variety of styles of understanding and thinking. The first and most basic divide in mathematics is between people whose natural inclination is algebra versus analysis. The best at analysis seem to have a deep intuition like what you project. The best at algebra operate pretty directly with symbol manipulation.

> So no, we won't lose equations and symbols. Ever. They are essential, and there is no possibility of real understanding without them.

I didn't say get rid of them. But I think that if you see a complex equation, you should be able to roughly imagine it in your head. Working only with symbols won't get you there.

But I think that if you see a complex equation, you should be able to roughly imagine it in your head. Working only with symbols won't get you there.

You're wrong. To take a real example, visualize G_{\mu \nu }+\Lambda g_{\mu \nu }={8\pi G \over c^{4}}T_{\mu \nu }. I dare you. That's Einstein's field equations for General Relativity. I don't visualize a system of 2nd order partial differential equations involving many dimensions at each point in a 4-dimensional coordinate system. Do you?

Furthermore people differ on how visual they are. If you're someone who has to visualize things to understand them, you're hardly alone. Lots of people are like that. But then again there are people like me whose thinking is almost entirely non-visual. If I'm dealing with something abstract, not only do I not think visually, but a purely visual explanation doesn't really help me much.

Hmmm. I would disagree with you. It is impossible to visualize the equations as that isn't possible to do in 3 dimensions, but it is possible to develop an intuition. After taking functional analysis, for instance, I began to develop an intuition for how function spaces work, and was able to visualize that to a certain extent (for a given definition of "visualize").
You get it. Few people understand what's happening in every dimension at every point, but getting a feel is doable.
You might be thinking visually without even recognizing, because to call that kind of imagination visual (as in optical) is misleading. A Hydrogen 2 molecule has 6 degrees of freedom already, give that color and you have 8.

There was a story on HN about activity in the "visual" system of blind people. Here is a similar story google spit out: https://news.ycombinator.com/item?id=14720225

Commutative diagrams are a development that has applications in algebra, too. I'm currently reading Physics, Topology, Logic and Computation: A Rosetta Stone (J. C. Baez, M. Stay) https://news.ycombinator.com/item?id=12317525

I mean this particular equation not really no but that might be because I haven't done much general relativity. But I can kinda visualize other somewhat complicated equations.

Sure but then you are giving an advantage to the more visual people no? Can't I just flip your argument?

Yes, symbols are useful but you should have an understand of what they are actually doing.

Sure but then you are giving an advantage to the more visual people no? Can't I just flip your argument?

Sure, you can flip the argument. You'll be wrong, but you just did it.

People naturally lean towards understanding using different methods. Each mode of thinking has strengths and weaknesses, and so do people. Some things are better understood visually. Other things not. Some things have the best way of understanding varying by person.

So yes, on some things you'll have an advantage over me because you're visual. On some things I'll have an advantage over you because I probably understand complex abstract relations more naturally than you do. And your insistence that everyone is best off trying to think like you do is completely misguided.

Anyways I've explained my position enough. If you don't wish to get it, you won't. I'll let other people take over the task.

> "I think that if you see a complex equation, you should be able to roughly imagine it in your head."

This breaks down in many cases. What if your equation involves complex numbers for each component? What if it's an eight dimensional space or perhaps a multi-hundred dimensional space for recommender system?

At some point, you have to be comfortable with more abstract representations.

I think of complex numbers as just points/vectors.

As for multidimensional spaces, you might not be able to visualize all the dimensions at once but by doing them three dimensions at a time, you can go Pretty far.

You should check that the abstract representations still make sense intuitively.

> Clearly we are more productive with the tools. However it is very, very easy for people to see the tools as magic. At some point we need to actually understand what it is that we are doing

And that's why computer science needs to be part of the math curriculum in schools asap.

Please, no.

Or at least not unless it is done well.

The problem is that we start with a reasonable idea like, "People should understand how the tools work." We make an obvious observation like, "Understanding computer science helps people understand how the tools work." Come to a conclusion like, "Computer science needs to be part of the math curriculum in schools asap." This turns into a mandate for educators who themselves have no understanding of computer science. Who then ask the question, "What does everyone need to know about computers?" Who then consult with what seem to them like appropriate experts. Soon you're hearing about how we'll have interactive computer science courses to guarantee that children have familiarity with how computers work. And to fanfare these are rolled out in schools.

Then you go and look at what is being done. A teacher who clearly doesn't actually understand how computers work has kids using a variety of interactive programs, ranging from Microsoft Word to animated presentations. They are calling that "computer science". No actual understanding is imparted. And the exercise reduces time available in the core curriculum that could have spent on things like quantitative reasoning. You know, stuff which ACTUALLY can lay the foundation for understanding how the tools work.

> A strawman who clearly doesn't actually understand how computers work

Fixed that for you. I had good informatics teachers 10 years ago.

> quantitative reasoning

As in complexity of sorting functions? We did that, non-rigorously.

I just don't see how, say, meiosis and mitoses or vulkanism are any more mandatory to learn than e.g. Codd's normal forms or the workings of an ALU.

I described what I actually witnessed happening to my children in supposedly good California schools. It fits a pattern that has been frequently seen over a long time with a variety of technical subjects that were pushed to schools, starting with the New Math debacle back in the 50s and 60s.

I'm glad that you personally had a better experience. I believe that I described something closer to what we should expect to happen with such initiatives.

I would claim that most folks who have a reasonable understanding of fundamental computer architecture and assembly are those who actively learned it. Folks who have just used a compiler for everything, in my experience, rarely actually develop the understanding innately. Compilers still have this "magic" element associated with them.
It's not either or, it's a dance. You make a hypothesis in your head, verify it with a compiler. If result matches your hypothesis, move on. If not, investigate.

For me personally, I thought I kinda knew assembly until I started using https://godbolt.org when I realized that I really didn't know assembly. This site helped a lot of other people as well. Note that all it does is make the process of discovery faster. But it's a tool in the same category as a calculator.

Many vocations use computers, but should they all require learning about software, electronics etc?

If you don't need to "understand" the math, why risk opportunity cost learning it?

> I would draw an analogy with a compiler

staying "high level" is a good thing for some programmers. If every web dev had to dig into the low-level working of the browser, a lot less would get done.

I also interned at Wolfram in 2000. I spent the summer writing coverage tests, which meant getting to run Mathematica through gcov and seeing what lines weren't being hit by the test suite. Writing coverage tests for most things would have been incredibly boring, but this was anything but. There were lines of code that required me to spend two days in the Wolfram library reading up on branches of math I had never heard of before (wtf is a Gröbner basis?!). My favorite discovery was a line of code in the integer factoring function that I could only hit if I constructed a number by multiplying several Carmichael numbers IN A CERTAIN ORDER. If you like math and computer science, it's hard to imagine a better place to intern.

Sorry to hear about the rest of your undergrad experience. I was really fortunate that I never had a professor complain about me using Mathematica for everything. Even just typesetting math in Mathematica instead of LaTeX was a huge benefit for me.

One of my favorite classes was Computational Algebra taught by Dana Scott. He did the entire class in Mathematica. Each lecture was just him walking through a notebook and the problem sets were all about writing Mathematica code to solve interesting problems. I think I still have them somewhere...

> working with what I still think is one of, if not the, best language ever.

Really? Mathematica is amazing and uncontested for symbolic algebra, but writing anything more than a notebook/paper is a nightmare. In built stuff is good, but functions you have to define yourself instantly become an incomprehensible mess of parentheses. Leaving aside the fact that it's a propriety language and the many flaws of its eponymous founder.

I long for the day SymPy or similar gets good enough that we can dispense with it.

I would agree the language can be confusing but they language isn't exactly propriety. There are open source implementations of it like mathics.net
To add another point, my A-Level teacher always said anything the calculator can do, you can do, and just as fast.

And then she chose a question from the book, had one of us start typing, and she started at the board solving the same thing.

She finished first. Not by much, and obviously the calculator is the faster choice more often, but she finished first.

Reminds me of the story of Feynman vs the Abacus. [1]

Though, as a story, the conclusion he draws is pretty self-congratulatory and bothers me a bit. The substrate on which you implement an algorithm like arithmetic doesn't really speak to whether you "know numbers." It's like the high schooler thinking being very good at computing integrals makes you good at math.

[1] http://www.ee.ryerson.ca/~elf/abacus/feynman.html

Being powerful, ie good in something, is a function of Work over Time, so if you are good without much effort, that implies some sort of talent I think.
Well, she certainly proved that there's at least one problem whose solution she can sometimes produce faster unaided than at least one high school student with a calculator.
> She finished first. Not by much, and obviously the calculator is the faster choice more often, but she finished first.

This is more of an interface problem I believe.

It's a low level magic trick: she chose the problem. Even supposing she didn't have the answer memorized, she knew exactly what to min/max to favor herself in the challenge.

(A real magician would also work to make sure that the kids thought they chose the problem, but the choice had already been primed for them.)

That says more about the book than about calculators. :)
That's going to depend heavily on the problem in question. Multiplying large numbers? Probably. Computing the fifth root of pi to eight decimal places? Probably not so much. (Maybe there's some quick way to do that second one mentally, substitute something different if so.)
sounds like she proved that she could do it just as fast as a calculator. good thing i wasn't in that class. i would have proved her wrong: i couldn't out compute the calculator.

then again, they wouldn't have let me in that class in the first place.

> my A-Level teacher always said anything the calculator can do, you can do, and just as fast.

This is obviously false, and I don't really understand the point of saying this.

Plus, the benefit of using a computer is that computation is effortless, letting you use more of your brainpower on actually interesting problems rather than something that is easily automated.

> But, it would have been nice to use them in some contexts and not just deny their existence.

My high school classes in Victoria, Australia, had tests and exams both with and without TI CAS (graphic calculator that also does algebra and calculus with a pretty screen) and I agree that it's pretty nice. Interestingly, I think our curricula were based on the UK's originally.

I think it's similar to learning all the simpler math. You're taught to add large numbers on paper but in the end doing it with a calculator saves you a lot of time and effort. Learning to use a CAS or Mathematica or the like seems essential if you're going to be working in a field that uses calculus for practical things like engineering, medicine or finance.

I use alpha quite frequently. I have these big formulae that need differentiating/integrating (non-linear solvers, jacobian matrices, etc.) for a paper I'm looking to publish. Now, the algebra kind of gets seriously tedious and error prone. Here alpha comes to the rescue. I don't have the budget for a complete mathematica package. So, in the end I take the results and use scipy/numpy to write the code to use them in numerical computation.

So, to that end I agree here. They are absolutely wonderful tools if you know what you're applying them for. However, they can be pretty bad if you're trying to use them to cheat (just like everything else).

> ... why don't you use spoons instead?

reminds me of one of the arguments against minimum wage hike theory: if raising the minimum wage makes workers better off and has absolutely no drawbacks for anyone, why raise it to a mere $15/hour? why don't we do some real good and crank it all the way up to $100/hour?

And why not eliminate it, if it's bad? That way we can pay people to dig with spoons instead of expensive backhoes.

Seriously, though, to answer the question: there's a point where a raise in the minimum wage will stop being helpful, and everyone who supports the minimum wage understands this.

> ... why not eliminate it, if it's bad?

Did I say that the minimum wage was bad?

I view the minimum wage as something with both advantages and disadvantages. Depending on its level, different workers and businesses are helped or hurt.

If $15 is helpful, then $20 must be more helpful, except to the workers whose hours are cut back, etc. At each point along the scale some workers are helped but others are hurt.

If everyone who supports the minimum wage thinks that, beyond a certain level, it is no longer "helpful", what is the official, universally accepted definition of "helpful"?

How many workers can lose their jobs vs how many experience an improved standard of living?