Earlier quoted context omitted.
I think Yegge is actually completely correct. I started to learn to program when I was 14, and once I understood the concept of functions, I found it much easier to do my calculus and physics work. Fundamentally I understood how to break things down into computable steps. Granted, I think get the impression we might be overloading the term "mathematics".
For most mathematicians, calculus as is often taught in typical undergrads is not "true" mathematics. It's just a tool for computation. For them, calculus is analysis (theorems/proofs that are used to build up calculus). So my question is: Did you study analysis and would you credit programming in helping you get good at it?
The Mathematical Hacker (2012)
71–80 of 186 posts
Re: The Mathematical Hacker (2012)
#72I used to work on these problems in school all the time, but once I decided to join industry I encountered a bunch of these Lisp-style engineers who love computation in the abstract but not the application thereof. Scala seemed to attract a lot of folks like this. Maybe if I had gone into scientific computing I would have found more. I get to use these skills every so often though. When I was designing one of our ear…
Also flows and buffers in the software that can be improved with queueing theory. Logic that can be simplified with boolean algebra.
Re: The Mathematical Hacker (2012)
#73Earlier quoted context omitted.
For me the opposite was true. My mathematical education made it incredibly easy to pick up programming and programming languages, everything was somewhat familiar and the concepts just came naturally.
How did you feel when you first came across a global variable, or even a pointer? It seems to me that math-first people would probably find C to be an abomination.
>It seems to me that math-first people would probably find C to be an abomination.
I certainly don't. You might do so if you wanted programming to be an expression of pure mathematics, but I do not think that is the right approach. C does well for what it is an abstraction over an underlying, real machine and thinking of it as an abstraction is the right thing.
Re: The Mathematical Hacker (2012)
#74Earlier quoted context omitted.
> mathematics is orders of magnitude more intensive and difficult than most programming But what level of programming and mathematics are you comparing here though? because college-level algebra and calculus is really not that hard imho (once it "clicks" for you, but it's the same for programming), and if we are comparing math as in what you see in a BSc/Msc of Mathematics (or research-level) then I agree it's hard b…
I would hard disagree that undergrad level Analysis or even just the trickier corners of vector calculus are within the bounds of what programmers can easily pick up without dedicated and guided study. Everybody's gangster until they have to parameterize some bullshit helical structure in R3. Comparable levels of programming, what we expect of CS juniors, are regularly picked up by "the guy who is good with Excel" in…
Input it into a proof assistant, and rely on the same sort of feedback "does the computer accept your proof, or get stuck". The hard job of formalizing stuff for this purpose has seen significant progress, e.g. by the Lean mathlib project.
Re: The Mathematical Hacker (2012)
#75Earlier quoted context omitted.
I would hard disagree that undergrad level Analysis or even just the trickier corners of vector calculus are within the bounds of what programmers can easily pick up without dedicated and guided study. Everybody's gangster until they have to parameterize some bullshit helical structure in R3. Comparable levels of programming, what we expect of CS juniors, are regularly picked up by "the guy who is good with Excel" in…
> I wouldn't even begin to understand how to self-teach myself Stokes Theorem or some shit Input it into a proof assistant, and rely on the same sort of feedback "does the computer accept your proof, or get stuck". The hard job of formalizing stuff for this purpose has seen significant progress, e.g. by the Lean mathlib project.
Re: The Mathematical Hacker (2012)
#76In Steve Yegge’s linked post: > Math is a lot easier to pick up after you know how to program. In fact, if you're a halfway decent programmer, you'll find it's almost a snap. This couldn’t be more wrong. Mathematics is the hardest thing I have ever done. I’m sorry, but mathematics is orders of magnitude more intensive and difficult than most programming. A simple fact that shows this is the amount of programmers who…
I disagree because Math is programming. All those symbols you see map to a set of steps (a program.). It’s just knowing what subroutine every esoteric symbol stands for that’s hard. I will agree it’s been more difficult learning math than programming for myself as well: but that’s because math is geared and targeted for people who like doing symbolic logic by hand. Math people think we’re a level below them (we are i…
Re: The Mathematical Hacker (2012)
#77Re: The Mathematical Hacker (2012)
#78In Steve Yegge’s linked post: > Math is a lot easier to pick up after you know how to program. In fact, if you're a halfway decent programmer, you'll find it's almost a snap. This couldn’t be more wrong. Mathematics is the hardest thing I have ever done. I’m sorry, but mathematics is orders of magnitude more intensive and difficult than most programming. A simple fact that shows this is the amount of programmers who…
Math hard. Can confirm. Starwind have math degree. Starwind much better at programming than Starwind ever was at math.
Re: The Mathematical Hacker (2012)
#79Re: The Mathematical Hacker (2012)
#80Earlier quoted context omitted.
I would hard disagree that undergrad level Analysis or even just the trickier corners of vector calculus are within the bounds of what programmers can easily pick up without dedicated and guided study. Everybody's gangster until they have to parameterize some bullshit helical structure in R3. Comparable levels of programming, what we expect of CS juniors, are regularly picked up by "the guy who is good with Excel" in…
> I wouldn't even begin to understand how to self-teach myself Stokes Theorem or some shit Input it into a proof assistant, and rely on the same sort of feedback "does the computer accept your proof, or get stuck". The hard job of formalizing stuff for this purpose has seen significant progress, e.g. by the Lean mathlib project.
In programming I knew I needed to sort a list or find a most efficient path because some practical problem I was trying to solve demanded that I do that. Frequently I had a basically crap but working independent solution before I learned the names "EWD" or "A*". I independently discovered that I needed virtual interfaces (before I knew them by that name, "I wish pointers to parent classes could call implementations in subclasses") and then discovered language facilities for polymorphism and OOP.
Without formal or at least guided instruction I would never think to move towards or discover "I wonder if there's a relationship that makes these double integrals of curls of vector fields easier to solve for".
Programming has a high coupling between necessity, experience, and theory. In mathematics that coupling is much, much, much looser. Self learners in programming regularly re-discover and re-implement, typically less efficiently, all sorts of fundamentals of CS. The equivalent in mathematics rarely happens post-algebra.