I’m working my way to a CS degree and am currently slogging my way through an 8-week Trig course. I barely passed College Algebra and have another Algebra and two Calculus classes ahead of me.

How much of this will I need in a programming job? And, more importantly, if I suck at Math, should I just find another career path?

  • Jimmyeatsausage@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 days ago

    I was doing full stack dev for 20 years until very recently. Never needed anything beyond basic algebra EXCEPT for while I was getting my CS degree…had 2 classes, i think, where we were doing matrix math/Fourier transforms, but iirc they were electives…one was writing a very basic 3d graphics driver and the other was working with very simple computer vision…things like recognizing handwritten letters.

  • WhatAmLemmy@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    1
    ·
    13 days ago

    Math, despite being a great skill to have, is not mandatory for a large volume of programming roles. It may hurt you in some interviews but interviews are a fucking crap shoot / shit metric either way. Computers do most of the math, so you don’t have to!

    Source: I’m dyslexic, suffered from dyscalculia and migraines until I was allowed to use a calculator, and barely passed high school math. No degree. No bootcamp. 8 years as a dev.

    I’ve also excelled in multiple roles where colleagues were math or CS PHD’s, and become the senior or go-to on more projects than not. The key part is to know your strengths. I’m never gonna accept a role developing accounting software, or anything that would require me to code complex math on a regular basis. You’d be surprised how far you can get with Google.

  • masinko@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    12 days ago

    Depends on what kind of programmer.

    If you’re doing data engineering/science (more of an adjacent field), you need to know linear and probability pretty well to build models, or have data harvested in ways that can be put into vectors.

    If you’re doing relational DB stuff (like SQL) set theory helps a lot.

    Basic boolean operations in general is also good to know. You don’t need to go too deep in the weeds of boolean math unless you’re also doing a lot of hardware-level stuff.

    Any field you go into (not just programming), I would say just basic math for regular financial competency is good to know. Also to analyze your budgeting, your costs, time spent, effort needed, etc.

    • oldfart@lemm.ee
      link
      fedilink
      arrow-up
      3
      ·
      12 days ago

      If you’re a frontend programmer, you only need to understand rectangle width and height lol

  • trolololol@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    12 days ago

    The most advanced math a typical developer needs is Fibonacci, and if you can’t remember it someone will show you a cheat sheet.

  • ericbomb@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    12 days ago

    If you end up working in the medical/insurance field in the USA, you don’t even need basic math! The numbers the programs output are just all made up!

    I had the audacity the other day to ask in what order we apply deductibles. (YOU want a deductible applied to something covered at 10%, not 100%. The insurance wants it applied to something covered at a100%) I was told it just picks some at random and hopes for the best, so we use the word “best effort” when it comes to estimating what insurance will pay, since they’ll make that up anyway.

    So yeah, just another throwing in that it super matters where you work. At my job we plug in what is industry standard for medical accounting, and say it’s just an estimate on everything else.

  • DjMeas@lemm.ee
    link
    fedilink
    arrow-up
    6
    ·
    12 days ago

    I’ve been a full stack dev for about 11 years. I do some basic algebra but that’s about it.

  • rtxn@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    13 days ago

    You’ll encounter math eventually. It could be as simple as implementing linear interpolation for a custom type, or understanding why a type is not suited for a particular application (e.g. never use floating points to represent money). If you delve into low-level networking, you’ll need a good understanding of binary/decimal/hexadecimal conversions and operations. If you go into game development or graphics, you won’t survive without a deep understanding of vectors, matrices, and quaternions. Any kind of data science is just math translated to a machine-readable language.

    In my opinion, knowledge of the basic concepts is more important than being good at actually performing mathematics with pen and paper. For example, if you need to apply a transformation to a vector, nobody expects you to whip up a program that does the thing. Instead, you should immediately know:

    • what a transformation is (translation, rotation, scaling, projection, etc),
    • that each transformation has a corresponding transformation matrix,
    • that you’ll have to deal with inhomogeneous and homogeneous coordinates, and
    • that you’ll have to combine the transformation matrices and the original vector.

    That abstract knowledge will give you a starting point. Then you can look up the particulars – the corresponding transformation matrices, the method to convert between inhomogeneous and homogeneous coordinates, and the process of matrix multiplication. I know because I failed calculus.

  • Drakk0n@programming.dev
    link
    fedilink
    arrow-up
    17
    ·
    13 days ago

    More than math courses - logic courses in general helped me rethink and structure things in a variety of ways in how to approach problems. If nothing else it improves your “if-then-else”-fu to understand when you are not(not(not something))). My math degree required logic courses though at the same time so it made sense. For higher level math logic plays a heavy role and so leveraging that aspect helps in a lot of ways.

  • vrighter@discuss.tchncs.de
    link
    fedilink
    arrow-up
    7
    ·
    12 days ago

    unless programming something math intensive like 3d graphics, then basic arithmetic and just a general intuition of numbers is more than enough.

  • inline_caching@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    ·
    12 days ago

    I agree with the other answers that it depends on the type of programming you end up doing…the nature of the program being developed, but having a background in discrete math is great to have just in case.

    From my experience, there can be unexpected problems where you will advantage from having grasp at discrete math. I worked on a project for a telecom company where they wanted a simulation to predict the impact on network coverage if a specific cell tower (BTS) was uninstalled. I ended up relying heavily on the cross-product formula and some ray-casting algorithms to model how coverage would shift in the area.

  • Python@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    13 days ago

    I tried to go to University for CS but never quite got the hang of the math part. Instead I got a Certification in Computer Science from an apprenticeship (idk if that’s the right Translation, in German we call it “Fachinformatiker für Anwendungsentwicklung”) within 1.5 years and with extreme ease, because it was way less math-heavy and more focused on actual programming.

    I stayed with the company that I did the apprenticeship with and got promoted from Junior to Regular within a year. I work exactly in the field and position I wanted to work in when I was going for the CS degree. In fact, I have the exact same responsibilities and the same pay as my colleagues with CS degrees. It might not be like that in every company, but it did work out for me.

    Just for fun, I actually went back to Uni this semester to try and actually finish one or two math modules, but dropped out within 2 weeks because I was hopelessly incapable of even understanding the basic concepts lol

  • kamstrup@programming.dev
    link
    fedilink
    arrow-up
    6
    ·
    11 days ago

    Being comfortable with basic back-of-the-envelope math can be a huge benefit. (Full disclosure: i am a math major who is now a programmer)

    Over my career I have several examples of projects that have saved weeks worth of dev time because someone could predict the result with some basic calculations. I also have several examples where I have shown people some basic math showing that their idea is never gonna work, they don’t listen and do it anyway, and I see them 1 month later and the project failed in the way i predicted.

    A popular (and wise) saying is that “Weeks of work can save you hours of meetings”. I think the same is true for basic math. “Weeks of coding can save you minutes of calculation”.

    You can definitely be a successful programmer career without great math skills. Math is a tool that can help you be more effective.

    • icermiga@lemmy.today
      link
      fedilink
      English
      arrow-up
      6
      ·
      11 days ago

      Can you share the full story of the projects that you could predict could fail using maths?

      • kamstrup@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        4 days ago

        Can’t divulge too many details, but one example was when we had 2 options for solving a problem: 1. The “easy” way, storing a bunch small blobs to s3 as a job was running on an embedded device, or 2. The slightly tricky, implement streaming of said data on the device (not as easy as it sounds).

        We went with option 1, the easy one, because it was deemed faster bang for the buck. I did some basic math showing that the bandwidth required upload the high number of blobs to s3 within our time budget was not possible on our uplink.

        After we spend a month failing on 1., it was clear that we hit the predicted problem. Eventuelly we implement option 2.

  • GissaMittJobb@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    13 days ago

    I don’t think you necessarily need to have studied a lot of math to be successful in programming, but you will need it if you want to get a CS degree, which in turn can be a good lever to a fruitful programming career.

    My advice when it comes to math - math skills build upon the concepts you’re expected to have learned before, meaning that if you didn’t fully get everything in the past, then your foundation is not in great shape and you will struggle at higher levels. Going back and repeating the fundamentals just so that you fully understand everything is very helpful in my experience.

    I also think that understanding math is rewarding in itself, for what it’s worth!

  • suburban_hillbilly@lemmy.ml
    link
    fedilink
    English
    arrow-up
    81
    ·
    13 days ago

    Anywhere from very important to not important at all, depending on your specific job.

    There is some good news though, you’ve been lied to about sucking at math. Whether by yourself or other people I do not know, but the education research I have seen has been pretty clear that the main difference between people of normal intelligence who are ‘good at math’ and those ‘bad at math’ is how long they’re willing to work on a problem to ensure the correct answer before moving on.

    I know ‘try harder’ sucks as an answer but it’s the best one I know of and at least in this case will actually make a difference.

    • BrianTheeBiscuiteer@lemmy.world
      link
      fedilink
      arrow-up
      17
      ·
      13 days ago

      Agreed. Math, for the most part, is very rule oriented and problems only have one answer and often one strategy to get to the answer. If you work on many different problems (in the same subject) you should start to get used to the rules.

      Overall I would say a strong math foundation is important to CS but CS isn’t just about coding. You can absolutely get a coding job without strong math skills or even without a degree, it’s just a bit harder to get started. If the discipline still exists you might consider a Business Information Systems degree (we used to call it CS lite). Depending on the position a company might equally consider BIS and CS majors.

      • affiliate@lemmy.world
        link
        fedilink
        arrow-up
        12
        ·
        13 days ago

        i would disagree that math problems only have one strategy for getting to the answer. there are many things, particularly in more abstract math, which can be understood in multiple different ways. the first example that comes to mind is the fundamental theorem of algebra. you can prove it using complex analysis, algebraic topology, or abstract algebra. all the proofs are quite different and rely on deep results from different fields of math.

        i think the same thing holds in the less abstract areas of math, it’s just that people are often only taught one strategy for solving a problem and so they believe that’s all there is.

      • Kache@lemm.ee
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        12 days ago

        problems only have one answer and often one strategy to get to the answer

        Totally disagree

        You’re thinking of equations, which only have one answer. There are often many possible ways to solve and tackle problems.

        If you’ll permit an analogy, even though there’s “only one way” to use a hammer and nail, the overall problem of joining wood can be solved in a variety of ways.

    • xigoi@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      13 days ago

      Do you have a link to the research? I’m a math educator and I’d like some good materials for encouraging my students.

    • JustEnoughDucks@feddit.nl
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      10 days ago

      Well being able to figure out 1 complex math solution per day vs 1 complex solution per 1.5 days for the person who just has to work on the problem for longer is balloons a lot over the long term.

      Like how the average calorie burning difference between people is only 400 per day out of ~2000, but over a month that is like 1.5kg difference of mass burned which is 18kg per year.

      But I don’t know if I am interpreting the result you said correctly.

  • entith@lemmy.world
    link
    fedilink
    arrow-up
    22
    ·
    edit-2
    13 days ago

    As many have already said, the math needed will depend on what type of work you’re looking to do. Writing business software, for example, rarely requires more than basic arithmetic.

    However, I think that the logical thinking skills that are needed for math are also necessary to be a good software engineer.