Essential insights from Hacker News discussions

Ask HN: What to learn for math for modeling?

This Hacker News discussion revolves around learning the mathematical foundations for computer graphics and related fields, with a strong emphasis on understanding rather than just applying formulas.

Here are the key themes:

The Importance of Deep Conceptual Understanding Over Rote Memorization

A recurring sentiment is that true understanding of mathematical concepts is crucial, especially for complex topics like those found in computer graphics. Users advocate for slowing down, breaking down problems, and truly grasping what the symbols and equations represent, rather than just memorizing how to use them.

  • godelski emphasizes this point: "My point is that the hard part about math often isn't the calculation part." They further elaborate on the need to "understand what the symbols mean, what they are doing, and how they are interacting with one another. Math is a language. But it is a language designed for precision."
  • Later, godelski reiterates the benefit of this approach: "I promise you that if you take time to slow down then the speed will come. But if you try to go too fast you'll just end up getting stuck."
  • coderenegade echoes this: "Math is a language with many dialects, so you should treat it like learning a language in that you both have to start simple and build up, and use it. Take the time to learn what the symbols are saying for whatever dialect you are using."

Breaking Down Complex Concepts and Finding Multiple Perspectives

Several contributors suggest deconstructing complex mathematical ideas into smaller, more manageable parts. Furthermore, they highlight the value of approaching these components from various angles to build intuition and find clarity.

  • godelski provides an extended example of breaking down "piecewise polynomial of order n" for B-Splines, relating it to programming concepts like if statements and explaining polynomials through code and everyday English analogies. They advise: "If you can't see what something means from this angle, try another. Be that another book teaching the same thing or another framework to describe the same thing. Get multiple perspectives. One will make more sense than another but which one that is tends to be personal."
  • hodgehog11 suggests a structured approach: "write down all of the terms and concepts that are involved that you don't understand. Go back to a first-year textbook... Place strong emphasis on the definitions and theorems, drawing them together into a diagram with the terms from earlier to really understand why each concept is required for another concept."
  • m-a-t-t-i shares a similar sentiment based on their implementation experience: "When I was implementing these, the key was to visualise everything. It was much easier to see if things are correct by stepping through the algorithms graphically than just by looking at the math."

The Foundational Role of Calculus and Linear Algebra

A consensus emerges that calculus and linear algebra are fundamental pillars for understanding many advanced topics in computer graphics and related fields, such as curve and surface manipulation.

  • mhh__ states plainly: "Everything is basically calculus and linear algebra under the hood (until it's not, at which point you'll know)."
  • hodgehog11 advises: "It sounds like you need to get a stronger understanding of calculus and linear algebra..."
  • rramadass categorizes the subject matter as "Scientific Computing/Numerical Methods/Numerical Analysis/Numerical Algorithms. The mathematics underpinning them is quite wide but mostly Linear Algebra and Calculus."

The Value of Visualizing and Experiential Learning

The discussion strongly advocates for visualizing mathematical concepts and actively applying them through programming or interactive tools. This hands-on approach is seen as crucial for building intuition and solidifying understanding.

  • rramadass praises an earlier explanation for its ability to map abstract math to geometry: "The teaching of mathematics has become so abstract that students are not taught how to map it to geometry which is THE way to build intuition." They recommend studying I.M.Gelfand's Functions and Graphs for this purpose.
  • quag suggests practical tools: "If you don't have a good place to try out functions, I recommend https://thebookofshaders.com/05/, https://www.desmos.com/calculator, or https://www.geogebra.org/calculator." They also highlight the utility of linear interpolation (lerp) as a fundamental building block.
  • coderenegade notes the importance of "exploratory programming" and mentions that "AI" can be thrown in as well, suggesting a blend of traditional and modern learning techniques.
  • RossBencina advises starting with "high-school algebra and coordinate geometry, and learn how to put the two together: equations representing geometry." They also reference Inigo Quilez's "SDF of a ..." videos as providing an "illuminating perspective on using equations to describe geometry."

Recommended Resources and Learning Strategies

Participants offer a wealth of specific book titles, online resources, and learning methodologies tailored to the user's apparent interest in computer graphics and geometry.

  • mooder points towards university curricula, suggesting: "if you feel like you lack foundation knowledge, it might be worth looking over some of the material" from places like MIT.
  • hodgehog11 suggests specific textbooks like Stewart's Calculus for foundational work and Axler's Linear Algebra Done Right for a more rigorous, slow-paced approach, while also mentioning online resources like https://www.susanrigetti.com/math.
  • quag provides a comprehensive list of links related to curves and surfaces, alongside a recommendation for the sympy library for symbolic manipulation of equations.
  • efavdb suggests "intro to statistical learning" and provides a free download link for the book.
  • rramadass offers a detailed list of recommended texts for Scientific Computing, Numerical Methods, and Visualization, including Heath, Farin & Hansford, Gupta, Solomon, and Altland & Von Delft.
  • joshdavham expresses excitement about a Python version of a previously mentioned resource.
  • bigger_cheese recommends Christian Reinsch's paper on Splines.
  • coderenegade suggests learning about parametric equations, implicit vs. explicit representations, and exploring simple spline examples.
  • RossBencina recommends "McDougal, Little, 'Geometry for Enjoyment and Challenge'," Joseph H. Kindle's "Theory and Problems of Plane and Solid Analytic Geometry (Shaum's outline)," Joseph O'Rourke's "Computational Geometry in C," and Christer Ericson's "Real-time collision detection."
  • Jgoauh outlines a strategy of deconstructing research papers by identifying and researching unknown terms in their original sources.

In essence, the discussion emphasizes a pedagogical shift towards deeper, more intuitive understanding of mathematical principles, supported by a curated set of resources and practical application.