(评论)
(comments)

原始链接: https://news.ycombinator.com/item?id=44097311

一篇Hacker News的讨论,源于一个推广计算机科学数学基础知识的资源,揭示了人们对高级数学在编程中必要性的不同看法。 一位用户分享了他因为认为需要掌握高等数学而推迟学习编程的经历,现在他觉得数学并没有他之前认为的那么重要。其他人则认为,离散数学和其他数学概念对于更深入地理解计算机科学和解决复杂问题至关重要,尽管并非所有编程任务都需要。一些人认为,对于许多职位来说,基本的逻辑和算术就足够了。 反驳的观点强调了代数的实际应用,大型语言模型(LLM)无需数学理解就能“编程”,以及复杂数学在某些编程职业中的无关性。一位用户指出,理解幺半群对于程序员至关重要。 这场辩论突显了不同编程角色对数学能力的不同要求,一些人反对基于数学知识的“门槛设置”,而另一些人则强调数学在计算机科学某些方面的重要性。

相关文章
  • (评论) 2025-03-17
  • 2025-05-17
  • (评论) 2025-05-23
  • 2025-05-21
  • (评论) 2025-05-11

  • 原文
    Hacker News new | past | comments | ask | show | jobs | submit login
    As a programmer, get your math sorted (csprimer.in)
    14 points by csprimer-in 1 day ago | hide | past | favorite | 19 comments










    > Master the mathematical foundations essential for computer science

    I get that this is marketing fluff, but I really don't like this sort of gatekeeping - it's what kept me from programming until I was almost 30

    These days I'm quite a prolific programmer both on the clock and in my free time, and I wish I could have started earlier now that I know how little math is involved or required to build useful and beautiful things as a programmer



    It's unambiguously true that some amount of math beyond high school like that studied in Discrete Mathematics is essential for computer science.

    That's not the same thing as being essential for programming.

    That being said, studying more CS will only open more doors for you, giving you the tools to solve ever more complex problems, or the ability to recognize when something is effectively impossible.

    It's not gatekeeping to point out that a field of knowledge will help you access other fields of knowledge. It's an invitation.



    About the only two things I’d say are required is Boolean logic and grade school arithmetic (eg, computing the right index).

    There’s certainly roles that require more — but they’re the minority and you can always be taught on-the-job if it really matters.



    Those jobs won't teach math on the job.


    I'd say algebra is required, just because that's what introduces variables and functions. If you get into programming without knowing algebra, you'll learn algebra on Day 1 without realizing that's what you're doing.


    Programming doesn’t require algebra[1], which is about manipulating equations.

    You only need to understand processes and assignments, neither of which appear in a typical algebra class. You certainly won’t learn how to pass an algebra class about manipulating equalities by programming.

    [1] — The high school kind.



    LLMs are also very prolific programmers that don’t actually understand any of the math underlying what they’re doing.


    If you were trying to say something with this comment, it communicated nothing to me


    Category errors are the new insults.


    "understand" is doing a lot of work here. LLMs can explain math and solve math problems better than most programmers.


    The university I went to started its math education with groups, which is really unfortunate and they never even mentioned monoids.

    Monoids are a key idea in computer science and I think that everyone should know what monoids are. Monoids are EVERYWHERE and once you recognize that you have a monoid you can immediately use known methods to compute over monoids in efficiently (e.g. https://static.googleusercontent.com/media/research.google.c...).

    Once you have a certain lattice (I'm leaving out some details), you can solve problems efficiently by known methods (e.g. using dataflow solvers) and automatically have a proof that the solution always terminates.

    I really wish that more people took their time to learn these fundamentals and I think this is a wonderful introductory site. I don't mean to offend anyone, but if you've never heard of most of that stuff, then I think that you don't deserve to call yourself a professional programmer. Why? You will reinvent solutions to problems that have been solved before much more efficiently then you will be able to i.e. you're an amateur.



    > I don't mean to offend anyone, but if you've never heard of most of that stuff, then I think that you don't deserve to call yourself a professional programmer [...] i.e. you're an amateur.

    Every person is going to have a different idea of what knowledge is essential, and as you point out, we don't know what we don't know.

    It is easy to look down on people who don't know what we consider fundamental, but it takes a little bit of humility to realize that we are ignorant of what other professionals value the most. Different roles require of different knowledge.



    Also, one important thing I've learnt is not to take in advice from obnoxious people.


    During my professional career the most complex math I had to use was, perhaps, a square root. Something on that ballpark. And that's coming from somebody who enjoyed learning Runge-Kutta methods in college.

    Your mileage will vary. I didn't even touch a DBMS after college, either, and I think that is going to be far more useful for the average programmer.



    As a theoretical programmer maybe.

    Otherwise there are plenty of more important things to learn for software dev.



    First thing that came to mind on seeing this title…

    https://news.ycombinator.com/item?id=1041744



    can't believe no one has mentioned mathacademy.com yet. pretty much the best resource on there rn if you wanna get back into university level math.


    Is this related to csprimer.com?


    The LinkedIn on this one links to Arjit Sharma, not Oz Nova of csprimer.com.






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



    Search:
    联系我们 contact @ memedata.com