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?

  • Drakk0n@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    13 minutes 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.

  • jjjalljs@ttrpg.network
    link
    fedilink
    arrow-up
    2
    ·
    9 minutes ago

    I failed calc2 and am gainfully employed as a mid/upper level software engineer.

    One guy at work really saved the day because he’s good at math, and made a very slow process much faster because he knows … uh… vector math? He did magic with numpy

  • Artyom@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    1 hour ago

    Calc 1 and 2 are going to be substantially harder than algebra or trig. People who consider themselves good at math still struggle with calculus. A lot of the people I knew who were not good at math ended up taking one or both calculus courses twice, and in many of those cases, switched their degrees.

  • UnfortunateShort@lemmy.world
    link
    fedilink
    arrow-up
    14
    ·
    3 hours ago

    As others have mentioned, how much and what kind of math you need depends heavily on what you do. And while I wholeheartedly encourage you to do what you enjoy, be it with or without maths, I would like to offer another perspective: A loveletter to maths.

    Math in general gets a lot easier and more fun the longer you do it and the more interest you can build. Often the people that teach math are extremely good at it, and maybe because of that they suck at explaining it. There is a lot to doing it right.

    First of all, I think you to build excitement. Math strives to describe the world! Math is the foundation of science, math is history, and many of the concepts and techniques arose out of necessity… Or sometimes spite! There are many funny stories or interesting people behind the formulars and concepts you encounter. Learning why the hell some math was even invented and how the guy or gal got the idea is 1000x more interesting than just getting an example for the application of it. It helps you remember stuff.

    Then there are a dozen ways to explain every single concept and then some. You will find some much more intuitive than others and the sum of them will sharpen your understanding of them. Looking for different explanations for the same thing can be a great help. Did you know many things in maths where discovered multiple times? That happens a lot, because even brilliant mathematicians don’t properly understand each other, or even themselves.

    Another thing you should do is to always develop your vocabulary for every domain/concept you encounter. People will throw around made-up words and symbols like no tomorrow. Often, there are simple concepts behind them, hence they are casually abstracted away. You need to understand the concept and then translate it into your own words and then draw a connection back to the made up stuff. Maths is a lot like programming. 1 + 1 is just a function, returning a result. So are integrals, formulas in vector algebra, and every single damn other thing in maths. Just follow the chain!

    And finally, there are also some amazing insights hidden in maths. Gödel’s incompleteness theorems might send a chill down your spine once you grasp their implications. Computability and information theory will shape your view on the world and yourself.

    I went from getting Ds to Bs to advanced theoretical CS courses and you can do it too. You don’t have to, but you can.

    • kartoffelsaft@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      1 hour ago

      While I do agree that math gets much easier with interest, and that it gets more interesting the further you get into it, and that math is inherently beautiful, etc. I feel this argument has to fall flat to people who don’t already agree. It’s the education equivalent of when someone says they couldn’t get into an anime and then the fans tell them ‘oh it gets really good around season 9’. You could be completely correct, as you are here, but it’s utterly unconvincing if you don’t already “know.”

      To be fair, I think this is mostly a problem with math curricula. Math classes up through high school and early college seem to focus on well trodden solutions to boring problems, and at some (far too late) point it flips around to being creative solutions to interesting problems. I think this could be fixed eventually, but such is the system we have now.

    • Captain_CapsLock@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      38 minutes ago

      As someone who studied math in college, but can hardly string a line of code together without making 4 trips to stack exchange or some documentation, this was a very good explanation of why math is actually really exciting.

  • MercuryGenisus@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    2 hours ago

    90% of programming I have seen after a decade plus of doing it full time is minor changes being made to code that was already made by someone. Likely not documented. Likely already changed in a dozen little ways. Math isn’t the problem. Understanding what the guy who wrote it is often the problem.

    Oh and you can’t ask them because they likely don’t work here anymore.

    Being a programmer is more like being a detective than anything else unless you work for a small company.

  • LOL_@lemy.lol
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 hour ago

    I completed a BS in CS and didn’t take a job. (4+~ years ago) The primary issue I had was writing lots of open source software and completing good internships for making myself a strong candidate for employment during college. In college, I struggled very badly with mental health. I had severe levels of depression, and was diagnosed with labels like schizoaffective disorder and bipolar disorder. There are people that do have brain disorders, and I believe it can be devastating to wakeup from a TBI and start the path to recovery.

    I didn’t take the job for the first stated reason, not the second part. If you are disadvantaged, there are times where you will struggle to complete certain tasks. For me, after an episode of psychosis induced by psychiatric drugs, it was like, it’s just not all staying in memory, it was like having the memory of a goldfish. You’re just writing and stuff isn’t staying in memory long enough to complete whatever is needed. I think people underestimate the importance of their intelligence even though they can get drunk and find themselves also making mistakes.

    It was easy for me to walk away, I had cash from losing both parents at a young age. I think, as long as you can write lots of great open source software that your peers also use, you can be successful in this industry. Though, I do think it can disappointing to try to compete with some of the top competitive programmers, but so is swimming against Olympic athletes after training everyday for a year.

    I don’t really think the math is very important or difficult in college, though does my opinion matter since I didn’t take employment? I do have people who use and find software I write useful. Though, today, I don’t really care about the jobs anymore because the salaries don’t really seem high enough. If you’re bad at making yourself competitive to your peers, are you going to want to stay if you’re receiving a lower salary? Do you like programming? In what ways are you having issues with math?

    I also just think there’s lots of teachers that fail to realize their students have been copying answers and have never really deeply understand the problems or their significance. Like it’s possible to calculate the result to integrals while not understanding what an integral is calculating. That’s a dumb issue, and I think students who struggle frequently have this problem, not that their brains are causing them to drool on themselves.

  • suburban_hillbilly
    link
    fedilink
    English
    arrow-up
    46
    ·
    5 hours 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.

    • xigoi@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      4
      ·
      3 hours 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.

    • BrianTheeBiscuiteer@lemmy.world
      link
      fedilink
      arrow-up
      12
      ·
      4 hours 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.

      • Kache@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        31 minutes 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 vatiety of ways.

      • affiliate@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        3 hours 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.

  • wewbull@feddit.uk
    link
    fedilink
    English
    arrow-up
    15
    ·
    5 hours ago

    Don’t need a degree, but computer programming is fundamentally logic and algorithms. You need to have internalise reasoning logically. In some ways critical thinking is closer to programming than trig is.

  • TechieDamien
    link
    fedilink
    arrow-up
    18
    ·
    5 hours ago

    It really depends on the role you are looking for. If working with data and doing analysis, you need some knowledge in stats and probability. If you are working on simulations, you will need basic calculus and algebra. If you are looking at game development, you will need basic trigonometry and vector arithmetic. The one thing you don’t need is mental arithmetic because you have a computer.

    That being said, you can get by without these skills, it just becomes harder to see what you need to do, even if you would know how to implement it. This is alleviated if you are working in a team however.

  • MostRandomGuy
    link
    fedilink
    English
    arrow-up
    13
    ·
    edit-2
    5 hours ago

    Programming is Concrete Math and becomes more and more Math the less abstraction you expose yourself to.

    Both are fields you have to engage in problem solving, the better you are in one, the better you are in the other.

    Don’t confuse Math with pure arithmetic operations though, its just the base concept which provides the fundament you’re building upon as you dig deeper.

    I for example was quite bad at Math up until I got interested in IT, because then I had a reason for learning and be excited about it, but I guess thats a heavily subjective thing.

    Engaging with interpreted languages and solving problems on certain sites with those also helped in further developing my problem-solving skills, which made Math easier for me.

  • WhatAmLemmy@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    5 hours 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.

  • rtxn@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 hours 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.

  • Kache@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    5 hours ago

    IMO mathematical/logical/abstract thinking is critical for programming well, but IMO that’s different from “math degree” math.

    Software as a means to an end can be used in almost every domain, so proficiency within that applicable domain is often either useful or necessary. That is to say, “math degree” math is likely needed for 3d rendering (certain games), scientific computation (incl machine learning), etc, but maybe not, otherwise. It depends on what software you’re trying to build.

    To be more specific, general programming is definitely and specifically different from trig and calc. However, because math is also broad, “mathy” concepts like type theory, relational algebra, set theory are considered important for programming, even if only informally or indirectly so.

  • Deckweiss@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    5 hours ago

    Depends on the career path. Some need only the very basics - for example in frontend development, you’ll mostly use % and basic +/-.


    tbh. Most of the useful programming related knowledge you’ll learn at yoyr first job, not at uni.

    The curriculum sometimes will force you to learn something unrelated to your career and it has multiple purposes:

    People learn the fastest in the topic where they already know a lot. And the slowest where they know very little.

    Learning stuff outaide of your comfort zone literally works out your brain. You learn to learn. And your thinking becomes more flexible.

    You should not become somebody who is only good at one narrow singular task and a complete idiot at anything else.

    You never know if it becomes useful later in life. So I suggest still trying to do your best at any topic. And studying more for the exams where you are not as proficient.


    As to which career path to go for:

    Don’t be afraid to change midway, but make sure that you enjoy it. If you enjoy compsci, keep at it. (Or if you have student loan, put some more thought into the cost of switching).

  • aberrate_junior_beatnik@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    4 hours ago

    Practical programming itself does not require this kind of math. The stuff you’re trying to make a program do might; but even then I don’t think you’ll have difficulty in that context. The stuff you’re learning now will have had time to “settle”, and you’ll be working towards a concrete goal, which makes it easier in my experience.

    Another thing is that just because you’re struggling right now doesn’t mean you’ll be struggling forever. Math didn’t really click for me until I took calculus. I had a math professor who it didn’t click for until their junior year of college as a math major.

    So don’t sweat it. But it’s always a good idea to have another career idea or two in your back pocket just in case. There are lots of reasons you might not want to be a programmer as a career. You might hate it. You might love it enough that you want to be able to do it freely instead of at the behest of others for money.

    These kinds of anxieties are normal for someone your age (assuming you’re not nontraditional student). But one day you’ll look behind you in all these worries will seem unjustified. Everything will almost certainly turn out fine.